Discussion:
[Firebird-odbc-devel] SQLColumns() and transaction
Dimitry Sibiryakov
2013-10-07 21:04:19 UTC
Permalink
Hello, All.

Should call of SQLColumns() start transaction?

I wonder because now with auto-commit mode off, this call _does_ start transaction and
following call of SQLDisconnect() without SQLEndTran() return 25000 error code.
It is not clear for me from ODBC docs whether SQLColumns() is "an SQL statement that
can be contained within a transaction" or not.
--
WBR, SD.
Alexander Potapchenko
2013-10-08 07:21:55 UTC
Permalink
Hi Dimitry,

SQLColumns() gets data from system tables and it starts transaction of
course and therefore If auto-commit mode off, driver considers that this
transaction remains active.
Post by Dimitry Sibiryakov
Should call of SQLColumns() start transaction?
I wonder because now with auto-commit mode off, this call_does_ start transaction and
following call of SQLDisconnect() without SQLEndTran() return 25000 error code.
It is not clear for me from ODBC docs whether SQLColumns() is "an SQL statement that
can be contained within a transaction" or not.
Dimitry Sibiryakov
2013-10-08 08:24:42 UTC
Permalink
Post by Alexander Potapchenko
SQLColumns() gets data from system tables and it starts transaction of
course and therefore If auto-commit mode off, driver considers that this
transaction remains active.
But the question is whether it should start connection-wide transaction or a local one.
--
WBR, SD.
Alexander Potapchenko
2013-10-08 08:37:51 UTC
Permalink
I think such functions should start local transactions, but in current
implementation that's not so.
You can add this issue into the bug tracker.
Post by Dimitry Sibiryakov
Post by Alexander Potapchenko
SQLColumns() gets data from system tables and it starts transaction of
course and therefore If auto-commit mode off, driver considers that this
transaction remains active.
But the question is whether it should start connection-wide transaction or a local one.
Loading...