Das ist ja alles richtig. Ich habe mich da wohl etwas ungünstig ausgedrückt. Generell sieht es bei mir so aus, das ich für jedes Fenster ein eigene Transaktion habe. Mein Beispiel war hierauf bezogen
Zitat von
Quake:
Ich denke, man benötigt pro Database nur eine Transaktion.
Und dann stimmte das was ich geschrieben habe, ansonsten ist der Ansatzpunkt ja genau der selbe wie bei mir. Nur das ich halt, die Daten in einer Transaktion behandele und in der anderen speichere. Das lesen habe ich auf Schnappschuß, so dass ich das sehe was in der
DB, und speichernn habe ich Lesen-schreiben-Tabellenst. das eben nicht 2 User den gleichen DS bearbeiten können aber mehrere User den DS lesen können.
Also öffne ich Read-Trans nur zum Lesen und sobald die Daten da sind, wird diese auch gleich wieder geschlossen. Und die zum speichern wird nur in der Zeit geöffnet, wo die Daten zum Server gesendet werden. Da man ja die Trans-Zeiten so gering wie möglich halten soll.
Zitat:
In meiner Anwendung starte ich die Transaktion beim Programmstart und wenn ich einen Datensatz geändert habe führe ich ein CommitRetain aus.
ich kann dir da nur Raten ab und zu mal ein HardCommit aufzurufen, da ansonsten über kurz oder lang die Performance deiner
DB abnimmt. Da durch das SoftCommit der Garbage Collector der
IB nicht wirksam werden, somit werden überflüssige DS-Varianten nicht mit abgeräumt.
Im enteffekt ist das Ergebnis das gleiche, nur das ich mich so nicht um die jeweiligen Einstellungen kümmern muss (sicher weil es so bequemer ist
).