Cita:
Iniciado por GatorV
Lo mas facil es que uses PDO, y con eso puedes hacerlo como lo planteas, en caso de un error haces el rollback.
Saludos.
según la ayuda de PDO.
Código PHP:
<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected\n";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
?>
Este es el comportamiento deseado, pero migrar la aplicación que ya lleva un 60% sería un suicidio, pero lo tendré en cuenta para futuros desarrollos.
Además que creo que PDO será un estandar (en alguna parte lo leí

)
Mientras tantos intentaré emitar el compartimiento, quizás haciendo que las funciones que gatillan los procedimientos almacenados en vez de devolver un mensaje de error hagan levantar una excepción y luego capturarlas desde afuera.
Haré el intento....
Si alguien tiene un ejemplo, mejor todavía.
Gracias GatorV-
Saludos.-