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


Командный объект (ADO)

Определяет определенную команду, которую планируется выполнить в источнике данных.

Замечания

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

С помощью коллекций, методов и свойств объекта Command можно выполнить следующие действия:

  • Определите исполняемый текст команды (например, инструкцию SQL) с помощью свойства CommandText . Кроме того, для структур команд или запросов, отличных от простых строк (например, запросов xml-шаблонов), определите команду со свойством CommandStream .

  • При необходимости укажите диалект команды, используемый в CommandText или CommandStream со свойством "Диалект ".

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

  • Укажите, следует ли передавать имена параметров поставщику со свойством NamedParameters .

  • Выполните команду и верните объект Recordset при необходимости с помощью метода Execute .

  • Укажите тип команды со свойством CommandType перед выполнением для оптимизации производительности.

  • Определяет, сохраняет ли поставщик подготовленную (или скомпилированную) версию команды перед выполнением с помощью свойства Prepared .

  • Задайте количество секунд, которое поставщик ожидает выполнения команды с помощью свойства CommandTimeout .

  • Свяжите открытое соединение с объектом Command, установив его свойство ActiveConnection.

  • Задайте свойство Name, чтобы определить объект Command в качестве метода для связанного объекта Connection.

  • Передайте объект Command свойству Sourceнабора записей для получения данных.

  • Доступ к атрибутам для конкретного поставщика с помощью коллекции Свойств .

Замечание

Чтобы выполнить запрос без использования объекта Command , передайте строку запроса методу Execute объекта Connection или методу Open объекта Recordset . Однако объект Command требуется, если требуется сохранить текст команды и повторно выполнить его или использовать параметры запроса.

Чтобы создать объект Command независимо от ранее определенного объекта Connection , задайте для свойства ActiveConnection допустимую строку подключения. ADO по-прежнему создает объект Connection , но не назначает этот объект переменной объекта. Однако если вы связываете несколько объектов Command с одинаковым подключением, необходимо явно создать и открыть объект Connection ; При этом объект Connection назначается переменной объекта. Убедитесь, что объект Connection был открыт успешно, прежде чем назначить его свойству ActiveConnection объекта Command , так как назначение закрытого объекта Connection приводит к ошибке. Если свойство ActiveConnection объекта Command не задано для этой переменной объекта, ADO создает новый объект Connection для каждого объекта Command , даже если используется та же строка подключения.

Чтобы выполнить команду, вызовите его по свойству Name в связанном объекте Connection . Команда должна иметь свойство ActiveConnection для объекта Connection. Если команда имеет параметры, передайте их значения в качестве аргументов в метод.

Если два или более объектов command выполняются в одном соединении, и любой объект Command является хранимой процедурой с выходными параметрами, возникает ошибка. Чтобы выполнить каждый объект Command , используйте отдельные подключения или отключите все остальные объекты command от соединения.

Коллекция параметров является элементом по умолчанию объекта Command . В результате следующие два оператора кода эквивалентны.

objCmd.Parameters.Item(0)  
objCmd(0)  
  • Объект командной не является безопасным для скриптов.

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

См. также

объект подключения (ADO)
коллекции параметров (ADO)
Коллекция свойств (ADO)
Приложение A: Поставщики