Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Daten aus einer DB in eine andere DB kopieren per sql

  Alt 29. Jan 2012, 01:38
Wenn beide Datenbanken vom gleichen Server gehostet würden, dann würde deine SQL-Anweisung funktionieren.
Der MS SQL Server kann das, bei TurboDB glaub ich das eher nicht.
Also muss die Tabelle Datensatz für Datensatz kopiert werden.

Dazu braucht man zwei Queries:
Delphi-Quellcode:
querysrc.SQL.Text := 'SELECT * FROM TourTable1.WptsTable2 where gccode=12345';
querydst.SQL.Text := 'SELECT * FROM ArchivTable1.WptsTable1 WHERE 0=1'
querysrc.open;
querydst.open;
while not querysrc.Eof do
begin
  querydst.Append;
  // alle Felder eines Datensatz kopieren
  for i := 0 to querydst.Fields.Count-1 do
  begin
     feldname := querydst.Fields[i].FieldName;
     querydst[feldname] := querysrc[feldname];
  end;
  querydst.Post;
  querysrc.Next;
end;
Den Code habe ich ohne Delphi-IDE geschrieben; es können also noch Fehler drin sein.
Es gibt auch noch etwas schnellere Verfahren (man erzeugt INSERT-Statements zur Laufzeit),
aber das gezeigte Verfahren ist recht einfach und passt auf alle Tabellen mit gleicher Struktur.
  Mit Zitat antworten Zitat