2009-06-26 15 views
5

Tôi đang gặp lỗi SQLite mặc dù tôi không sử dụng bất kỳ AutoCommit rõ ràng nào đúng hoặc sai. bất kỳ ai cũng có thể cung cấp bất kỳ đầu vào nào về lỗi này. Tình huống mà bạn sẽ gặp phải lỗi này là gì.Lỗi SQLite: không thể cam kết giao dịch - Các câu lệnh SQL đang tiến hành sử dụng Mã Java

Xin cảm ơn trước. Kính trọng, Manasi Lưu

+0

Bạn có thể vui lòng đăng đoạn mã không? –

+0

Và bạn đang chạy phiên bản SQLite nào? –

+0

Tôi đang sử dụng phiên bản SQLite 3 –

Trả lời

5

Tôi phải đối mặt với một vấn đề tương tự nhiều lần (trong trường hợp của tôi không thể quay lại) khi tôi ở trong vòng lặp qua các mục bảng. Miễn là con trỏ đang xử lý các mục, một câu lệnh SQL đang "đang tiến hành". Tôi không biết chính xác, nếu điều này cũng cấm cam kết, nhưng nó có thể được.

Khi bạn cố xử lý các mục nhập bảng và chèn các mục vào cùng một bảng hoặc bảng khác, bạn có thể muốn thu thập dữ liệu trong bộ nhớ và sau khi vòng lặp thực hiện chèn hoặc cập nhật.

Thông tin bổ sung: "Tự động" thường mặc định là "Đúng" trong SQLite (tất nhiên cũng có thể phụ thuộc vào lớp truy cập bạn sử dụng - Tôi đang sử dụng Python và apsw, vì vậy tôi không thể cho bạn biết thêm về điều này trong Java). Điều này có nghĩa, rằng mỗi chèn được tự động ngay lập tức.

==> đây có thể là giải pháp khác. Thay vì lưu trữ dữ liệu trong bộ nhớ, bạn có thể cố gắng mở một giao dịch một cách rõ ràng và cam kết nó sau vòng lặp - theo cách này, vấn đề cũng sẽ biến mất.

Các vấn đề liên quan