Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Cuando se llama un SP dentro de otro SP autom. se hace rollback por error (https://www.clubdelphi.com/foros/showthread.php?t=20139)

cuxoapat 06-04-2005 20:53:10

Cuando se llama un SP dentro de otro SP autom. se hace rollback por error
 
Tengo esta duda y no encontré en la documentación de interbase algún texto sobre ello.

Tengo stored procedures que llaman a otros con la sentencia:

execute procedure

los SP que se llaman hacen inserciones, updates y borrado de datos en varias tablas.

La duda que tengo es si en caso de error en el SP que hace los llamados, cuando se hace el Rollback del SP principal, ¿Automáticamente se hacen rollbacks para todos los cambios realizados por los SP que se llamaron?

jachguate 06-04-2005 22:15:50

un rollback o commit no actua a nivel de un stored procedure, sino a nivel de sesión. Entiendo que firebird, al elevarse el error, deshará todas las inserciones/borrados/modificaciones realizadas desde la stored procedure, (supongo que con una transacción anidada o un savepoint) de manera que esta puede considerarse como una operación atómica dentro de la transacción.

Cuando haces rollback, todos los cambios no confirmados en la BD en esa transacción particular, prducidos dentro del stored procedure o fuera de él, serán desechos.

Hasta luego y espero haberme explicado.

;)


La franja horaria es GMT +2. Ahora son las 23:22:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi