Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2008, 11:23
centrion_75
 
Fecha de Ingreso: marzo-2008
Mensajes: 119
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Transaccionalidad con AdoBD

Hola a todos,

me gustaría utilizar transaccionalidad en mi proyecto con AdoDB. He leído en el manual lo siguiente:
Cita:
Con transacciones inteligentes es mas sencillo. Se empieza una transaccion invocando StartTrans():

$conn->StartTrans();
$conn->Execute($sql);
$conn->Execute($Sql2);
$conn->CompleteTrans();

El metodo CompleteTrans() detecta cuando ocurrio un error SQL, y procesara Rollback o Commit segun sea necesario. Para forzar especificamente un evento rollback si no ha ocurrido un error, usa el metodo FailTrans(). Toma en cuenta que el rollback se efectua HASTA el CompleteTrans(), y no con el FailTrans().

$conn->StartTrans();
$conn->Execute($sql);
if (!CheckRecords()) $conn->FailTrans();
$conn->Execute($Sql2);
$conn->CompleteTrans();

Tambien se puede verificar si una transaccion a fallado usando HasFailedTrans(), el cual nos devuelve verdadero si se ha invocado FailTrans() o si hubo un error en la ejecucion de los SQL. Asegurese de usar HasFailedTrans() antes de llamar a CompleteTrans(), ya que esta unicamente funciona dentro de StartTrans y CompleteTrans.
Mi pregunta es si sólo con : StartTrans()/CompleteTrans(), ya no es necesario tratar excepciones porque lo hace solo o si es necesario utilizar las excepciones que el propio AdoBD tiene en un fichero.

Última edición por GatorV; 08/04/2008 a las 11:38