Data.SqlExpr.TSQLConnection.StartTransaction
Delphi
procedure StartTransaction( TransDesc: TTransactionDesc); deprecated;
C++
void __fastcall StartTransaction _DEPRECATED_ATTRIBUTE0 (const TTransactionDesc &TransDesc);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | Data.SqlExpr.pas Data.SqlExpr.hpp |
Data.SqlExpr | TSQLConnection |
説明
警告: StartTransaction は非推奨になっています。
関連付けられたデータベース内で新しいトランザクションを開始します。
メモ: StartTransaction は推奨されていません。 代わりに、BeginTransaction を使用してください。
StartTransaction を呼び出すと、トランザクションをサポートしているデータベース サーバーに対して、新しいトランザクションを開始することができます。 (MySQL サーバーはトランザクションをサポートしてはいますが、1 つの接続で複数のトランザクションを使うことはできません。) TransactionsSupported プロパティを見ると、サーバーがトランザクションをサポートしているかどうかを判断することができます。 サーバーがトランザクションをサポートしていない場合、StartTransaction は何も処理を行いません。
TransDesc
には、開始するトランザクションの説明を記述します。 これにより、以下のものを指定することができます。
- ユーザー定義のトランザクション識別子。 サーバーがトランザクションのネストやオーバーラップをサポートしている場合、StartTransaction を呼び出してトランザクションそれぞれに一意の識別子を渡すことで、複数のトランザクションを開始することができます。
- トランザクション排他レベル。 これは、他のトランザクションが行った変更をこのトランザクションがどの程度 "見る" ことができるかを示します。
トランザクションが正常に開始できると、StartTransaction は InTransaction プロパティを True に設定します。
StartTransaction を呼び出した後に行われた更新や挿入や削除は、オーバーラップする別のトランザクションが開始するか、アプリケーションが Commit を呼び出して変更を保存する、または Rollback を呼び出して変更をキャンセルするまで、トランザクション内に保管されます。
ヒント: サーバーが複数トランザクションをサポートしていない場合には、InTransaction プロパティのステータスを見て、進行中のトランザクションが他にないことを確認してください。
ヒント: オーバーラップしたトランザクションを扱っている場合には、同じテーブル上で動作している際に、同時発生したトランザクションがどのようにやり取りするかを、TSQLConnection の
IsolationLevel
パラメータを設定することにより指定することができます。