![]() |
AW: Firebird: DDL und DML in einer Transaktion
Das gleiche Problem besteht aber bei einer neuen Tabelle. Werden in der alten Tabelle Änderungen gemacht, nachdem der Inhalt in die neue Tabelle übertragen wurde fehlen diese anschlissend
|
AW: Firebird: DDL und DML in einer Transaktion
hm, da hast Du Recht. Scheint also wirklich nicht zu gehen.
|
AW: Firebird: DDL und DML in einer Transaktion
Hallo,
jepp, so ist es. Finde ich zwar doof, das es so ist, aber wenn einer der Core-Entwickler sagt "per Design", kann man nix machen *Quellcode runterlad und ändern tu* ... ;) Heiko |
AW: Firebird: DDL und DML in einer Transaktion
Ganz dumme Frage: wozu brauchst Du das überhaupt? Wenn ein Programm die Definition der DB abändert, dann hat in diesem Moment kein anderes Programm gegen die DB zu laufen. Punkt. Alles andere birgt nur das Risiko von korrupten Daten.
Wenn's so kritisch ist, daß andere Programme zugreifen müssen, dann muß man sich andere Lösungen überlegen (umschalten auf eine Standby mit Protokollierung Änderungen und nach Rüchschalten Rücksynchronisation der geschriebenen Datenbanken). Grüße, Uli |
AW: Firebird: DDL und DML in einer Transaktion
Hallo,
was hat das mit anderen Programmen zu tun ?
Delphi-Quellcode:
Das i:= i/0; ist etwas überspitzt.
Alter Table Table1 Add XXX Not Null
i:= i/0; Update Table1 Table1 ist dann in einem undefinierten Zustand. Ändere ich Constraints auf Not Null führt ein nachfolgendes Backup -> Restore wie bekannt zu einem Restore-Fehler (Not Null und trotzdem Null-Werte drin). Heiko |
AW: Firebird: DDL und DML in einer Transaktion
Ach so, jetzt versteh ich dein Problem. Aber ist das wirklich ein Problem? Du führst mit DDL Statements ein DB Update durch. Dieses ist nun durchgelaufen. Nun tritt eine Exception auf bevor Du die Not Null Spalte füllen kannst. Dann sollte dein Exceptionhandler das doch mitkriegen und entsprechend drauf reagieren können?
Bzw. kannst Du ja am Schluß des gesamten Updates noch einmal einen kurzen Check machen, ob alles gefüllt ist. Wenn nicht, Fehler und Reparatur. Oder überseh ich hier etwas? Grüße, Uli |
AW: Firebird: DDL und DML in einer Transaktion
Hallo,
stürzt der Rechner ab nach dem Add Field, muss das Programm beim nächsten Mal wissen, aha, muss ich noch was machen. Korrekt. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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-2025 by Thomas Breitkreuz