Einzelnen Beitrag anzeigen

Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Daten von lokaler Tabelle in Tabelle auf Server kopieren

  Alt 15. Feb 2007, 13:00
Zunächst: Die Methode Open darfst du nicht für Insert-, Update- und Delete-Statements verwenden. Hier musst du ExecSQL verwenden.

Lösung auf die Schnelle: Query1 für dBase, Query2 für Postgres, in einer Schleife bildest du die Insert-Anweisung mit den Feldinhalten aus Query1 in der Query2 und sendest sie mit ExceSQL (kein Post!, aber weventuell zweites Query mit Anweisung Commit) an die PostgresSQL-Datenbank.

Schema:
Delphi-Quellcode:
Query1.SQL.Text := 'SELECT Feld1, Feld2 FROM DBASE';
Query1.Open;
Query2.SQL.Text := 'INSERT INTO POSTGRES(Col1, Col2)';
Query2.SQL.Add('VALUES (:Feld1, :Feld2)';
Query3.SQL.Text := 'COMMIT';
while not Query1.Eof do
begin
  Query2.ParamByName('Feld1').AsInteger := Query1.FindField('Feld1').AsInteger;
  Query2.ParamByName('Feld2').AsString := Query1.FindField('Feld2').AsString;
  Query2.ExecSQL;
  Query3.ExecSQL;
  Query1.Next;
end;
Nicht besonders elegant, nicht besonders schnell, aber sollte funktionieren.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat