Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
Das Transaktionslevel beeinflusst nur welche Interaktionen zwischen verschiedenen noch nicht committeten Transaktionen möglich sind.
In meinem Fall spielt sich ja alles um eine einzige Transaktion in der der zweite Befehl auf den 1. Aufbaut (Insert auf Create Table).
Savepoints habe ich auch erst durch diesen Thread entdeckt, sind aber in diesem Fall auch uninteressant weil ich nach dem...
Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
Es werden regelmäßig automatische Backups der Kundendatenbank gemacht.
Das Problem ist nur, dass die Datenbank nach eine Skriptfehler in einem (mehr oder weniger) undefinierten Zustand ist,
den man im besten Fall durch das zurückspielen einer Datensicherung oder das manuelle korrigieren der Datenbank bzw. das manuelle Ausführen des restlichen Skripts beheben kann.
Jetzt bleibt wohl nichts...
Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
Willkommen im Club :D
Leider geht es bei mir NICHT um die komplette Erzeugung einer Datenbank sondern um das erweitern/updaten einer schon vorhandenen aktiven Kundendatenbank mit Daten.
Von daher funktioniert dein Workaround bei mir leider nicht :(
Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
Ja. Probiers bitte wirklich mal :)
Falls es DOCH klappt dann bin ich allerdings verwirrt und irgendwas stimmt hinten und vorne nicht.
Aber nach allem was ich seit gestern gelesen/gelernt habe dürfte das selbst mit Transaktion außenrum nicht funktionieren.
Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
In IBExpert läuft sowas natürlich. Selbst ohne das commit work; zwischendurch, aber nur weil IBExpert (scheinbar) implizit an diesen Stellen committed.
Erstell mal in deinem eigenen Code eine Transaktion und versuch diese beiden Befehle hintereinander in dieser Transaktion auszuführen ohne zwischendurch zu committen:
1) CREATE TABLE DUMMY_TABLE(ID INTEGER, NAME VARCHAR(80))
2) INSERT INTO...
Forum: .NET-Sprachen
C#
by Neutral General,
26. Jan 2016
Habe nie etwas von einem Umstieg geredet :gruebel:
Wir haben schon immer Firebird benutzt.
Dachte ich auch für einen Moment, aber die funktionieren halt nur innerhalb einer Transaktion. Sobald ich commite kann ich nicht mehr zurückspringen und nach einem CREATE TABLE muss ich ja scheinbar committen.
Forum: .NET-Sprachen
C#
by Neutral General,
25. Jan 2016
Ja ich habe alleinigen Vollzugriff.
Die Sache ist nur die: Ich will nicht bei 20 Skripten 20x eine > 1GB Datenbank sichern und wiederherstellen.
Das dauert dann statt 1 Minute 1 Stunde.
Die Lösung mit dem Rollback-Skript gefällt mir auch nicht sonderlich. Da muss ich alle Skripte ja fast doppelt schreiben :?
Gibt es nicht tatsächlich eine Möglichkeit das Ganze über Delta Files, bzw....
Forum: .NET-Sprachen
C#
by Neutral General,
25. Jan 2016
Mir kam grad eine böse Idee die ich aber bisher (vielleicht zum Glück?) nicht zum Laufen gebracht habe.
Vielleicht kann ich ja die Delta files misbrauchen?
alter database begin backup;
-- skript mit commmit nach jedem Befehl
alter database end backup;
Falls dort dann zwischendrin was schief läuft könnte ich ja irgendwie vielleicht die delta Datei löschen und so mein Skript quasi...
Forum: .NET-Sprachen
C#
by Neutral General,
25. Jan 2016
Den zweiten Link hab ich auch grad gefunden.
Und was machen ich dann wenn ich ein Skript ausführen möchte (möglicherweise lange Skripte in denen Tabellen erstellt, gedroppt, Daten gelöscht und eingefügt werden)
und bei einem Fehler das Skript zurückrollen will? Das muss doch auf irgendeine Weise möglich sein