Ver Mensaje Individual
  #6  
Antiguo 04-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Código:
try
  {Mi Código}
finally
  {Código que se ejecutará siempre}
end;

try
  {Mi Código}
except
  {Código que se ejecutará ante un Error}
end;
Try... es la forma de capturar errores que tiene Delphi, y es MUY diferente a la de VB. El concepto viene de C, y es mas o menos así... La idea es definir bloques de capturas de errores, estos bloques están definidos entre el Try y el End, cuando usamos Finally, como en el ejemplo que te pasé, es porque queremos que lo que esta entre Finally y End se ejecute SI O SI, aunque se produzca un error entre el Try y el Finally. Cuando usamos Except, es porque queremos que el código entre el Except y el End se ejecute solo cuando se produce un error en el bloque.

En consultas de selección es inapropiado utilizar transacciones, por eso te voy a cambiar el ejemplo a un update, donde tenemos todos los tipos de capturas de errores:

Código:
var
 MiBase: TDatabase;
begin
 MiBase := TDatabase.Create(Self);
 try
   MiBase.AliasName := 'MiAlias';
   MiBase.Open;
   MiBase.StartTransaction;
   try
     MiBase.Execute('INSERT.... ');
     MiBase.Execute('UPDATE.... ');
     MiBase.Commit;
   except
     MiBase.Rollback ;
     raise;
   end;
 finally
   MiBase.Free;
 end;
end;

Te recomiendo leer los ejemplos de la ayuda.
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita