Ver Mensaje Individual
  #1  
Antiguo 13-04-2006
Arturo Arturo is offline
Miembro
 
Registrado: sep 2004
Posts: 91
Reputación: 20
Arturo Va por buen camino
como emplear la transacciones

saludos, he comprendido como usar las transaccion con zeos en un bloque try.. except pero no entiendo en donde poner el bendito codigo, es decir escribirlo en los eventos onnewrecord, beforeedit, beforedelete.
cuando ejecuto un tabla.append delphi sabe que hay que agregar un registro es correcto realizarlo de esta manera o en de que modo, he encontrado un codigo en este foro el cual menciona que lo resolvio.
Si alguin sabe como emplearlo o de que manera se los agradeceria, ya que los dbedit estan vinculados a las tablas por tal motivo si yo ejecuto un edit habo mis cambios en mis dbedit's y lugo hago un post me afecta los cambios quisiera saber en donde introdusco las transacciones eso es semejante cuando se trate del maestro/detalle.

Código PHP:
try

      
//Preparamos la transacción
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('SET AUTOCOMMIT = 0');
      
DataSet.Execute;

      
//Inicializamos la transacción
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('start transaction');
      
DataSet.Execute;

      
//Seleccionamos el registro a modificar con propiedades correctas
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('SELECT * FROM tabla LOCK IN SHARE MODE');
      
DataSet.Execute;

      
//Actualizamos los datos del campo correspondiente
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('UPDATE tabla SET');
      
DataSet.SQL.Add('campoDB=datosAct');
      
DataSet.SQL.Add('WHERE condicion<>0');
      
DataSet.Execute;

      
//Finalizamos la transacción
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('commit');
      
DataSet.Execute;

      
//Restauramos las propiedades originales
      
DataSet.SQL.Clear;
      
DataSet.SQL.Add('SET AUTOCOMMIT = 1');
      
DataSet.Execute;

    
except

      on E
Exception do begin
        
//Deshacemos los pasos de la transacción
        
DataSet.SQL.Clear;
        
DataSet.SQL.Add('RollBack');
        
DataSet.Execute;

      
end
Responder Con Cita