Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird: DDL und DML in einer Transaktion (https://www.delphipraxis.net/153113-firebird-ddl-und-dml-einer-transaktion.html)

mkinzler 23. Jul 2010 09:32

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

idefix2 23. Jul 2010 09:48

AW: Firebird: DDL und DML in einer Transaktion
 
hm, da hast Du Recht. Scheint also wirklich nicht zu gehen.

hoika 23. Jul 2010 10:03

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

ULIK 23. Jul 2010 14:05

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

hoika 23. Jul 2010 14:11

AW: Firebird: DDL und DML in einer Transaktion
 
Hallo,

was hat das mit anderen Programmen zu tun ?
Delphi-Quellcode:
Alter Table Table1 Add XXX Not Null

i:= i/0;

Update Table1
Das i:= i/0; ist etwas überspitzt.

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

ULIK 23. Jul 2010 14:55

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

hoika 25. Jul 2010 06:08

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 05:12 Uhr.
Seite 2 von 2     12   

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