Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2011, 14:29
Avatar de yamiblancoc
yamiblancoc
 
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 13 años, 4 meses
Puntos: 4
Stored procedure

HOLA, COMO ESTAN, NECESITO UNA AYUDA TENGO ESTE STORED PROCEDURE
Código:
ALTER   PROCEDURE Precompromiso
@tipo bit,--- diferencia entre proyecto o accion centralizada
@ac_cod int, --- accion espedicica,
@ac_proy_cod varchar(20), ---proyecto o accion centralizada
@centro int,
@id_item varchar(40), ---partida
@pre_an_o int ---año

AS
declare
	
	@monto_prog_anual decimal(19, 4),
	@monto_ced decimal(19, 4)  ,
	@monto_rec decimal(19, 4)  ,
	@monto_ajust decimal(19, 4)  ,
	@neto_prec decimal(19, 4)  ,
	@ejec_prec decimal(19, 4)  ,
	
	@compromiso decimal(19, 4)  ,
	@disponible decimal(19, 4)
	
         

	SELECT @monto_prog_anual=
	CASE @tipo
		WHEN 0 THEN (SELECT ISNULL(SUM(pacc_monto),0) as monto_prog_anual 
                                   FROM SIPREFII_Proy_Acc_pres a,SIPREFII_PARTIDAS b 
                                  WHERE a.ID_ITEM = @id_item
				    AND a.acc_cod= @ac_cod
 				    AND a.proy_cod=@ac_proy_cod
                                    AND a.pre_an_o=@pre_an_o
                                    AND a.ID_ITEM=b.ID_ITEM 
                                    AND b.CONSOLIDADA<>'1' 
                                    AND a.pacc_mes BETWEEN 1 and 12)

		WHEN 1 THEN (SELECT ISNULL(SUM(pac_monto),0) as monto_prg_anual 
                                   FROM SIPREFII_AC_pres a,SIPREFII_PARTIDAS b 
                                  WHERE a.ID_ITEM = @id_item
				    AND a.ace_cod= @ac_cod
 				    AND a.ac_cod=@ac_proy_cod
                                    AND a.POA=@pre_an_o
				    AND a.ID_ITEM=b.ID_ITEM 
                                    AND b.CONSOLIDADA<>'1' 
                                    AND a.pac_mes BETWEEN 1 and 12)
                                
	END
	
	SET @monto_ced=(SELECT ISNULL(sum(b.monto),0) as suma
  				   FROM SIPREFII_traspaso a,SIPREFII_traspaso_dt b
                                  WHERE b.id_item =@id_item
				    AND b.acesp_cod= @ac_cod
 				    AND b.ac_proy_cod=@ac_proy_cod
				    AND a.pres_ano=@pre_an_o 
	                            AND b.id=@centro
				    AND modi_activo=1             
			            AND b.ced_rec_tipo='1' 
                                    AND a.modi_cod=b.modi_cod)

	SET @monto_rec=(SELECT ISNULL(sum(b.monto),0) as suma 
  				   FROM SIPREFII_traspaso a,SIPREFII_traspaso_dt b 
                                  WHERE b.id_item =@id_item
				    AND b.acesp_cod= @ac_cod
 				    AND b.ac_proy_cod=@ac_proy_cod
				    AND a.pres_ano=@pre_an_o 
				    AND b.id=@centro
				    AND modi_activo=1             
			            AND b.ced_rec_tipo='0' 
                                    AND a.modi_cod=b.modi_cod)

	SET @monto_ajust= @monto_prog_anual + (@monto_rec - @monto_ced)
		
	SET @neto_prec= (SELECT ISNULL(SUM(b.monto),0) as suma 
				    FROM SIPREFII_Precompromiso a,SIPREFII_Precompromiso_dt b 
           			   WHERE b.id_item = @id_item
                 		     AND a.pres_ano=@pre_an_o
                                     AND b.acesp_cod= @ac_cod
 		                     AND b.ac_proy_cod=@ac_proy_cod
		                     AND b.id=@centro
                                     AND prec_activo=1 
		                     AND a.pres_ano=b.pres_ano 
                                     AND a.prec_cod=b.prec_cod)

	SET @ejec_prec= (select isnull(sum(monto),0)as suma 
			FROM SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b
              		WHERE a.pres_ano=b.pres_ano 
			AND a.pres_ano=@pre_an_o
			 AND a.comp_cod=b.comp_cod	
		         and b.comp_cod in (select DISTINCT(a.comp_cod)
                                                        from SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b
                                                       where a.comp_cod=b.comp_cod
                                                        and a.pres_ano=b.pres_ano
                                                        and a.pres_ano = @pre_an_o
							and a.comp_activo = 1 
							and a.comp_cod in (select a.prec_cod 
                                                                             from SIPREFII_Precompromiso a,SIPREFII_PreCompromiso_dt b
                                                                            where a.pres_ano = b.pres_ano
										and a.prec_cod = b.prec_cod
									        and a.pres_ano = @pre_an_o
										and a.prec_activo = 1 ))
			and b.id_item = @id_item			
			AND b.acesp_cod= @ac_cod
			AND b.ac_proy_cod=@ac_proy_cod
			and b.id=@centro
			and a.pres_ano =@pre_an_o
			and b.ac_proy_tipo=1)
	
	
	SET @compromiso= (SELECT ISNULL(SUM(b.monto),0) as suma 
                                    FROM SIPREFII_Compromiso a,SIPREFII_Compromiso_dt b 
                                   WHERE a.pres_ano=@pre_an_o
                                     AND b.id_item =@id_item
				     AND b.acesp_cod= @ac_cod
 		                     AND b.ac_proy_cod=@ac_proy_cod
		                     AND b.id=@centro
                                     AND a.pres_ano=b.pres_ano 
                                     AND comp_activo=1 
                                     AND a.comp_cod=b.comp_cod )


	SET @disponible= @monto_ajust - (@neto_prec - @ejec_prec) - @compromiso

 

SELECT @disponible



GO

Y NECESITO MOSTRAR LOS DATOS QUE ME DA DISPONIBILIDAD EN VB 6.0, PARA EL CUAL UTILIZO

Código:
 Dim cmd As New Command
    Dim consulta As New Recordset
    
    cmd.CommandText = "{? = call precompromiso (?,?,?,?,?,?)}"
    Set cmd.ActiveConnection = cn
    cmd.Parameters.Refresh
    cmd(1) = 0
    cmd(2) = 3 'cmb_unidad_eje.ListIndex
    cmd(3) = "112259" 'lbl_proy_cod
    cmd(4) = 40  'arr_centro_proy_id(cmb_unidad_eje.ListIndex)
    cmd(5) = "4.03.18.01.00" 'txt_partida
    cmd(6) = 2011 'an_o_actual
    Set consulta = cmd.Execute
MsgBox (consulta(0))

help!!!
PERO NO ME ARROJA NINGUN VALOR... ALGUIEN PODRA AYUDARME