Ver Mensaje Individual
  #8  
Antiguo 26-04-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Reputación: 21
hermes_32 Va por buen camino
Prueba a realizar el proceso entero dentro de una transaccion. Sería mas o menos:

Código Delphi [-]
db.StartTransaction;  
  If Datamodule2.REMMAE.Locate('CODEMP',Campos[0],[]) then
    begin
      try
        Datamodule2.REMMAE.Edit;
        Datamodule2.REMMAE.Fields[42].Value := Strtofloat(Campos[1]);
        Datamodule2.REMMAE.Fields[43].Value := Strtofloat(Campos[2]);
        Datamodule2.REMMAE.Fields[44].Value := Strtofloat(Campos[3]);
        Datamodule2.REMMAE.Fields[51].Value := Strtofloat(Campos[4]);
        Datamodule2.REMMAE.Fields[50].Value := Strtofloat(Campos[5]);
        Datamodule2.REMMAE.Fields[36].Value := Strtofloat(Campos[6]);
        Datamodule2.REMMAE.Fields[47].Value := Strtofloat(Campos[7]);
        Datamodule2.REMMAE.Post;
        db.Commit;
      except on e:exception do begin
         showmessage(e.message); //que muestre el error si se produce
         db.Rollback;
         end;
      end;
    end;

Mas o menos. Lo he hecho sobre la marcha igual ni compila , pero la idea es esa.

Pero insisto, si la tabla sobre la que estas haciendo un "locate" no tiene ningún índice...mal vamos...ya que por eso seguramente parezca que se te queda colgado aunque realmente estará buscando como un loco.

Última edición por hermes_32 fecha: 26-04-2005 a las 22:38:37.
Responder Con Cita