Yuri wrote:
> commit of the subsequent unrelated transaction fails with error=5
> (SQLITE_BUSY) if the previous open sqlite3_blob object hasn't been
> closed.
>
> This fails:
>
> sqlite3_blob_open // table b with rowids unique in db
> sqlite3_blob_write // table b
> BEGIN
> UPDATE // table a
> UPDATE // table a
> COMMIT // FAILS SQLITE_BUSY!

Please note that a sqlite3_blob_write() call does not behave like
a complete SQL statement; it does not auto-commit what it has written.
I don't know why the BEGIN doesn't complain that there already is an
active transaction, but there is no unrelated transaction.

The sqlite3_blob_close() documentation implies that you should do the
open/write/close calls inside a transaction, or that all three together
comprise an automatic transaction.


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to