Ir para conteúdo

POWERED BY:

Arquivado

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

peedrow!!

[Resolvido] Tabelas Temporárias e Recordset

Recommended Posts

Eae pessoal

Criei uma procedure que cria uma tabela temporaria insere dados de varias selects diferentes nelas, depois dou um select te tudo que foi gravado na tabela e dou um drop table.

 

Quando executo no query analizer funciona perfeitamente porem, quando executo no ASP ele retorna o seguinte erro

ADODB.Recordset error '800a0e78'

 

Operation is not allowed when the object is closed.

 

o Código SQL


ALTER PROCEDURE [gocce].[SP_Meus_Numeros]
@Usuario_id int = null,
@Empresa_Id int = null
AS
declare @nAmigos int
declare @nRecados int
declare @nFotos int
declare @nGrupos int
declare @nForuns int
declare @nEnquetes int
 
	create table #TEMP_SIGBE_MEUS_NUMEROS(
	nAmigos int not null,
	nRecados int not null,
	nFotos int not null,
	nGrupos int not null,
	nForuns int not null,
	nEnquetes int not null
	)


 	
--Numero de Amigos
SELECT @nAmigos = COUNT(id_sigbe_amigo) FROM SIGBE_AMIGO WHERE id_sigbe_amigo_usuario = @Usuario_id  and  sigbe_amigo_ativo = 1

--Numero de Recados
SELECT @nRecados = COUNT(id_sigbe_recado) FROM SIGBE_RECADO WHERE id_sigbe_perfil_destino = @Usuario_id AND sigbe_recado_ativo = 1

--Numero de Fotos
SELECT @nFotos = COUNT(SIGBE_PERFIL_FOTO.id_sigbe_perfil_foto) FROM SIGBE_PERFIL_FOTO,SIGBE_PERFIL WHERE SIGBE_PERFIL.id_sigbe_perfil = @Usuario_id and sigbe_perfil_foto_ativo = 1

--Numero de Grupos
SELECT @nGrupos = COUNT(SIGBE_COMUNIDADE.id_sigbe_comunidade) 
	FROM SIGBE_COMUNIDADE,SIGBE_COMUNIDADE_MEMBRO 
	WHERE SIGBE_COMUNIDADE_MEMBRO.sigbe_comunidade_membro = @Usuario_Id AND
		  SIGBE_COMUNIDADE_MEMBRO.id_sigbe_comunidade = SIGBE_COMUNIDADE.id_sigbe_comunidade AND
		  SIGBE_COMUNIDADE.sigbe_comunidade_ativo = 1
--Numero de Foruns		   	
SELECT @nForuns = COUNT(id_sigbe_comunidade_forum) FROM SIGBE_COMUNIDADE_FORUM WHERE sigbe_comunidade_forum_topico_autor = @Usuario_Id
AND sigbe_comunidade_forum_ativo = 1

--Numero de Enquetes
SELECT @nEnquetes = COUNT(id_sigbe_comunidade_enquete_resposta) FROM SIGBE_COMUNIDADE_ENQUETE_RESPOSTA WHERE  id_sigbe_perfil = @Usuario_id and
sigbe_comunidade_enquete_resposta_ativo = 1


 
INSERT INTO #TEMP_SIGBE_MEUS_NUMEROS
(
nAmigos ,
nRecados,
nFotos,
nGrupos,
nForuns,
nEnquetes
)
VALUES
(
@nAmigos,
@nRecados,
@nFotos,
@nGrupos, 
@nForuns,
@nEnquetes 
)


 
SELECT * FROM #TEMP_SIGBE_MEUS_NUMEROS



DROP TABLE #TEMP_SIGBE_MEUS_NUMEROS

o ASP

 

set sql_meus_numeros = Server.CreateObject("ADODB.Command")
set rs_meus_numeros = Server.CreateObject("ADODB.Recordset")
					
		sql_meus_numeros = "execute SP_Meus_Numeros @Usuario_id="&usuario_id
			set rs_meus_numeros = conexao.execute(sql_meus_numeros)
			Response.Write(rs_meus_numeros.RecordCount)

se alguem ja passo por isso ou souber o que é eu agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em versões mais antigas do MDAC, o erro pode ser ligeiramente diferente:

Esse erro pode ser causado quando você tenta acessar os valores de um conjunto de registros vazio ou um conjunto de registros que já tenha sido fechado. A causa mais comum, entretanto, parece resultar de chamar um procedimento armazenado que não usar SET NOCOUNT ON.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... funcionou perfeitamente, mais eu qual é a função do nocount??

chega a ser revoltante saber q toda essa dor de cabeça foi por causa de 2 palavras hehe

seja o que for muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, kker coisa posta ae..

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.