![]() |
Datenbank: TurboDB • Version: 5 • Zugriff über: TurboDB
Daten aus einer DB in eine andere DB kopieren per sql
Ich habe 2 Datenbanken. DB1 und DB2 darin sind je 3 Tabellen enthalten die in beiden DB identisch sind.
Nun möchte ich aus DB1 Tabelle2 bestimmte Datensätze zur DB2 Tabelle2 kopieren. Wie gesagt, die Tabellen sind identisch. das hier funktioniert leider nicht:
Delphi-Quellcode:
Kann mir bitte jemand sagen wie das geht? Ich nutze TdbQuery für so was.
datamodule1.TdbQuery1.SQL.Text := 'INSERT INTO ArchivTable1.WptsTable1 SELECT * FROM TourTable1.WptsTable2 where gccode=12345';
Danke. |
AW: Daten aus einer DB in eine andere DB kopieren per sql
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:
Den Code habe ich ohne Delphi-IDE geschrieben; es können also noch Fehler drin sein.
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; 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. |
AW: Daten aus einer DB in eine andere DB kopieren per sql
Zitat:
|
AW: Daten aus einer DB in eine andere DB kopieren per sql
Es gibt bestimmt auch Export/Import/Backup-Funktionen, welche man via SQL ansprechen kann.
|
AW: Daten aus einer DB in eine andere DB kopieren per sql
Muss es denn unbedingt SQL sein?
Mit TTdbBatchMove würde es schnell und einfach gehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz