Ver Mensaje Individual
  #1  
Antiguo 30-09-2008
Gabichu Gabichu is offline
Miembro
 
Registrado: jul 2008
Posts: 10
Reputación: 0
Gabichu Va por buen camino
Question Procedimiento almacenado ejecutado desde un trigger.

hola a todos...
tengo el siguiente procedimiento AGREGAR_PENDIENTE , realmente no estoy segura de que tenga la estructura correcta, se ejecuta sin problemas desde un trigger, la cuestion es que se ejecuta la linea del insert sin importar si se cumple o no la condicion del if
Código SQL [-]
CREATE PROCEDURE AGREGAR_PENDIENTE (
    COD_PRESUP INTEGER)
AS
DECLARE VARIABLE CODCLIENTE INTEGER;
DECLARE VARIABLE FECHA DATE;
DECLARE VARIABLE CLIENTE VARCHAR(150);
DECLARE VARIABLE CODPRESUP INTEGER;
DECLARE VARIABLE CANTIDAD INTEGER;
begin
  /*Insertar fecha, cod_cliente, cliente, cod_presupuesto */
  select count(pendientes.cod_presup) from pendientes where pendientes.cod_presup=:codpresup into :cantidad;
  if (:cantidad=0) then
  begin
       for
         select presupuestos.cod_presup, presupuestos.cod_cliente,clientes.nombre||' '||clientes.apellido AS CLIENTE,fecha
             from presupuestos, CLIENTES
                where presupuestos.cod_presup=:cod_presup AND PRESUPUESTOS.cod_cliente=CLIENTES.cod_cliente into :CODpresup, :codcliente, :cliente,:fecha
       do
       begin
            insert into pendientes(cod_cliente,FECHA_AT,cliente,cod_presup) values(:codcliente,:fecha, :cliente,:codpresup);
        end
    end

end

cualquier sugerencia es bienvenida...
este es el trigger
Código SQL [-]
CREATE TRIGGER AU_PRESUPUESTO FOR PRESUPUESTOS
ACTIVE AFTER UPDATE POSITION 0
AS
begin
  if (old.deposito='SI') then
  execute procedure AGREGAR_PENDIENTE(old.cod_presup);
end

La idea es que si en la tabla PRESUPUESTOS el campo deposito (que puede tener dos valores, 'SI' y 'NO') cambia de NO a SI entonces se debe insertar un nuevo campo en la tabla PENDIENTES, el problema es que por cada vez que modifico la tabla de PRESUPUESTOS se inserta un nuevo registro en la tabla PENDIENTES, por lo tanto si modifico cualquier campo de la tabla presupuestos 10 veces, voy a tener 10 nuevos registros en PENDIENTES..

Espero no haberlos mareado, por favor ayudenme a resolver esto!!!
gracias...

Última edición por Gabichu fecha: 30-09-2008 a las 17:42:31. Razón: para que sea mas comprensible
Responder Con Cita