Hello all, I'm writing a small simulation app and for it I would like to use SQLite3 as an application file format, as suggested by the "Appropriate uses for SQLite" page in sqlite.org. More specifically, the page suggests calling BEGIN TRANSACTION when opening a file and calling COMMIT when saving it again, or ROLLBACK if closing it without saving. Simple enough, up until the point where I want to implement a "Save As..." menu option, where the current state of the application is saved to a new file (new database) with the changes, while the changes in the current file are rolled back.
For that, the simplest idea would be to use the online backup family of functions, calling sqlite3_backup_init() and sqlite3_backup_step() on the database, calling COMMIT on the backup and ROLLBACK on the original. Naturally, that doesn't work, as you can't back up a database in the middle of a transaction -- sqlite3_backup_step() returns SQLITE_BUSY. That being said, has anyone on the list encountered (and hopefully solved) this particular problem? This probably means I have to scrap the idea of holding a transaction through the editing of the file, but then should I copy the database to a memory-based db? Any particular tips or caveats? I appreciate the attention, -Tiago -- In those days, in those distant days, in those nights, in those remote nights, in those years, in those distant years... - Gilgamesh, Enkidu and the Underworld _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users