Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
DB Access Module for ODBC User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

2.11 Transaction Processing

Although the databases supported by ODBC differ, ODBC provides a standard API for controlling transactions and setting isolation levels. The DB Access Module for ODBC maps its transaction control and isolation level methods to the corresponding ODBC methods. These methods are described in the following two sections.

2.11.1 Setting Isolation Levels

You can use the isolation() method of RWDBConnection to set the isolation level of the connection. Table 5 shows the mapping between the argument you pass for IsolationType, and the isolation level set by the DB Access Module for ODBC, using the SQLSetConnectAttr() call:

Table 5: Setting the isolation level

RWDBConnection:: IsolationType ODBC Isolation Level
Unknown SQL_TXN_READ_UNCOMMITTED
ANSILevel1 SQL_TXN_READ_COMMITTED
ANSILevel2 SQL_TXN_REPEATABLE_READ
ANSILevel3 SQL_TXN_SERIALIZABLE

Note that not all ODBC drivers support the notion of isolation levels, and those that support isolation levels do not necessarily support all isolation levels. Special care should be taken when setting isolation levels, as this could affect all users of a server.

To determine the current isolation level, call RWDBConnection::isolation() without an argument.

2.11.2 Using Transaction Control Methods

You can explicitly control transactions through the following methods:

These methods have straightforward implementations that correspond to the following ODBC functions:

An application can add the DB Interface Module transaction methods to its code to take explicit control of its transaction blocks. The following code demonstrates how these methods can be used to commit or to rollback transactions:

Please note that nested transactions and savepoint features are not supported by ODBC.


ODBC does not support nested transactions and savepoint features.

Attempting to create a nested transaction generates a server error. Attempting to use the savepoint features of the DB Interface Module API generates the error RWDBStatus::notSupported for the connection that tried.



Previous fileTop of DocumentContentsIndex pageNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.