Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acfelipesilva

[Resolvido] SP com problemas para executar consulta

Recommended Posts

Olá Gente,Atualmente estou trabalhando com ASP 3.0 + SQL Server 2000, e montei um form, onde disponibilizo para o usuário 05 comboboxs, os campos servirão de parâmetros a serem enviados para a stored procedure seja rodada adequadamente. Bom, para 04 parâmetros e suas combinações a coisa funciona "lindamente", mas quando entra o parâmetro de origem do contrato (VCHADV_ORICON ) começam os erros... Pq ocorre esse erro, olhei a SP está tudo em ordem, aidna não consegui "enxergar" aonde está a falha, daí preciso da ajuda de vcs...Vou postar o código da stored procedure, o sql do script que é passado e o erro.Obs.: A origem do contrato é um campo varchar, os outros campos são todos números.Quem poder ajudar eu agradeço muito...Sql do ASP

Code Blocksql = " exec sp_RelatorioContratos_SIMPLIFICADO " & varAdvogado & "," & varDireg & "," & varGereg & ",'" & varOrigem & "'," & varAgencia

chamada da SP

Code Blockexec sp_RelatorioContratos_SIMPLIFICADO 0,0,0,'CREDENCIADOS',0

Erro

Code BlockServer: Msg 207, Level 16, State 3, Line 1Invalid column name 'CREDENCIADOS'.

Stored Procedure
Code BlockSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO--sp_RelatorioContratos_SIMPLIFICADO 294ALTER  PROCEDURE sp_RelatorioContratos_SIMPLIFICADO    @NUMADV_CODIGO INT = 0  ,@VCHADV_GESDIR INT = 0  ,@VCHADV_GESGER INT = 0  ,@VCHADV_ORICON VARCHAR(50) = ''  ,@VCHADV_GESAG INT = 0    AS       SET nocount ON  DECLARE @PARAMETRO NVARCHAR(2000), @SQL nvarchaR(4000)--,@SQL2 VARCHAR(8000)IF @NUMADV_CODIGO<>0  SET @PARAMETRO= 'NUMADV_CODIGO =' + CAST(@NUMADV_CODIGO AS VARCHAR(10))ELSEBEGIN SET @PARAMETRO= ''ENDIF @VCHADV_GESDIR<>0 BEGIN IF @PARAMETRO<>''  BEGIN  SET @PARAMETRO= @PARAMETRO + ' AND VCHADV_GESDIR =' + CAST(@VCHADV_GESDIR AS VARCHAR(10)) END ELSE BEGIN  SET @PARAMETRO= 'VCHADV_GESDIR =' +  CAST(@VCHADV_GESDIR AS VARCHAR(10)) ENDENDIF @VCHADV_GESGER<>0 BEGIN IF @PARAMETRO<>''   SET @PARAMETRO=  @PARAMETRO + ' AND VCHADV_GESGER ='+   CAST(@VCHADV_GESGER AS VARCHAR(10))  ELSE  SET @PARAMETRO= 'VCHADV_GESGER =' +   CAST(@VCHADV_GESGER AS VARCHAR(10)) ENDIF @VCHADV_GESAG<>0 BEGIN IF @PARAMETRO<>''  BEGIN  SET @PARAMETRO=  @PARAMETRO + ' AND VCHADV_GESAG =' +  CAST(@VCHADV_GESAG AS VARCHAR(10))   END ELSE BEGIN  SET @PARAMETRO= ' VCHADV_GESAG = ' +  CAST(@VCHADV_GESAG AS VARCHAR(10)) ENDEND--PRINT @VCHADV_ORICONIF @VCHADV_ORICON<>'' BEGIN IF @PARAMETRO<>''  BEGIN  SET @PARAMETRO=  @PARAMETRO + ' AND VCHADV_ORICON =''' +  @VCHADV_ORICON + '''' END ELSE BEGIN  SET @PARAMETRO= 'VCHADV_ORICON = ' +  @VCHADV_ORICON ENDEND--PRINT @PARAMETROSET @SQL= 'SELECT ADV.numAdv_codigo, ADV.numAdv_contrato, ADV.vchAdv_OriCon,ADV.vchAdv_GesDir,ADV.vchAdv_GesGer, ADV.vchAdv_GesAg,ADV.vchAdv_Jurisdicao, ADV.vchAdv_DatIni, ADV.vchAdv_DatFim,ADV.vchAdv_Obj,ADV.statusctr,ADVS.At_NOME, ADVS.At_END,ADVS.At_CID, ADVS.At_UF, ADVS.At_TEL_FAX, DIREG.vchDg_Des,GERE.ger_den,AGEN.UNI_DEN FROM tbAdvogado ADV INNER JOIN tbAdvogados ADVS ON (ADVS.Ai_CODIGO = ADV.numAdv_codigo) INNER JOIN tbAuxDiGer DIREG ON (DIREG.numDg_Cod = ADV.vchAdv_GesDir)INNER JOIN tbAuxGereg GERE ON (GERE.RUN_COD = ADV.vchAdv_GesGer)INNER JOIN AGENCIASNOVA AGEN ON (AGEN.AGE = ADV.vchAdv_GesAg) WHERE ' +@PARAMETRO+ ' ORDER BY VCHADV_GESGER ASC '--SELECT @SQL + @SQL2  + @PARAMETRO                                     --PRINT @SQL exec sp_executesql  @SQL --NUMADV_CODIGO = @NUMADV_CODIGO AND VCHADV_ORICON = @VCHADV_ORICON     GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão,

 

creio que seu problema esteja nessa linha:

SET @PARAMETRO= 'VCHADV_ORICON = ' +  @VCHADV_ORICON

Você esqueceu de tratá-lo como um varchar, esqueceu das 'plicas'.

 

Deixe esta linha dessa forma:

SET @PARAMETRO= 'VCHADV_ORICON = ''' +  @VCHADV_ORICON + ''''

 

Espero que funcione...

[]tz ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão,creio que seu problema esteja nessa linha:

SET @PARAMETRO= 'VCHADV_ORICON = ' +  @VCHADV_ORICON

Você esqueceu de tratá-lo como um varchar, esqueceu das 'plicas'.Deixe esta linha dessa forma:

SET @PARAMETRO= 'VCHADV_ORICON = ''' +  @VCHADV_ORICON + ''''

Espero que funcione...[]tz ;)

Chefe,É isso mesmo, muito obrigado por sua ajuda!!!Égua, não sei como fiquei passando batido neste ponto, eu olhei várias vezes esses código e não "enxerguei" isso, hehehehe...Grato mais uma vez,Um abraço,Augusto Silva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah ... relaxa, acontece muito!

Sabemos disso, né?

 

As vezes estamos tão saturados daquele código que acertamos o mais difícil e não enxergamos o óbvio.

 

Então, beleza.

Boa sorte! []tz ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.