Ir para conteúdo

POWERED BY:

Arquivado

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

Dynho

Stored Procedure

Recommended Posts

Galera, tenho a seguinte instrução que chama uma Stored Procedure:Set objCmd = Server.Createobject("ADODB.Command")objCmd.CommandText = "spConteudoCarrega"objCmd.CommandType = AdCmdStoredProcSet objCmd.ActiveConnection = ConexaoSet objParam = objCmd.CreateParameter ("@conteudoID", adInteger, adParamInput, 4, 19) objCmd.Parameters.Append objParamSet objRS = objCmd.Execute()Até aí td bem, se eu passo um parâmetro existente, por exemplo, se tem o registro de ID 19 no banco, ele retorna normal. Porém, se não tem, eu não consigo validar isso com uma instrução do tipo:if not objRS.EOF thenO ASP me retorna o seguinte erro:ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed. /delphos/quemsomos.asp, line 114 Cuja linha, é a da instrução que verifico se for fim de arquivo ou não. O código da minha Stored Procedure é:CREATE PROCEDURE [dbo].[spConteudoCarrega] @conteudoID intASIF EXISTS (SELECT conteudoID FROM Conteudo WHERE conteudoID = @conteudoID)BEGIN SELECT * FROM Conteudo WHERE conteudoID = @conteudoIDENDELSE RETURN 1GOOu seja, elteoricamente retorna 1 em caso de registro inexistente. O problema, é que eu mesmo validando esse 1 não funciona. Se eu coloco por exemplo:if objRS = "1" thenO ASP tb retorna erro. Onde está o erro? Na minha SP ou no código? Como eu faço para verificar, se a Stored Procedure retornou algo válido?Agradeço desde já toda e qq ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara..

Utiliza o objeto COMAND é bem legal, mas as vezes da umas dores de cabeça como a sua.

 

Se você quiser continuar a usar o COMMAND, retire a verificação da Stored Procedure, e faça com o EOF.

CREATE PROCEDURE [dbo].[spConteudoCarrega] 
@conteudoID int
AS SELECT * FROM Conteudo WHERE conteudoID = @conteudoID
GO

 

Ou então, verifique se o Recordset está aberto.

If ORs.State = adopen thenResponse.Write "Aberto"  If ORs.EOF then   Response.Write "Vazio"    else   Response.Write "Cheio"  end if  else  Response.Write "Não foi aberto"End 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.