Hola, yo tnengo que hacer algo parecido aunque aun no me pasan las tablas lo que se es que no son extructuras iguales y voy a tener que usar query's para unir dos o mas tablas y poder obtener los campos en el orden que requiero, pero bueno lo que se me ocurre es crear la consulta de actualización a pata (como me han aconsejado algunos master de este foro
) y despues ejecutarla, toma el código con sus respectivas precauciones ya que aun no lo pruebo y me falta la condición para los campos boolean, posiblemente este mejore el tiempo de respuesta
Código Delphi
[-]
var
Sentencia: string;
i: Integer;
begin
query1.sql.clear;
table1.firts;
while not table1.eof do
Begin
for i:= 0 tabla1.fieldcount-1 do
Begin
Sentencia:= 'Insert into Tabla1 (campo1, campo2, campo3....) values(';
if table1.fields.fields[i].DataType in ([ftString, ftFixedChar, ftWideString])
then Sentencia:= sentencia +chr(39)+ table1.fields.fields[i].value+chr(39);
if table1.fields.fields[i].DataType in ([ftSmallint, ftInteger, ftWord, ftAutoInc, ftLargeint])
then Sentencia:= sentencia +IntToStr(table1.fields.fields[i].value);
if table1.fields.fields[i].DataType in ([ftFloat, ftCurrency, ftBCD])
then Sentencia:= sentencia +FloatToStr(table1.fields.fields[i].value);
if table1.fields.fields[i].DataType in ([ftDate, ftTime, ftDateTime, ftTimeStamp])
then Sentencia:= sentencia+chr(39)+FormatDateTime('mm/dd/yy',table1.fields.fields[i].value)+chr(39);
if i < tabla1.fieldcount-1
then sentencia = sentencia + ','
else sentencia = sentencia + ');';
end;
query1.sql.add(sentencia);
Sentencia:= '';
table1.next;
end;
query1.ExecSQL;
End;