Hola...
Te contesto de acuerdo a mi experiencia:
Cita:
Empezado por MaMu
1) Cuándo debo iniciar la transacción?
|
Una transacción la debes iniciar justo antes de mandar los datos a la base de datos:
Código Delphi
[-]
Transaction1.StartTransaction;
DataSet1.Post;
DataSet2.Post;
Mayormente con
Commit o
Rollback, esto de acuerdo al resultado de las operaciones...
Cita:
3) Es el engine quien se encarga de negociar la conciliación de datos?
|
Si te refieres a la integridad de los datos, mayormente se verifican en la parte del servidor mediante reglas de integridad referencial, disparadores y procedimientos almacenados.
Si alguna de estas operaciones de verificador terminan en un error, el servidor se encarga de comunicar al cliente de tal situación...
Cita:
4) Si tengo un error, utilizo RollBack, pero como se cuando es exitosa?
Saludos
|
Usando la captura de excepciones:
Código Delphi
[-]
Transaction.StartTransaction;
try
DataSet1.Post;
DataSet2.Post;
Transaction.Commit
except
Transaction.Rollback;
ShowMessage('Ocurrió un error')
end
Espero que te aclare un poco tus dudas...
Saludos...