Ver Mensaje Individual
  #10  
Antiguo 25-04-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
Hola...

Te contesto de acuerdo a mi experiencia:

Cita:
Empezado por MaMu Ver Mensaje
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;

Cita:
2) Cómo debe finalizar?
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...
Responder Con Cita