Thank you Zvoni for your post. I made some tests, as suggested. I used my small demo from
https://forum.lazarus.freepascal.org/index.php/topic,55964.0.html but with the extension of using "stoUseImplicit" like shown there in reply #1. For all tests I used SQLite and checked the database for updates with a DB client, while my demo was running.
Test 1: with commit-command and with command 'SQLTransactionX.Active:=True' in sql_exec() to start a transaction => the DB was updated, no errors occured.
Test 2: I replaced commit by rollback => same result.
Test 3: I skipped commit and rollback, but kept command 'SQLTransactionX.Active:=True' => same result.
Test 4: I skipped commit and rollback and skipped command 'SQLTransactionX.Active:=True' => same result.
Test 5: I used commit, but skipped command 'SQLTransactionX.Active:=True' => same result.
Summary: now we are sure that:
- SQLite allows "implicit transaction control"
- commit and rollback and command 'SQLTransactionX.Active:=True' do nothing (they are completely ignored)
- it works with and without them
- you get no errors, if you use them
That's exactly what I needed for my current project :-))
Thanks again a lot for your help Zvoni.