接続コンポーネントでトランザクションが自動的に開始されるかどうかの指定
接続の微調整 への移動
Attributes プロパティを使用すると、接続コンポーネントで保持コミットおよび保持中止が使用されるかどうかを制御できます。接続コンポーネントで保持コミットが使用される場合は、アプリケーションでトランザクションをコミットするたびに、新しいトランザクションが自動的に開始されます。接続コンポーネントで保持中止が使用される場合は、アプリケーションでトランザクションをロールバックするたびに、新しいトランザクションが自動的に開始されます。
Attributes は集合で、その中には、定数 xaCommitRetaining と xaAbortRetaining のどちらか一方または両方を含む、あるいはそのどちらも含まない場合があります。Attributes に xaCommitRetaining が含まれている場合は、接続コンポーネントで保持コミットが使用されます。Attributes に xaAbortRetaining が含まれている場合は、接続コンポーネントで保持中止が使用されます。
保持コミットか保持中止のどちらかが有効になっているかどうかを確認するには、in 演算子を使用します。保持コミットまたは保持中止を有効にするには、適切な値を Attributes プロパティに追加し、無効にするには、その値を取り去ります。次のルーチン例では、ADO 接続コンポーネントでの保持コミットをそれぞれ有効および無効にしています。
procedure TForm1.RetainingCommitsOnButtonClick(Sender: TObject); begin with ADOConnection1 do begin Close; if not (xaCommitRetaining in Attributes) then Attributes := (Attributes + [xaCommitRetaining]) Open; end; end; procedure TForm1.RetainingCommitsOffButtonClick(Sender: TObject); begin with ADOConnection1 do begin Close; if (xaCommitRetaining in Attributes) then Attributes := (Attributes - [xaCommitRetaining]); Open; end; end;
void __fastcall TForm1::RetainingCommitsOnButtonClick(TObject *Sender) { ADOConnection1->Close() if (!ADOConnection1->Attributes.Contains(xaCommitRetaining)) ADOConnection1->Attributes = TXactAttributes() << xaCommitRetaining; ADOConnection1->Open() } void __fastcall TForm1::RetainingCommitsOffButtonClick(TObject *Sender) { ADOConnection1->Close() if (ADOConnection1->Attributes.Contains(xaCommitRetaining)) ADOConnection1->Attributes = TXactAttributes() >> xaCommitRetaining; ADOConnection1->Open() }