Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 17-11-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 18-11-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:40:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi