Bde.DBTables.TDatabase.TransIsolation
Delphi
property TransIsolation: TTransIsolation read FTransIsolation write FTransIsolation default tiReadCommitted;
C++
__property TTransIsolation TransIsolation = {read=FTransIsolation, write=FTransIsolation, default=1};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | Bde.DBTables.pas Bde.DBTables.hpp |
Bde.DBTables | TDatabase |
説明
ボーランド データベース エンジン(BDE)によって管理されるトランザクションのトランザクション排他レベルを指定します。
TransIsolation プロパティは,BDE によって管理されるデータベース トランザクションのトランザクション排他レベルを指定します。トランザクション排他レベルは,そのトランザクションが同時に同じテーブルにアクセスするほかのトランザクションと対話する方法や,ほかのトランザクションによる変更内容をそのトランザクションがどの程度認識するようにするかを決めます。
メモ: パススルー SQL を使ってトランザクションを処理するアプリケーションの場合,適切な SQL 文を使ってトランザクション排他レベルを直接データベース サーバーに渡す必要があります。
TransIsolation には次の 3 つの値のいずれかを指定できます。
排他レベル | 意味 |
---|---|
tiDirtyRead |
ほかのトランザクションによるデータベースへのコミットされていない変更内容を読み出せる。コミットされていない変更内容は持続的なものではなく,いつでもロールバック(取り消し)できる。このレベルでは,トランザクションはほかのトランザクションの影響を最も受けやすくなる。 |
tiReadCommitted |
ほかのトランザクションによるデータベースへのコミットされた(持続的な)変更内容だけを読み出せる。TransIsolation プロパティのデフォルト値。 |
tiRepeatableRead |
データベースを単独で一度だけ読み出せる。それ以降にほかのトランザクションによって加えられた変更は認識しない。この排他レベルでは,トランザクションがレコードを読み出したら,自分で変更しない限り,レコードは変更されない。このレベルでは,トランザクション間の分離度が最も高くなる。 |
サポートされるトランザクション分離レベルは,データベース サーバーによって異なります。アプリケーションが TransIsolation をリモート SQL サーバーによってサポートされていないレベルに設定した場合は,BDE はそのサーバーでサポートされている次に高い排他レベルを使用します。BDE が認識するサーバーによってサポートされている排他レベルは次のとおりです。
サーバー | 指定したレベル | 使用されるレベル |
---|---|---|
Oracle |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | tiRepeatableRead(読み出し専用) |
Sybase,MS-SQL |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | サポートされない |
DB2 |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
Informix |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
InterBase |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | tiRepeatableRead |
Paradox,dBASE,Access,FoxPro |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | サポートされない | サポートされない |
メモ: Paradox および dBASE に対するローカル トランザクションの場合,TransIsolation を tiDirtyRead に設定する必要があります。tiDirtyRead に設定しないと,例外が生成されます。
アプリケーションが ODBC を使ってサーバーとのインターフェースをとる場合は,ODBC ドライバは排他レベルもサポートしなければなりません。サポートされる排他レベルの詳細は,各 ODBC ドライバのマニュアルを参照してください。