Ir para conteúdo

POWERED BY:

Arquivado

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

GiseleCN

[Resolvido] Retorno da Procedure não é reconhecido na DAL

Recommended Posts

Pessoal, bom dia!!

 

Estou com um problema e queria ver se podem me ajudar!!

 

Criei um PROC que recebe um parametro text, joga em uma table pra que eu use esse valor dentro do IN, pois o mesmo não aceita o tipo text.

 

Até ai, tudo bem!! Se eu executo a proc no SQL Server ele retorna a tabela com o resultado!!

 

Minha PROC

 

 


CREATE PROCEDURE [dbo].[AvaliacaoDesempenhoProcuraAvaliacao]
(
	@PalavraChave varchar(100),
	@IDAreas text
)
AS
BEGIN
 DECLARE @INNER_Area varchar(100)
 DECLARE @Nome_Area varchar(100)

 IF datalength(@IDAreas) > 0
  CREATE TABLE #Table (id varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS) 
  BEGIN
   WHILE charindex(',',@IDAreas) > 0
    BEGIN 
     INSERT INTO #Table VALUES (substring(@IDAreas,0,charindex(',',@IDAreas)))
     SET @IDAreas = substring(@IDAreas,charindex(',',@IDAreas)+1,datalength(@IDAreas))
    END
   
   INSERT INTO #Table VALUES (@IDAreas)
   
	set @INNER_Area =  'INNER JOIN PESSOAL AS PE2 ON(PE2.ID = U.IDUsuario)'
set @Nome_Area = 'WHERE PE2.AREA IN(SELECT id FROM #Table)'
  END

	exec ('SELECT 
		DISTINCT AD.IDAvaliacao, 
		U.NOUsuario,
		convert(char,DTInicio,105) AS DTInicio,
		AD.IDAvaliado,
		AD.IDAvaliador,
		CASE WHEN NOT EXISTS(SELECT TOP 1 convert(varchar,IDFase+1) AS IDFase FROM TBAvaliacaoCompetenciaIndicadorUsuario WHERE IDAvaliacaoIndicador IN(
					SELECT IDAvaliacaoIndicador FROM TBAvaliacaoCompetenciaIndicador WHERE IDAvaliacao = AD.IDAvaliacao) 
					ORDER BY IDFase DESC) 
		THEN ''0'' ELSE 
			CASE WHEN 
				(SELECT TOP 1 convert(varchar,IDFase+1) FROM TBAvaliacaoCompetenciaIndicadorUsuario WHERE IDAvaliacaoIndicador IN(
				SELECT IDAvaliacaoIndicador FROM TBAvaliacaoCompetenciaIndicador WHERE IDAvaliacao = AD.IDAvaliacao) 
				ORDER BY IDFase DESC) = 4 
			THEN ''1'' ELSE ''0'' END
		END	AS STAvaliacao
		FROM TBAvaliacaoDesenvolvimento AS AD
		INNER JOIN TBUsuarioAvaliacao AS UA ON(UA.ID = AD.IDAvaliado)
		INNER JOIN TBUsuario AS U ON(UA.CPF = U.CPF AND UA.DSLogin = U.DSLogin) 
		'+  @INNER_Area +' '+@Nome_Area)

O problema está quando na DAL eu chamo a proc. Ele fala :"Invalid object name '#Table'.", ou seja... ta retornando a table que estou criando, e não o meu select.

 

Gente, postei nessa área devido o problema estar sendo no meu projeto que é em C#, espero não ter postado na área errada.rs

 

Alguém tem uma idéia pra resolver isso?

 

Desde já eu agradeço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui!

 

Na vdd, eu precisava dropar a tabela depois de executar meu select e colocar a declaração da tabela pra fora da condição IF.

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.