none
Stored Procedure + Retorno de parametro RRS feed

  • Pergunta

  • Ola Pessoal blz ?
    Tenho uma stored procedure q recebe um nro inteiro como parametro e me retorna outro inteiro como parametro, gostaria de saber como faço pra pegar esse parametro de saida. To fazendo da forma abaixo, mais ta exibindo um erro:

    Code Block

    Public Function Teste()
       Dim Cmd : Set Cmd = Server.CreateObject("ADODB.Command")

       With Cmd
             .ActiveConnection       = conexao        
             .CommandType = adCmdStoredProc
             .CommandText            = "MYPROCEDURE"
             .Parameters.Refresh()
             .Parameters("@ID")              = 30
             .Execute()
             pRet            = .Parameters("@Retorno")
       End With
      
       Response.Write pRet
       Set Cmd = Nothing
    End function

    call Teste()


    O erro ocorre nesta linha : .CommandType = adCmdStoredProc
    ADODB.Command (0x800A0BB9)
    Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

    Alguem tem alguma dica ?
    sábado, 3 de novembro de 2007 13:43

Todas as Respostas

  • Cara,

     

    Como quer que lhe se retorne algo, vc declarou as variáveis(não), passou os parametros corretos (não), criou um recodset(não),abriu o recorset(não) e o que vc que agora que é o último que vc tbm não fez.. Iniciou as variáveis de retorno(não).

     

    Dúvida posta ae..

     

    Abraços,

    quarta-feira, 19 de março de 2008 01:29
  • Caro Rodrigo,
    Tente usar de forma um pouco diferente.

    Tente + ou - isso aqui:

    Code Snippet

    Dim strSQL


    Set rst = Server.CreateObject("ADODB.Recordset")


    'Este exemplo eu fiz utilizando o SQL Server, você deverá mudar a string de conexão 'dependendo do banco que estiver utilizando

    strConexao = "provider=sqloledb;uid=sa;pwd=Password;server=Servidor;database=Database"

    objConnection.Open strConexao

    strSQL = "EXEC Procedure " & '" & Inteiro & "'

    Set rst = objConnection.Execute(strSQL)



    O que o recordset irá armazena é o seu retorno, aí você utiliza o recordset como está acostumado, rst("retorno") por exemplo.


    []s.

    quarta-feira, 19 de março de 2008 11:51
  • Olá Rodrigo,

     

    Esse erro acontece na maioria dos casos quando o RecordSet não está associado com a conexão com o Banco de Dados ou o Banco de Dados não está aberto, enfim verifique isso.

     

    Lembre-se também de criar um parâmetro do tipo OUTPUT na sua Procedure.

    []s

     

    sexta-feira, 11 de abril de 2008 13:09