Und wie sieht es mit sowas aus?
Delphi-Quellcode:
Source.SQL.Text := 'SELECT * FROM ' + TableName;
Source.ExecSQL;
InsertStr := '';
ValueStr := '';
for i := 0 to Source.ParamCount - 1 do begin
InsertStr := InsertStr + IfThen(InsertStr <> '', ', ', '') + Source.Fields[i].FieldName;
ValueStr := ValueStr + IfThen(ValueStr <> '', ', :', ':') + Source.Fields[i].FieldName;
end;
Dest.SQL.Text := Format('INSERT INTO %s (%s) VALUES(%s)', [TableName, InsertStr, ValueStr]);
while not Source.Eof do begin
Dest.Insert;
for i := 0 to Source.ParamCount - 1 do
Dest.Params.ParamByName(Source.Fields[i].FieldName).Value
:= Source.Fields.FieldByName(Source.Fields[i].FieldName).Value;
Dest.Post;
end;
Und ich glub das Quoten der Values wurden oftmals vergessen.
(entfällt bei dem Preparedzeugs aber)