Поделиться через


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

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

Комментарии

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

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

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

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

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

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

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

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

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

    ' 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