![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() Buenas, les comento.
Tengo una tabla: Lotes
Un trigger sobre la tabla
Si queremos asociar un lote con un cliente, el mismo debe estar DISPONIBLE. Hasta aquí todo bien, el trigger solamente me va a dejar pasar si el lote está disponible. Resulta que ahora, por otra parte del software, se quiere modificar la dimensión del lote (que está en m2). Claramente eso no tiene nada que ver con el estado del lote. Hago:
Al hacer esto, el trigger de mas arriba cancela la operación indicándome que el lote no está disponible. El trigger se ejecuta "before", y en el update no estoy enviado ningún valor para el campo "estado_lote", por lo cual debería dejar que se haga la actualización sin problemas. Lo que veo es que new y old tienen el mismo valor, sino no habría forma de que el if me de verdadero. Esto es lo que me confunde... o yo estoy mal con esto o cambiaron las reglas de los triggers sin avisar. Se supone, que en este caso, el valor para new.estado_lote debería ser NULL o algo parecido pues no se actúa sobre él en el Update... Bah, no se. Uso Firebird 2.5 y Delphi XE5. Que alguien aclare please.... Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. Última edición por santiago14 fecha: 16-08-2014 a las 19:04:21. |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Trigger | josi | SQL | 2 | 26-03-2008 03:27:57 |
Un trigger que dispara un procedimiento que dispara un trigger... | sitrico | Firebird e Interbase | 5 | 04-06-2007 22:05:13 |
Duda Sobre trigger | DANIELMW | Firebird e Interbase | 3 | 29-01-2004 23:31:48 |
trigger | acertij022 | Firebird e Interbase | 6 | 20-10-2003 19:20:31 |
![]() |
|