Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#30

AW: Firebird - Mehrere abhängige SQLs in einer Transaktion

  Alt 26. Jan 2016, 14:04
Pseudocode:
Code:
try
{
  foreach (IRevertableScript script in scripts)
  {
    ExecuteScript(script.SetupScript);
    revertable.Add(script);
  }
catch
{
  foreach (IRevertableScript scriptToUndo in revertable)
  {
     ExecuteScript(script.TeardownScript);
  }
}
Anstatt also einfach strings auszuführen, erstellst Du also pro 'Script' ein Objekt, bestehend aus zwei Skripten: Ein 'SetupScript' und ein 'TeardownScript', wobei das TeardownScript quasi die Umkehrfunktion des 'SetupScript' ist.
Also: Create Table => Drop Table etc.

Vermutlich muss man die Teardowns in umgekehrter Reihenfolge ausführen. Für einfache Sachen geht das und viele DB-Migratoren machen das auch so (z.B. der von EF)

Das Konzept an sich ist ja sprachenunabhängig.
  Mit Zitat antworten Zitat