![]() |
Datenbank: Firebird • Version: 2. • Zugriff über: Dataset
reihenfolge für StartTransaction
Hallo,
bin etwas verunsichert, weil ich schon seit Jahren den SQL-Befehl "StartTransaction" benutze und seid kurzem, auch in diesem Forum, gelesen habe "Ein StartTransaction macht man prinzipiell vor dem Einfügen der Daten". Ich mache es hinterher, wie auf dem Bespiel unten. Wie ist es dann richtig.
Delphi-Quellcode:
Danke, Luckner
begin
DatamoduleAuftrag.DataModule2.IBDataSetGridAuftrag.Locate('ID', LabelID.Caption, []); DatamoduleAnwenderHistorie.DataModule7.IBDatabaseAnwenderHistorie.Open; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorie.Open; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorie.Append; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorieID.AsInteger := 1; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorieDATUM.Value := Date; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorieANWENDER.AsString := Anwender; DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorieID_AUFTRAG.AsInteger := StrToInt(LabelID.Caption); DatamoduleAnwenderHistorie.DataModule7.IBDataSetAnwenderHistorie.Post; if DatamoduleAnwenderHistorie.DataModule7.IBTransactionAnwenderHistorie.InTransaction then DatamoduleAnwenderHistorie.DataModule7.IBTransactionAnwenderHistorie.Commit; DatamoduleAnwenderHistorie.DataModule7.IBDatabaseAnwenderHistorie.Open; DatamoduleAnwenderHistorie.DataModule7.IBTransactionAnwenderHistorie.StartTransaction; DatamoduleAnwenderHistorie.DataModule7.IBDatabaseAnwenderHistorie.Close; end |
AW: reihenfolge für StartTransaction
Das macht man auf jeden Fall "vor" dem Einfügen, Löschen und Ändern.
Abgeschlossen wird dies mit Commit bzw. Rollback. |
AW: reihenfolge für StartTransaction
Unter FireBird wird alles (auch Abfragen) in einem Transaktionskontext ausgeführt.
In Deinem Fall erzeugst Du dann eine weitere Transaktion. |
AW: reihenfolge für StartTransaction
Erzeugt ein "Append" unter Firebird automatisch ein StartTransacktion oder muss ich das davor setzen?
Luckner. |
AW: reihenfolge für StartTransaction
Das kommt darauf an, was eingestellt ist. da kein Fehler angezeigt wird, wohl ja.
|
AW: reihenfolge für StartTransaction
- Du solltest besser über FieldByName die Werte ins Dataset schreiben.
- Transaktionen zeitlich kurz halten (ich vermute, dass du nach Starttransaktion auf Benutzereingaben wartest, das ist zu vermeiden) - Transaktionen machen dann Sinn, wenn du mehrere inserts oder updates (evtl. in verschiedenen Tabellen) machst, die unbedingt gemeinsam passieren müssen, weil sonst die Datenkonsistenz nicht übereinstimmt |
AW: reihenfolge für StartTransaction
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe gerade nachgesehen, die Standardeinstellungen bei IBX ist der automatische Start von Transaktionen
|
AW: reihenfolge für StartTransaction
Danke für die Erklärung. Ein Append wird ein StartTransaction automatisch erzeugen (muß ich noch ausprobieren), weil es keinen Fehler gibt. Ohh, dann habe ich lange Zeit Müll gemacht. Jetzt schnell Alles korrigieren.
Danke mkinzler fürs Nachschauen. Das erklärt einiges. Gruß, Luckner. |
AW: reihenfolge für StartTransaction
Zitat:
Man sollte sich entscheiden, ob man diese Steuerung automatisch (AutoStart, AutoCommit) oder manuell (StartTransAction/ Commit bzw. RollBack) ausführen will |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz