Ver Mensaje Individual
  #7  
Antiguo 19-07-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Post

Bueno, más o menos es la forma estandard de hacer las cosas desde Delphi.

(1) Abres la transacción
(2) Ejecutas las operaciones que quieres que se hagan TODAS como una unidad
(3) Si ha ido todo bien, realizas el COMMIT (que acepta TODOS los cambios)
(4) Si ha ocurrido algun error, realizas un COMMIT que deshace TODOS los cambios.

Código Delphi [-]
var 
  Level: integer; 
begin 
  // Iniciar la transacción
  Level:= Conexion.BeginTrans;  
  // Proteccion por si hay errores 
  try   // Hacer Algo.. con las tablas.. 
    // Actualizar, Adicionar, Eliminar
    // Todas estas operaciones se realizarán en bloque; O TODAS o NINGUNA
    ...

    // Si llegas aquí es que no ha habido ningun error, por lo tanto ACEPTAMOS TODO
    Conexion.CommitTrans;   
  except 
    // en caso de algun error, llegará aquí
    on E:Exception do begin
      // con esto cancelamos TODAS las operaciones
      Conexion.RollbackTrans;  
    end; 
  end  //try
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita