Partilhar via


Coleção Parameters (ADO)

Contém todos os objetos Parameter de um objeto Command.

Comentários

Um objeto Command tem uma coleção Parameters composta por objetos Parameter.

O uso do método Refresh na coleção Parameters de um objeto Command recupera informações de parâmetro do provedor para o procedimento armazenado ou a consulta parametrizada especificada no objeto Command. Alguns provedores não dão suporte a chamadas de procedimento armazenado ou consultas parametrizadas; chamar o método Refresh na coleção Parameters ao usar esse provedor retornará um erro.

Se você não tiver definido seus próprios objetos Parameter e acessar a coleção Parameters antes de chamar o método Refresh, o ADO chamará automaticamente o método e preencherá a coleção para você.

Você poderá minimizar as chamadas ao provedor para melhorar o desempenho se souber as propriedades dos parâmetros associados ao procedimento armazenado ou à consulta parametrizada que deseja chamar. Use o método CreateParameter para criar objetos Parameter com as configurações de propriedade apropriadas e use o método Append para adicioná-los à coleção Parameters. Isso permite que você defina e retorne valores de parâmetro sem precisar chamar o provedor para obter as informações do parâmetro. Se você estiver gravando em um provedor que não fornece informações de parâmetro, deverá preencher manualmente a coleção Parameters usando esse método para usar parâmetros. Use o método Delete para remover objetos Parameter da coleção Parameters, se necessário.

Os objetos na coleção Parameters de um Recordset saem do escopo (portanto, ficam indisponíveis) quando o Recordset é fechado.

Ao chamar um procedimento armazenado com Command, o valor retornado/parâmetro de saída de um procedimento armazenado é recuperado da seguinte maneira:

  1. Ao chamar um procedimento armazenado que não tem parâmetros, o método Refresh na coleção Parameters deve ser chamado antes de chamar o método Execute no objeto Command.

  2. Ao chamar um procedimento armazenado com parâmetros e acrescentar explicitamente um parâmetro à coleção Parameters com Append, o valor retornado/parâmetro de saída deve ser acrescentado à coleção Parameters. Incialmente, o valor retornado deve ser acrescentado à coleção Parameters. Use Append para adicionar os outros parâmetros à coleção Parameters na ordem de definição. Por exemplo, o procedimento armazenado SPWithParam tem dois parâmetros. O primeiro parâmetro, InParam, é um parâmetro de entrada definido como adVarChar (20). O segundo parâmetro, OutParam, é um parâmetro de saída definido como adVarChar (20). É possível recuperar o valor retornado/parâmetro de saída com o código a seguir.

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Append ccmd.CreateParameter(, adInteger, adParamReturnValue, , NULL)   ' return value  
    ccmd.parameters.Append ccmd.CreateParameter("InParam", adVarChar, adParamInput, 20, "hello world")   ' input parameter  
    ccmd.parameters.Append ccmd.CreateParameter("OutParam", adVarChar, adParamOutput, 20, NULL)   ' output parameter  
    
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of this stored procedure  
    ' Access ccmd.parameters("OutParam") as the output parameter of this stored procedure.  
    
    
  3. Ao chamar um procedimento armazenado com parâmetros e configurá-los chamando o método Item na coleção Parameters, o valor retornado/parâmetro de saída do procedimento armazenado pode ser recuperado da coleção Parameters. Por exemplo, o procedimento armazenado SPWithParam tem dois parâmetros. O primeiro parâmetro, InParam, é um parâmetro de entrada definido como adVarChar (20). O segundo parâmetro, OutParam, é um parâmetro de saída definido como adVarChar (20). É possível recuperar o valor retornado/parâmetro de saída com o código a seguir.

    ' Open Connection Conn  
    set ccmd = CreateObject("ADODB.Command")  
    ccmd.Activeconnection= Conn  
    
    ccmd.CommandText="SPWithParam"  
    ccmd.commandType = 4 'adCmdStoredProc  
    
    ccmd.parameters.Item("InParam").value = "hello world" ' input parameter  
    ccmd.execute()  
    
    ' Access ccmd.parameters(0) as return value of stored procedure  
    ' Access ccmd.parameters(2) or ccmd.parameters("OutParam") as the output parameter.  
    

Esta seção contém o tópico a seguir.

Consulte Também

Método Append (ADO)
Método CreateParameter (ADO)
Objeto Parameter