phil,
i think the easiest way is more or less like you said. issue the
BEGIN, and if you get an ok back, you aren't in a transaction, so you just
commit and close the db. otherwise you can wait and check later.
there may be a better way do it, but that is all i know of.
mickm
> Hi all,
>
> I use SQLite in an iPhone application, and for my own convenience I have
> wrapped it up in an object-oriented wrapper of my own devising.
>
> I would like to close the database connection if it is safe to do so when my
> app is suspended, so that the -wal file can be erased saving the user some
> space, and also because I hear that improves the efficiency of subsequent
> queries.
>
> I always finalize my prepared statements; I don't use BLOB handles; and my
> application code executes on a single thread. So sqlite3_close() should
> complete if I call it, and it would as a matter of course roll-back any open
> transaction.
>
> I don't want to roll-back open transactions - if a transaction is open I want
> to leave the database connection open so that the app can carry on with it
> when it is resumed (or it can be rolled back if the app is forcibly
> terminated).
>
> The only method I have come up with thus far is to issue BEGIN then if that
> works I can call sqlite3_close().
>
> However, I would like to be as efficient as possible because apps are meant
> to be as efficient as possible at this point in processing:
> sqlite3_prepare("BEGIN;"), sqlite3_step(), sqlite3_finalize() is three API
> calls with a bunch of side-effects I don't want (altering the value of
> sqlite3_errmsg() and friends for instance), which seems a bit heavy for such
> a simple thing.
>
> Is there already a better way? If not, would it be difficult for me to add it
> to sqlite3_db_status(), and would anyone else want that patch?
>
> Best Regards,
>
> Phil Willoughby
> --
> Managing Director, StrawberryCat Limited
>
> StrawberryCat Limited is registered in England and Wales with Company No.
> 7234809.
>
> The registered office address of StrawberryCat Limited is:
>
> 107 Morgan Le Fay Drive
> Eastleigh
> SO53 4JH
>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users