ODBC アプリケーションは、SQLSetConnectAttr を呼び出すときに Attribute を SQL_ATTR_TXN_ISOLATION に、ValuePtr を対応する独立性レベルに設定します。
ValuePtr | 独立性レベル |
---|---|
SQL_TXN_READ_UNCOMMITTED | 0 |
SQL_TXN_READ_COMMITTED | 1 |
SQL_TXN_REPEATABLE_READ | 2 |
SQL_TXN_SERIALIZABLE | 3 |
SA_SQL_TXN_SNAPSHOT | snapshot |
SA_SQL_TXN_STATEMENT_SNAPSHOT | statement-snapshot |
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT | readonly-statement-snapshot |
ODBC を介して接続の独立性レベルを変更するには、ODBC32.dll ライブラリの SQLSetConnectOption 関数を使用します。
SQLSetConnectOption 関数は、次の 3 つのパラメータを取ります。ODBC コネクション・ハンドルの値、独立性レベルの設定要求、設定する独立性レベルに対応する値です。次のテーブルは、これらの値をまとめたものです。
文字列 | 値 |
---|---|
SQL_TXN_ISOLATION | 108 |
SQL_TXN_READ_UNCOMMITTED | 1 |
SQL_TXN_READ_COMMITTED | 2 |
SQL_TXN_REPEATABLE_READ | 4 |
SQL_TXN_SERIALIZABLE | 8 |
SA_SQL_TXN_SNAPSHOT | 32 |
SA_SQL_TXN_STATEMENT_SNAPSHOT | 64 |
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT | 128 |
ODBC アプリケーションから SET OPTION 文を使用して、独立性レベルを変更しないでください。ODBC ドライバは SET OPTION 文を解析しないため、ODBC で文を実行しても ODBC ドライバは認識しません。これによって、ロックが予期しない動作をする場合があります。
たとえば次の関数呼び出しは、接続 MyConnection の独立性レベルを 2 に設定します。
SQLSetConnectOption( MyConnection.hDbc, SQL_TXN_ISOLATION, SQL_TXN_REPEATABLE_READ ) |
ODBC は、独立性機能を使用して各種のデータベース・ロック・オプションをサポートします。たとえば PowerBuilder では、データベースに接続するときに、トランザクション・オブジェクトの Lock 属性を使用して独立性レベルを設定できます。Lock 属性は文字列で、次のように設定されます。
SQLCA.lock = "RU" |
Lock オプションは、CONNECT が発生したときだけ有効になります。CONNECT の後に Lock 属性を変更しても、接続には影響しません。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |