Коллекция Parameters (ADO)

Содержит все объекты Parameter объекта Command .

Remarks

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

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

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

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

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

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

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

  2. При вызове хранимой процедуры с параметрами и явном добавлении параметра в коллекцию Parameters с помощью Append необходимо добавить возвращаемое значение или выходной параметр в коллекцию Parameters . Возвращаемое значение необходимо сначала добавить в коллекцию Parameters . Используйте Append , чтобы добавить другие параметры в коллекцию Parameters в порядке определения. Например, хранимая процедура SPWithParam имеет два параметра. Первый параметр InParam — входной параметр, определенный как adVarChar (20), а второй — выходной параметр, определенный как 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 в коллекции Parameters возвращаемое значение или выходной параметр хранимой процедуры можно получить из коллекции Parameters . Например, хранимая процедура SPWithParam имеет два параметра. Первый параметр InParam — входной параметр, определенный как adVarChar (20), а второй — выходной параметр, определенный как 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)
Объект Parameter