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)
-   -   No ejecuta Trigger en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=38736)

Coco 26-12-2006 17:48:31

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.

DarKraZY 26-12-2006 19:09:08

Cita:

Empezado por Coco
El problema es que este no se ejecuta a menos que la sentencia que se ejecute este dentro de una transaccion.

Cita:

Empezado por Coco
El problema sucede en este ultimo caso, ya que no ejecuta los triggers por mas que las sentencias esten en una transaccion.

Estoy confundido. Pero en Interbase siempre tiene que existir una transacción para trabajar con datos.

Coco 26-12-2006 19:34:23

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

DarKraZY 26-12-2006 19:40:57

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.

ArdiIIa 04-01-2007 04:42:21

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...

rastafarey 09-01-2007 17:43:48

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 06:03:49.

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