接続コンポーネントでトランザクションが自動的に開始されるかどうかの指定

提供: RAD Studio
移動先: 案内検索

接続の微調整 への移動


Attributes プロパティを使用すると、接続コンポーネントで保持コミットおよび保持中止が使用されるかどうかを制御できます。接続コンポーネントで保持コミットが使用される場合は、アプリケーションでトランザクションをコミットするたびに、新しいトランザクションが自動的に開始されます。接続コンポーネントで保持中止が使用される場合は、アプリケーションでトランザクションをロールバックするたびに、新しいトランザクションが自動的に開始されます。

Attributes は集合で、その中には、定数 xaCommitRetainingxaAbortRetaining のどちらか一方または両方を含む、あるいはそのどちらも含まない場合があります。AttributesxaCommitRetaining が含まれている場合は、接続コンポーネントで保持コミットが使用されます。AttributesxaAbortRetaining が含まれている場合は、接続コンポーネントで保持中止が使用されます。

保持コミットか保持中止のどちらかが有効になっているかどうかを確認するには、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()
}

関連項目