Einzelnen Beitrag anzeigen

Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#1

Daten innerhalb Datenbank kopieren(sichern) und wiederherstellen

  Alt 27. Jan 2019, 13:03
Datenbank: sqlite-3 • Version: 7.1.4-stable • Zugriff über: Delphi 7
Hallo, vielleicht kann mir ja einer einen Tip geben, ich sichere bestimmte Tabellen innerhalb der selben Datenbank mit folgemden Befehl:

// Tabellen innerhalb der selben Datenbank sichern
query.SQL.Text := 'INSERT INTO TblBackup '+
'SELECT Row1,Row2,Row3,Row4,Row5 FROM TblDaten WHERE Bedingung <> '+#39+'1'+#39;
query.ExecSQL;

Funktioniert wunderbar und ist super schnell, aber um das Backup (Sicherung) zurück zu spielen,
ist mir das nachfolgende einfach zu lang und dauert ewig:

// Tabelle Wiederherstellen
query.SQL.Text := 'UPDATE TblDaten SET Row1 = (SELECT Row1 FROM TblBackup WHERE TblBackup.Dat = TblDaten.Dat)';
query.ExecSQL;

query.SQL.Text := 'UPDATE TblDaten SET Row2 = (SELECT Row2 FROM TblBackup WHERE TblBackup.Dat = TblDaten.Dat)';
query.ExecSQL;

query.SQL.Text := 'UPDATE TblDaten SET Row3 = (SELECT Row3 FROM TblBackup WHERE TblBackup.Dat = TblDaten.Dat)';
query.ExecSQL;
... und so weiter, das sind mehrere einzelne ExecSql, deshalb dauert das so lange, kann man das nicht
mit einer einzelnen Query machen? Unter Delphi kann man ja den SQL.Text nicht unendlich lang machen...

Gruß Mario
Gruß Mario
  Mit Zitat antworten Zitat