![]() |
No ejecuta Trigger en Firebird
Hola, tengo un problema con una base Firebird. En la base tengo una tabla que tiene un trigger asociado luego de los inserts.
El problema es que este no se ejecuta a menos que la sentencia que se ejecute este dentro de una transaccion. Hay alguna solucion a esto. Es un problema de configuracion de la base?. A la base puede haber 2 tipos de conexiones, desde delphi 7, la cual esta solucionado con transacciones y desde php. El problema sucede en este ultimo caso, ya que no ejecuta los triggers por mas que las sentencias esten en una transaccion. Alguna solucion please?:confused: Desde ya muchas gracias. |
Cita:
Cita:
|
Es decir, cuando ejecuto la sentencia, sea cual sea... debo ejecutarla entre un startTransaction y commit para que surja efecto. En caso contrario, no ejecuta el trigger.
Por lo que tengo entendido, si ejecuto un insert deberia ejecutar siempre el trigger (sin necesidad de poner la instruccion en una transaccion explicitamente). Por eso estoy desorientado |
La verdad es que nunca he usado PHP para acceder a Interbase. Pero revisa la ayuda de los componentes o funciones de PHP con las que accedes a Interbase a.
Te puedo asegurar que en Delphi necesitas siempre una transacción, pero también si accedes por ejemplo desde un gestor de base de datos (como por ejemplo IBConsole o SQL Hammer) aunque estos últimos puedan hacerlo de forma transparente al usuario. Podría ser que internamente en PHP no se realice un commit de la transacción y por eso no veas que se ejecute el trigger. |
Yo tampoco he llegado al Firebird con PHP...
mira AKI que aunque no hablan nada de transacciones parece un artículo bastante elocuente... Espero que te sea de utilidad... |
Resp
Yo si he usado php pero estre no es tan intuitivo como la mayoria d elso componenstes que usan delphi. Que algunos tienes auto commit. y cuando lo suqe no lo poseen aplican lñas transacciones al terminar la aplicacion.
Pero en php no existe esa magia. Asi que has las transacciones o todo quedara en le limbo. |
| La franja horaria es GMT +2. Ahora son las 16:24:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi