Comencé a notar un comportamiento extraño con mis consultas SQLite para mi aplicación de iPhone. Cada vez que ejecuto una instrucción "INSERT", se crea un archivo de diario junto a mi archivo db (el nombre de archivo exacto es "userdata.db-journal").¿Qué causa que se cree un archivo de diario en SQLite?
Si entiendo los documentos correctamente, SQLite utiliza este archivo de diario para poder deshacerlo en caso de que la operación falle. Pero el archivo permanece allí después de que se completa la operación.
hago los pasos clásicos para la preparación, la unión y la ejecución de la consulta (no cheques de valores de retorno de simplicidad):
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);
El archivo de diario se crea después de la función 'sqlite3_step' se llama y se queda allí hasta que cierre el db. ¿Qué debo hacer para que desaparezca?