![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
#1
|
|||
|
|||
![]() Hola compañeros!
Tengo una inquietud con respecto a los trigger y los momentos de su activación. Está claro que las tareas internas se ejecutan Antes y Despues,segun la acción, pero trabajando en una aplicación Delphi 6, componentes DBExpress Fireibird 1.5 CR4; Estoy intentando hacer en la misma BD un trigger, de hecho lo he acabado y funciona con el motor, pero la duda que me resalta es que como el trigger esta hecho para que me calcule unos valores del mismo registro que se esta insertando y los inserte en otros campos del mismo, que tanto tiempo de respuesta se tenga para que los resultados se reflejen en los componentes delphi. El trigger se ejecuta despues de insertar, no he probado si funciona antes de insertar, esta es la duda que tengo si lo hago antes o despues. Colocaré el trigger para que sea más claro y me den una evaluación del mismo: Cita:
Ahora si: El trigger se ejecuta despues de insertar y claro esta que los valores calculados de los otros campos no se ingresaran, pero no quiero colocar los controles y dejarlos inactivos ya que la idea es que el usuario puede colocar valores en esos campos EJ PVENTA sin necesidad de GANANCIA o PCOSTO. Espero que me haya dado a entender, es un poco liado el teledramon. Gracias de antemano. |
#2
|
||||
|
||||
Hola:
Yo lo haria en el befor insert CREATE TRIGGER "NUEVO_ARTICULO" FOR "ARTICULOSPROVEEDOR" ACTIVE before INSERT POSITION 0 AS DECLARE IVA DECIMAL(5,2); BEGIN SELECT 1 + (SUM(I.PJEIVA + I.PJERECEQ) /100) FROM TIPOIVA I WHERE I.IDTIPOIVA = NEW.IDTIPOIVA INTO :IVA; new.PVENTA = (NEW.PCOSTO * (1 + (NEW.GANANCIA / 100))); new.PVENTAIVA = NEW.PCOSTO * (1 + (NEW.GANANCIA / 100)) * :IVA; si necesitas estos valores en el cliente. Tendras que refrescar la fila. END
__________________
Ven a Murcia y no solo pasaras calor. |
#3
|
|||
|
|||
Hola SCORDOBA!
Gracias por las respuestas. |
![]() |
|
|
![]() |
|