Ver Mensaje Individual
  #3  
Antiguo 30-09-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Reputación: 30
jhonny Va camino a la famajhonny Va camino a la fama
Esque la variable :codpresup siempre tiene valor NULL cuando haces el primer "select", debido a que no le estas pasando ningun valor, para mi que estas un poco "confundida" por el parecido del nombre de la variable :codpresup con el parametro de entrada :cod_presup, por lo que la cosa en teoria debería quedar de la siguiente manera:

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=:COD_PRESUP 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
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita