Hi Aleksey
>Logically it is correct. All data reads/writes will be included into the same transaction until SQLCOMMIT()/SQLROLLBACK(). Even if backend doesn't start transaction physically, subsequent SQLCOMMIT()/SQLROLLBACK() do not fail. It is only a plus if back end is able to avoid unnecessary physical transactions.
Sorry to nit-pick, but what you say is correct
only if the server is using implicit transactions.
If implicit transactions are disabled (or not supported!), then you will not get a back-end transaction unless you specifically issue a 'BEGIN TRANSACTION' command, no matter how many times you issue SQLSETPROP().
Whilst I understand what you mean it is, at the very least, misleading to state that setting the connection to use manual transactions is equivalent to issuing 'Begin Transaction'.
----
Regards
Andy Kramek