Als erstes mache ich ein SELECT * ... über eine ADOConnection zum ersten Server. Danach über eine zweite Connection ein INSERT INTO ...
Leider funktioniert das ganze nicht richtig. Mit diesem Quelltext...
Delphi-Quellcode:
for i := 0 to qryMaster.Recordset.RecordCount-1 do
begin
columnList := '';
valList := '';
qryMasterExec.SQL.Text := 'SELECT * FROM '
+ qryMaster.Recordset.Fields.Item['TABLE_NAME'].Value;
qryMasterExec.Open;
qryMasterExec.Requery;
qryMasterExec.Recordset.MoveFirst;
for n := 0 to qryMasterExec.Recordcount-1 do
begin
for t := 0 to qryMasterExec.RecordCount-1 do
begin
columns[t] := qryMaster.Recordset.Fields.Item['COLUMN_NAME'].Value;
values[t] := qryMasterExec.Recordset.Fields.Item[columns[t]].Value;
end;
qryMasterExec.Recordset.MoveNext;
end;
for e := 0 to High(values)-1 do
begin
columnlist := columnlist + columns[e] + ' ';
valList := valList + values[e] + ' ';
mSQL.Lines.Add('INSERT INTO '
+ qryMaster.Recordset.Fields.Item['TABLE_NAME'].Value
+ ' ('+columnList+') VALUES'
+ ' ('+valList+')'
);
end;
qryMaster.Recordset.MoveNext;
end;
...bekomme ich leider nur Insert's wie:
Code:
INSERT INTO Rechnung (ID ) VALUES (4 )
INSERT INTO Rechnung (ID ID ) VALUES (4 4 )
INSERT INTO Rechnung (ID ID ID ) VALUES (4 4 4 )
INSERT INTO Rechnung (KID ) VALUES (2 )
INSERT INTO Rechnung (KID KID ) VALUES (2 2 )
INSERT INTO Rechnung (KID KID KID ) VALUES (2 2 2 )
INSERT INTO Rechnung (PID ) VALUES (1 )
INSERT INTO Rechnung (PID PID ) VALUES (1 1 )
INSERT INTO Rechnung (PID PID PID ) VALUES (1 1 1 )
INSERT INTO Kunde (ID ) VALUES (3 )
INSERT INTO Kunde (ID ID ) VALUES (3 3 )
INSERT INTO Kunde (ID ID ID ) VALUES (3 3 3 )
INSERT INTO Kunde (Name ) VALUES (Plaum )
INSERT INTO Kunde (Name Name ) VALUES (Plaum Plaum )
INSERT INTO Kunde (Name Name Name ) VALUES (Plaum Plaum Plaum )
INSERT INTO Kunde (Vorname ) VALUES (Jürgen )
INSERT INTO Kunde (Vorname Vorname ) VALUES (Jürgen Jürgen )
INSERT INTO Kunde (Vorname Vorname Vorname ) VALUES (Jürgen Jürgen Jürgen )
INSERT INTO Kunde (Ort ) VALUES (Siegen )
INSERT INTO Kunde (Ort Ort ) VALUES (Siegen Siegen )
INSERT INTO Kunde (Ort Ort Ort ) VALUES (Siegen Siegen Siegen )
INSERT INTO Produkt (ID ) VALUES (2 )
INSERT INTO Produkt (ID ID ) VALUES (2 2 )
INSERT INTO Produkt (ID ID Ort ) VALUES (2 2 Siegen )
INSERT INTO Produkt (Name ) VALUES (Lenovo R500 )
INSERT INTO Produkt (Name Name ) VALUES (Lenovo R500 Lenovo R500 )
INSERT INTO Produkt (Name Name Ort ) VALUES (Lenovo R500 Lenovo R500 Siegen )
INSERT INTO Produkt (Kommentar ) VALUES (Lenovo Thinkpad Laptop )
INSERT INTO Produkt (Kommentar Kommentar ) VALUES (Lenovo Thinkpad Laptop Lenovo Thinkpad Laptop )
INSERT INTO Produkt (Kommentar Kommentar Ort ) VALUES (Lenovo Thinkpad Laptop Lenovo Thinkpad Laptop Siegen )
(Alle Daten sind ausgedacht!)
Was mache ich falsch?