Alexey Pechnikov <[EMAIL PROTECTED]>
wrote:
> ÷ ÓÏÏÂÝÅÎÉÉ ÏÔ Tuesday 26 August 2008 16:44:56 Igor Tandetnik
> ÎÁÐÉÓÁÌ(Á):
>>> Can I group logged queries by any transaction id?
>>
>> Well, BEGIN TRANSACTION and END TRANSACTION are themselves queries,
>> and thus will presumably appear in your log. Any queries in between
>> would then belong to that transaction.
>
> I don't know method to set triggers on begin and commit transaction
> events.

You could log begin/end transaction (along with any other statements) by 
installing sqlite3_trace hook.

Another approach would be to use sqlite3_commit_hook, 
sqlite3_rollback_hook, sqlite3_get_autocommit. Call 
sqlite3_get_autocommit from inside your custom function to see whether 
the statement is part of an explicit transaction. sqlite3_commit_hook 
and sqlite3_rollback_hook tell you when a transaction ends. The first 
query that's part of an explicit transaction after a previous 
transaction (if any) has ended, starts a new one.

By the way, see sqlite3_update_hook. Perhaps you could use that in lieu 
of your triggers.

Igor Tandetnik



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to