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;