Festlegen, ob die Verbindung Transaktionen automatisch einleiten soll oder nicht
Nach oben zu Verbindungen optimieren
Mit der Eigenschaft Attributes können Sie prüfen, ob die Verbindungskomponente sich erneuernde Commit- oder Abort-Operationen verwendet. Wenn die Verbindungskomponente sich erneuernde Commit-Operationen verwendet, so wird bei jedem Festschreiben einer Transaktion automatisch eine neue Transaktion gestartet. Wenn die Verbindungskomponente sich erneuernde Abort-Operationen verwendet, wird bei jedem Zurücksetzen einer Transaktion automatisch eine neue Transaktion gestartet.
Bei Attributes handelt es sich um eine Menge, die eine, beide oder keine der Konstanten xaCommitRetaining und xaAbortRetaining enthält. Enthält Attributes die Konstante xaCommitRetaining, so verwendet die Verbindung sich erneuernde Commit-Operationen. Wenn Attributes die Konstante xaAbortRetaining enthält, werden sich erneuernde Abort-Operationen verwendet.
Mithilfe des Operators in können Sie prüfen, ob sich erneuernde Commit- oder Abort-Operationen aktiviert sind. Diese Operationen können durch Angabe des entsprechenden Wertes (mit einem Pluszeichen) in der Eigenschaft Attributes aktiviert werden, zum Deaktivieren müssen Sie dem entsprechenden Wert in der Eigenschaft Attributes ein Minuszeichen voranstellen. Der folgende Beispiel-Quelltext zeigt das Aktivieren bzw. Deaktivieren sich erneuernder Commit-Operationen in einer ADO-Verbindungskomponente:
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()
}