Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Calculo por medio de un trigger.... ? (https://www.clubdelphi.com/foros/showthread.php?t=27347)

uper 17-11-2005 22:34:44

Calculo por medio de un trigger.... ?
 
HOLA.

Estoy haciendo un trigger en interbase el cual me sume dos campos y me de un resultado en otro campo se puede lograr o de que otra forma:
Código:

estos son los campos:
SUB_ORDEN, SUB_OTRO, SUB_IVA, SUbTOTAL, TOTAL
R=SUB_ORDEN+SUB_OTRO;
SUbTOTAL=R
Iva=R*0.15;
SUB_IVA=iva;
TOTAL=R+iva;

este es el triger que hice pero me dice que no hay columna

Código PHP:

 BeforeUpdate:  
if (
OLD.PED_SUB_ORDENES<>OR OLD.PED_SUB_ANX<>0then
  R
=PED_SUB_ORDENES+PED_SUB_ANX;
  
PED_SUBTOTAL=R;     /* campo SUBTOTAL */
 
  
iVA_PED=*0.15;
  
PED_IVAIVA_PED;  /* campo IVA*/
  
TOTAL_PEDRiVA_PED;   /* campo TOTAL DE TOTALES.*/ 

esto es, que cada vez que se actualize los campos SUB_ORDEN ó SUB_OTRO me haga el calculo por medio del trigger, esto fue lo que se me ocurrio para aprovechar una actualizacion por medio del trigger

gracias.

Héctor Randolph 17-11-2005 22:56:07

Hola uper.

Me parece que lo que te hace falta es colocar el calificador NEW en los campos que quieres actualizar, por ejemplo:

NEW.PED_SUB_TOTAL=R;

Los que no se van a modificar colocales un OLD antes del nombre del campo.

Un saludo

uper 18-11-2005 00:08:39

ok, les presento completo el trigger pero solo me queda una espinita del calificador:

Código PHP:

 
if (OLD.PED_SUB_ORDENES<>OR OLD.PED_SUB_ANX<>0then
  R
=Old.PED_SUB_ORDENES old.PED_SUB_ANX;
  new.
PED_SUBTOTAL=R;     /* SUBTOTAL DE LOS SUB...*/
  
iVA_PED=*0.15;
  new.
PED_IVAIVA_PED;  /* IVA*/
  
new.PED_TOTALRiVA_PED;   /* TOTAL DE TOTALES.*/ 

Listo ya me actualiza los campos pero en la suma de Old.PED_SUB_ORDENES + old.PED_SUB_ANX no importa si le dejo el OLD.

Y en NEW.PED_SUB_TOTAL como New.PED_TOTAL siempre se va actualizar por eso sera new, es decir que siempre se cambiara el valor y sera un nuevo valor cada vez.

muchas gracias, se que me equivoque en escribir en este hilo de tablas planas.
gracias.


La franja horaria es GMT +2. Ahora son las 21:38:40.

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