BEGIN/START TRANSACTION Equivalent Using ODBC?

Posted by ekmorning on 07-May-2013 12:37

I'm working on an integration project with a product that is using Progress v9.1D. We will be connecting to Progress using the MERANT ODBC driver.

Coming from other databases, I am used to explicitly declaring the beginning of an atomic transaction using something similar to BEGIN TRANSACTION or START TRANSACTION. The reference manuals I have for Progress' SQL don't have anything that appears analogous.

Further reading leads me to believe that, when connecting via ODBC, a transaction is started implicitly, and the application should issue a COMMIT at the appropriate time to write changes to the database. Is this true?

If not, how should I go about making sure that multiple changes are all committed atomically?

All Replies

Posted by gus on 08-May-2013 11:46

you are correct that transactions are always started implicitly. The COMMIT statement commits the current transaction and terminates it. The ROLLBACK statement undoes the actions performed up to that point and terminates the current transaction.

Posted by ekmorning on 08-May-2013 12:17

Gus:

Thank you for the response. Since I posted yesterday, further research has showed that transaction control is not possible through the MERANT ODBC driver. Both COMMIT and ROLLBACK throw syntax errors. Are you aware of any other way for an application to control transaction execution via the ODBC driver?

Posted by gus on 08-May-2013 12:36

sorry but my memory of such an old product is a bit unreliable.

COMMIT WORK;

ought to be right.

This thread is closed