Ver Mensaje Individual
  #5  
Antiguo 18-09-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Esto es un ejemplo.

Habría que :
- meter algunas cosas en un bloque try .. .except.
- hacer comprobaciones de que no haya fallado el abrir la base de datos

Podrías tomar el ejemplo y enviarle como parámetros, la tabla y la lista de los parámetros. Con esto generarías el select y el insert.

Código Delphi [-]
procedure TFMPrueba.Button1Click(Sender: TObject);
var
   i : integer;
begin
   {Abir Base de Datos}
   with TOrigen do
   begin
      Database.Open;
      Transaction.StartTransaction;
   end;
   with TDestino do
   begin
      Database.Open;
      Transaction.StartTransaction;
   end;

   {Select de origen e Insert en destino}
   TOrigen.SQL.Text := 'Select campo1, compo2, campo3 from tabla where nuevo=1';
   TDestino.SQL.Text := 'INSERT INTO tabla (campo1, compo2, campo3) VALUES (?campo1, ?compo2, ?campo3)';

   {Abro el origen}
   TOrigen.ExecQuery;
   while not TOrigen.EOF do
   begin
      {Asigno parámetros}
      for i := 0 to TDestino.Params.Count-1 do
      begin
         {Asigno al paramemtro i el valor del campo con el nombre del parametro}
         TDestino.Params[i].Assign(TOrigen.FieldByName[TDestino.Params[i].Name]);
      end;
      
      TDestino.ExecQuery;
   end;

   {Luego hay que cerrar Querys, Transacciones y Base}
   with TOrigen do
   begin
      TOrigen.Close;
      Transaction.Commit;
      Database.Open;
   end;
   with TDestino do
   begin
      TDestino.Close;
      Transaction.Commit;
      Database.Open;
   end;
   
end;

Última edición por duilioisola fecha: 18-09-2008 a las 17:32:13.
Responder Con Cita