Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Stored procedure

Estas en el tema de Stored procedure en el foro de SQL Server en Foros del Web. 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, --- ...
  #1 (permalink)  
Antiguo 29/09/2011, 14:29
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 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
  #2 (permalink)  
Antiguo 29/09/2011, 14:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Stored procedure

Me encantan los post de este tipo, te ponen un buen de codigo que no te dicen que hace, te piden que resuelvas un problema que no sabes ni que es solo que no regresa los valores.......uff....y ahi esta uno tratando de adivinar que es lo que pasa........Amig@ yamiblancoc que error te regresa tu procedure, o solo no pinta nada? ya probaste a jecutarlo en el manejador de base de datos? si es asi ahi te regresa valores?

Saludos1!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/09/2011, 14:43
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Stored procedure

ehhhh soy una chica.... por sql me da el valor cuando lo lo coloco por visual basic que corro el sp simplente no me dice nada el msgbox.... eso es para dar un monto de presupuesto mas nada
  #4 (permalink)  
Antiguo 29/09/2011, 15:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Stored procedure

Amig@ significa amigo o amiga cualquiera de los 2 casos, tu nick no dice si seas chica o no :), si el procedure te funciona en sql server, entonces lo que esta mal es tu codigo de VB, de lo cual no te puedo ayudar demasiado ya que tiene algo de tiempo que no manejo VB, revisa estos links a ver si te dan alguna idea:

http://www.experts-exchange.com/Prog..._21899728.html

http://www.codeproject.com/KB/vbscri...le_sp_vb6.aspx

http://www.nigelrivett.net/VB/VBExecSPSimple.html

http://www.vb6.us/tutorials/using-ad...procedures-vb6

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 29/09/2011, 16:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Stored procedure

¿Libras?, Si usted es el REY DE LA ADIVINANZAS !!!, ¿se levanto usted con el pie izqquierdo? (Saludos)
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 29/09/2011, 16:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Stored procedure

Cita:
Iniciado por iislas Ver Mensaje
¿Libras?, Si usted es el REY DE LA ADIVINANZAS !!!, ¿se levanto usted con el pie izqquierdo? (Saludos)
Rey de las adivinanzas jejeje nada que ver mi estimado iislas y del pie izquierdo ps tiene su que ver ;), saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: procedure, select, stored
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:57.