FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problema con TRIGGER
hola amigos del foro, estoy peleando con los TRIGGER y crear este me dice que no existe, quiero autoincrementar el campo nro de la tabla ticks, pero al grabarla me dice TRIGGER no found. no entiendo?, aqui el código.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#2
|
||||
|
||||
Cita:
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#3
|
|||
|
|||
Le falta que le cambies el evento a "BEFORE", como lo tienes el triger se dispara despues que se realiza la insercion.
__________________
Saludos Alfredo |
#4
|
||||
|
||||
Los triggers after, como su nombre lo indica, se disparan después de la inserción física del registro, por lo que no tiene sentido alterar algún dato, pues esto ya no se reflejará en el registro.
Comento que una de las mejoras de firebird 2 es que al intentar compilar un trigger como este, obtendrás un error o un warning, no recuerdo con exactitud ahora, que te indicará que el registro new es de solo lectura. Para lo que vos queres, precisas de crear un trigger que se ejecute antes de la inserción. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
gracias amigos, ya había cambiado eso after por before pero igual, resulta que el campo nro es la llave principal de mi tabla algo leí en foro que había problema con eso será por eso que no me autoincrementa?, de todas maneras elomine el indice pero igual.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#6
|
||||
|
||||
Puedo asegurarte que si el trigger está before, ¡Se auto-incrementa, como vos decis!
¿desde donde lo estas viendo?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Cita:
Este es mi TRIGGER:
Mi generador:
Ahora el campo nro (el cual supuestamente se autoincrementa), es mi llave de la tabla por lo tanto no acepta valores null, y cuando agrego un registro por ejemplo en SQL Explorer, me da el siguiente error. 'Field NRO must have value', por lo tanto no me esta llenado el TRIGGER el campo nro.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC. |
#8
|
|||
|
|||
eso pasa, por que el sql explorer hace un verificacion de los campos que requieren valor antes de generar la instruccion de insercion, si quieres meter valores puedes ponerle un valor cualquiera, por ejemplo cero, cuando se realice la insercion tu campo tendra el valor correcto, ahora bien tambien puedes insertar los registros por medio de una sentencia
en la cual omitas el campo nro.
__________________
Saludos Alfredo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trigger | inferno | Firebird e Interbase | 1 | 26-10-2005 21:25:43 |
gracias trigger | infinitoespasmo | Humor | 7 | 30-12-2004 08:27:31 |
trigger | jaime cotino | Firebird e Interbase | 3 | 10-06-2004 19:10:48 |
problema de trigger | ronson | Firebird e Interbase | 3 | 01-03-2004 18:16:57 |
trigger | acertij022 | Firebird e Interbase | 6 | 20-10-2003 19:20:31 |
|