Я начал замечать странное поведение с запросами SQLite для приложения iPhone. Всякий раз, когда я выполняю инструкцию «INSERT», рядом с моим файлом базы данных создается файл журнала (точное имя файла «userdata.db-journal»).
Если я правильно понимаю документы, этот файл журнала используется SQLite для возможности отката в случае сбоя операции. Но файл остается там после завершения операции.
Я делаю классические шаги для подготовки, связывания и выполнения запроса (без простоты проверок на возвращаемые значения):
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 );
Файл журнала создается после вызова функции sqlite3_step и остается там до тех пор, пока я не закрою базу данных. Что мне нужно сделать, чтобы он ушел?