Коллекция параметров (ADO)

Содержит все объекты параметра объекта команды .

Замечания

Объект Command содержит коллекцию параметров , состоящую из объектов Parameter .

Использование метода Refresh в коллекции параметров объекта Command извлекает сведения о параметрах поставщика для хранимой процедуры или параметризованного запроса, указанного в объекте Command. Некоторые поставщики не поддерживают вызовы хранимых процедур или параметризованные запросы; Вызов метода Refresh в коллекции параметров при использовании такого поставщика вернет ошибку.

Если вы не определили собственные объекты параметров и обращаетесь к коллекции параметров перед вызовом метода Refresh , ADO автоматически вызовет метод и заполняет коллекцию.

Вы можете свести к минимуму вызовы поставщика, чтобы повысить производительность, если вы знаете свойства параметров, связанных с хранимой процедурой или параметризованным запросом, который вы хотите вызвать. Используйте метод CreateParameter , чтобы создать объекты параметров с соответствующими параметрами свойств и использовать метод Add , чтобы добавить их в коллекцию параметров . Это позволяет задавать и возвращать значения параметров без вызова поставщика сведений о параметрах. Если вы пишете поставщику, который не предоставляет сведения о параметрах, необходимо вручную заполнить коллекцию параметров с помощью этого метода, чтобы использовать параметры вообще. При необходимости используйте метод Delete , чтобы удалить объекты параметров из коллекции параметров .

Объекты в коллекции параметровнабора записей выходят из области (поэтому становятся недоступными) при закрытии набора записей .

При вызове хранимой процедуры с помощью команды возвращается возвращаемый параметр значения и выходных данных хранимой процедуры следующим образом:

  1. При вызове хранимой процедуры, которая не имеет параметров, перед вызовом метода Execute в объекте Command необходимо вызвать метод Refresh в коллекции параметров.

  2. При вызове хранимой процедуры с параметрами и явном добавлении параметра в коллекцию параметров с помощью Добавления возвращаемое значение/выходной параметр следует добавить в коллекцию параметров . Возвращаемое значение сначала должно быть добавлено в коллекцию параметров . Используйте Add , чтобы добавить другие параметры в коллекцию параметров в порядке определения. Например, хранимая процедура SPWithParam имеет два параметра. Первый параметр InParam — это входной параметр, определенный как adVarChar (20), а второй параметр OutParam — выходной параметр, определенный как adVarChar (20). Вы можете получить возвращаемый параметр значения и выходных данных с помощью следующего кода.

    ' 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. При вызове хранимой процедуры с параметрами и настройке параметров путем вызова метода Itemв коллекции параметров возвращаемый параметр возвращаемого значения и выходных данных хранимой процедуры можно получить из коллекции параметров . Например, хранимая процедура SPWithParam имеет два параметра. Первый параметр InParam — это входной параметр, определенный как adVarChar (20), а второй параметр OutParam — выходной параметр, определенный как adVarChar (20). Вы можете получить возвращаемый параметр значения и выходных данных с помощью следующего кода.

    ' 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.  
    

Этот раздел содержит следующую тему.

См. также

Метод append (ADO)
Метод CreateParameter (ADO)
объект параметра