AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken reihenfolge für StartTransaction
Thema durchsuchen
Ansicht
Themen-Optionen

reihenfolge für StartTransaction

Ein Thema von Luckner · begonnen am 10. Nov 2015 · letzter Beitrag vom 10. Nov 2015
Antwort Antwort
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

reihenfolge für StartTransaction

  Alt 10. Nov 2015, 14:46
Datenbank: Firebird • Version: 2. • Zugriff über: Dataset
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:
     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
Danke, Luckner
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#2

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 14:49
Das macht man auf jeden Fall "vor" dem Einfügen, Löschen und Ändern.
Abgeschlossen wird dies mit Commit bzw. Rollback.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 14:52
Unter FireBird wird alles (auch Abfragen) in einem Transaktionskontext ausgeführt.
In Deinem Fall erzeugst Du dann eine weitere Transaktion.
Markus Kinzler
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 14:57
Erzeugt ein "Append" unter Firebird automatisch ein StartTransacktion oder muss ich das davor setzen?

Luckner.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 14:59
Das kommt darauf an, was eingestellt ist. da kein Fehler angezeigt wird, wohl ja.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 15:01
- 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
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 15:04
Ich habe gerade nachgesehen, die Standardeinstellungen bei IBX ist der automatische Start von Transaktionen
Miniaturansicht angehängter Grafiken
ibtransaction.png  
Markus Kinzler
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 15:10
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: reihenfolge für StartTransaction

  Alt 10. Nov 2015, 15:11
- 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
Wie gesagt bei FireBird muss alles in Transaktionen ausgeführt werden.
Man sollte sich entscheiden, ob man diese Steuerung automatisch (AutoStart, AutoCommit) oder manuell (StartTransAction/ Commit bzw. RollBack) ausführen will
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz