Tôi bắt đầu nhận thấy một hành vi kỳ lạ với các truy vấn SQLite cho ứng dụng iPhone của mình. Bất cứ khi nào tôi thực thi câu lệnh "INSERT", một tệp nhật ký được tạo bên cạnh tệp db của tôi (tên tệp chính xác là "userdata.db-journal").Điều gì gây ra một tệp nhật ký được tạo trong SQLite?
Nếu tôi hiểu tài liệu chính xác, tệp nhật ký này được SQLite sử dụng để có thể khôi phục trong trường hợp thao tác không thành công. Nhưng tệp vẫn ở đó sau khi thao tác hoàn tất.
tôi làm các bước cổ điển để chuẩn bị, ràng buộc và thực hiện truy vấn (không kiểm tra các giá trị trả lại cho đơn giản):
sqlite3 *db = NULL;
sqlite3_open("userdata.db", &db);
sqlite3_stmt *insertStmt = NULL;
const char *query = "INSERT INTO table VALUES(?,?)";
sqlite3_prepare_v2(db, query, -1, &insertStmt, NULL);
sqlite3_bind_int(insertStmt, 1, 0);
sqlite3_bind_int(insertStmt, 2, 0);
sqlite3_step(insertStmt);
sqlite3_reset(insertStmt);
sqlite3_clear_bindings(insertStmt);
sqlite3_close(db);
Các tập tin tạp chí được tạo ra sau khi các chức năng 'sqlite3_step' được gọi là và vẫn có cho đến khi tôi đóng db. Tôi cần làm gì để làm cho nó biến mất?