Ver Mensaje Individual
  #5  
Antiguo 19-08-2006
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Reputación: 21
jzginez Va por buen camino
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;
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita