![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
oki
Gracias Sr. Juan Antonio Castillo Hernández, ya se que un trigger se ejecuta antes de después de Insertar, Actualizar y Borrar, pero no se porque no se ejecuta cuando en el dbGrid "AUTOMATICAMENTE" ejecuta el POST de la Tabla(IbDataset) en donde en el ModifiSQL tengo un "UPDATE ......", ya le cambie a todos los estados al Trigger pero no me devuelve ningun valor, pero si mando a llamar el ibStoreProccedure en el "BeforePost" del IbDataset mandandole los parámetros de Entrada, si me devuelve el parámetro de Salida.
En el BeforePost del IbDataset tengo esto: Código:
tDPromocionSUCURSAL.value:=SucursalProm; tDPromocionCLIENTE.value:=ClienteProm; Ya lo probe como también me dice Sr. Marc Guillot, no me marca error en el Trigger pero también no me devuelve el ningún valor. No se que estaré haciendo mal, ó bien supuestamente en el dbGrid porque si al agregar un Nuevo registro "ACTUALIZA AUTOMATICAMENTE" el registro anterior y no se Dispará el Trigger. De antemano Gracias por sus Respuestas. |
|
#2
|
||||
|
||||
|
Hola.
Una posiblidad es que tu trigger asigne un valor en el campo, pero la sentencia de modificación que lanza el IBDataset le asigne un valor nulo, sobreescribiendo el valor asignado por el trigger. Para evitarlo, el campo no debe estar en los campos persistentes del IDBataSet, o bien debe ser ReadOnly, o tener desactivado el flat pfInUpdate. NOTA: Como no utilizo IBX solo te lo puedo indicar de forma aproximada. (Si el IBDataSet tiene una sentencia SQL para el Update, quita ese campo de la sentencia). Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#3
|
||||
|
||||
|
oki
Lo voy a probar..... Gracias por sus Respuestas.
|
|
#4
|
||||
|
||||
|
oki
Sinceramente ya revise todo, ya hice lo que me dijo pero no me devuelve ningun valor para el campo INDICE que tengop dentro del Trigger antes de Insertar un Registro en el Detalle, que raro, pero en código si me devuelve el valor, de todas formas Muchas Gracias por su respuesta.
|
|
#5
|
||||
|
||||
|
Que ocurre si lanzas la sentencia update en isql o en ibexpert?
hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#6
|
||||
|
||||
|
oki
Si lanzo esta sentencia me llama el Trigger en donde llamará al Proc. Almacenado que me regresará el último INDICE del Detalle y me actualizará este mismo. Esto es si la llave Primaria SUCURSAL y CLIENTE tienen valores, pero si juego a que el "dbGrid" intente a disparar el Trigger no lo logra hacer. Espero me haya explicado .. Gracias.
|
|
#7
|
||||
|
||||
la verdad no.Un trigger se dispara independientemente de donde venga la sentencia update. Precisamente esa es una de sus razones de ser, y de sus principales ventajas. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|