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
|