Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Exportar datos eficientemente (https://www.clubdelphi.com/foros/showthread.php?t=54562)

Zakio14 23-03-2008 21:32:21

Exportar datos eficientemente
 
Tengo el siguiente ciclo para guardar todos los datos de una tabla a otra, pero me agradaría otro código que sea mas eficiente les agradezco su ayuda. Les pido paciencia porque se que es algo sencillo, pero aun no tengo los conocimientos necesarios. Gracias por ser mis maestros!!!

tablas
Temporal -Campos->(Id_socio,id_pelicula,NOMBRE_PELICULA,FECHA_RETIRO,FECHA_REINTEGRO)
Alquiler -campos->(Id_socio,id_pelicula,NOMBRE_PELICULA,FECHA_RETIRO,FECHA_REINTEGRO)

modulo.IBAlquiler.SelectSQL.Clear;
modulo.IBAlquiler.SelectSQL.Add('SELECT * FROM Alquiler');
modulo.IBAlquiler.Open;


while not modulo.IBTemporal.Eof do begin

modulo.IBAlquiler.Insert;
modulo.IBAlquiler.FieldValues['Id_socio'] := modulo.IBTemporal.FieldValues['Id_socio'];
modulo.IBAlquiler.FieldValues['id_pelicula'] := modulo.IBTemporal.FieldValues['id_pelicula'];
modulo.IBAlquiler.FieldValues['NOMBRE_PELICULA'] := modulo.IBTemporal.FieldValues['NOMBRE_PELICULA'];
modulo.IBAlquiler.FieldValues['FECHA_RETIRO'] := modulo.IBTemporal.FieldValues['FECHA_RETIRO'];
modulo.IBAlquiler.FieldValues['FECHA_REINTEGRO'] := modulo.IBTemporal.FieldValues['FECHA_REINTEGRO'];
modulo.IBAlquiler.Post;
modulo.IBAlquiler.close;
modulo.IBTemporal.Next;

end;

RONPABLO 24-03-2008 06:47:52

Lo puede hacer con un simple query como el siguiente:

Código SQL [-]
insert into Alquiler
(
    Id_socio, id_pelicula, NOMBRE_PELICULA, FECHA_RETIRO, FECHA_REINTEGRO
)
select 
   t.Id_socio, t.id_pelicula, t.NOMBRE_PELICULA, 
    t.FECHA_RETIRO, t.FECHA_REINTEGRO
from Temporal t

RolphyReyes 24-03-2008 14:36:26

Saludos.

Otra solución (no se si sea más eficiente o no) seria tener un trigger en la BD.

En otro caso podría ser también un Procedimiento Almacenado (SP).

Hasta luego.


La franja horaria es GMT +2. Ahora son las 01:03:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi