Ver Mensaje Individual
  #1  
Antiguo 12-05-2005
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Reputación: 21
Fita Va por buen camino
Despejar Dudas con Insert

Hola a todos....
Mi aplicacion en Interbase debe insertar registros en una tabla haciendo
un do while en otra.
La pregunta es que opcion es mejor y porqué, ya que soy nuevo en Interbase.

Aqui va el código de la opcion 1:

Tabla1.First;
while not Tabla1.Eof do
begin
Tabla2.Close;
Tabla2.selecSql.clear;
Tabla2.selecSql.Add('insert into Tabla2 (campo) VALUES (:campo) ' );
Tabla2.ParamByName('campo').AsString := Tabla1Nombre.Value;
Tabla2.Prepare;
Table2.ExecSql;
Transaction.Commit // Transaction enlazada a Tabla2 graba

Tabla1.Next;
end;

Esto funciona pero es lento. Supongo que es la ejecución del Query por
cada registro leido de Tabla1

Codigo de la opcion 2, funciona, es más rápido... pero está bien?

Tabla2.Close;
Tabla2.selecSql.clear;
Tabla2.selecSql.Add('insert into Tabla2 (campo) VALUES (:campo) ' );
Tabla2.Prepare;

Tabla1.First;
while not Tabla1.Eof do
Tabla2.ParamByName('campo').AsString := Tabla1Nombre.Value;
Table2.ExecSql;

Tabla1.Next;
end;

Transaction.Commit // Transaction enlazada a Tabla2 graba

Me gustaría si alguno puede hacer algún comentario al respecto como para conocer un poco más acerca del funcionamiento de Interbase.

Gracias a todos por anticipado
Responder Con Cita