SQLSetConnectAttr を使用して、接続に関するトランザクションの独立性レベルを設定できます。SQL Anywhere に用意されているトランザクションの独立性レベルを決定する特性は、次のとおりです。
SQL_TXN_READ_UNCOMMITTED 独立性レベルを 0 に設定します。この属性値を設定すると、別のユーザーによる変更から読み込まれたデータは分離され、その変更内容は表示されません。READ 文の再実行は別のユーザーによって影響されます。繰り返し可能読み出しはサポートされていません。これは独立性レベルのデフォルト値です。
SQL_TXN_READ_COMMITTED 独立性レベルを 1 に設定します。この属性値を設定すると、別のユーザーによる変更から読み込まれたデータは分離されず、その変更内容は表示されます。READ 文の再実行は別のユーザーによって影響されます。繰り返し可能読み出しはサポートされていません。
SQL_TXN_REPEATABLE_READ 独立性レベルを 2 に設定します。この属性値を設定すると、別のユーザーによる変更から読み込まれたデータは分離され、その変更内容は表示されません。READ 文の再実行は別のユーザーによって影響されます。繰り返し可能読み出しはサポートされています。
SQL_TXN_SERIALIZABLE 独立性レベルを 3 に設定します。この属性値を設定すると、別のユーザーによる変更から読み込まれたデータは分離され、その変更内容は表示されません。READ 文の再実行は別のユーザーによって影響されません。繰り返し可能読み出しはサポートされています。
SA_SQL_TXN_SNAPSHOT 独立性レベルを Snapshot に設定します。この属性値を設定すると、トランザクション全体のデータベースに関する単一ビューが表示されます。
SA_SQL_TXN_STATEMENT_SNAPSHOT 独立性レベルを Statement-snapshot に設定します。この属性値を設定すると、Snapshot 独立性よりデータの整合性は低くなりますが、トランザクションを長時間実行したためにバージョン情報を格納するテンポラリファイルのサイズが大きくなりすぎる場合には有益です。
SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT 独立性レベルを Readonly-statement-snapshot に設定します。この属性値を設定すると、Statement-snapshot 独立性よりデータの整合性は低くなりますが、更新の競合は回避されます。このため、この属性は元々異なる独立性レベルで実行することを想定していたアプリケーションを移植するのに最も適しています。
Snapshot、Statement-snapshot、または Readonly-statement-snapshot を使用する場合は、allow_snapshot_isolation を On に設定する必要があります。
詳細については、 http://msdn.microsoft.com/en-us/library/ms713605.aspxにある Microsoft の『ODBC API Reference』の「SQLSetConnectAttr」を参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |