Friday, April 12, 2019, 7:23:31 PM, Jim Dossey <jim.dos...@gmail.com> wrote:
> I'm doing the INSERT first, without a BEGIN ... COMMIT transaction, > then I'm doing the SELECT. Shouldn't the INSERT do it's own COMMIT > which should make the new row visible to the SELECT? Should I add > a BEGIN ... COMMIT around the INSERT? Have you "finished" executing the SELECT statement? If you're not using explicit BEGIN...COMMIT, then each statement runs in its own transaction. However, the implicit transaction started with a SELECT does not complete until either sqlite3_step() returns SQLITE_DONE or you explicitly call sqlite3_finalize(). As I understand it, if, for example, you only expect one row from your SELECT statement and execute sqlite3_step() once to retrieve that row, then the SELECT statement (and the implicit transaction it is running in) is still active. As such, any NEW SELECT statements you prepare/step will still be in the same transaction and so wouldn't see the result of any INSERTs. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users