Todas las transacciones del Firebird pueden terminar solamente con un COMMIT o con un ROLLBACK. Es un error muy frecuente en los principiantes escribirlos dentro de un stored procedure o de un trigger pero ese es un error grave y por lo tanto el Firebird lo rechazará.
Al ejecutar un stored procedure o un trigger esto siempre ocurre dentro de una transacción y los comandos COMMIT y ROLLBACK están afuera, se usan para terminarla, por eso no puede aceptarse que se escriban dentro de un stored procedure o un trigger.
Entendiendo ACID | Firebird SQL
May 10, 2013 @ 22:14:43
El índice del blog Firebird21 | Firebird SQL
Jun 17, 2013 @ 04:48:09
Entendiendo a las transacciones | Firebird SQL
Sep 07, 2013 @ 03:04:01
Dic 14, 2017 @ 13:40:41
como puedo saber si mi procedimiento almacenado termino en commit o rollback, o como puedo agregarlos(commit rollback)
Dic 14, 2017 @ 21:20:13
Esa es tu tarea, después de llamar a tu procedimiento almacenado debes escribir el comando COMMIT (para confirmar los cambios) o el comando ROLLBACK (para desechar los cambios).
Para saber si ocurrió algún error en el procedimiento almacenado puedes usar EXCEPTION, o un parámetro de retorno que te lo indique.
Saludos.
Walter.