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


Объекты автоматизации OLE в Transact-SQL

Transact-SQL включает несколько системных хранимых процедур, которые позволяют ссылаться на объекты OLE Automation в Transact-SQL пакетах, хранимых процедурах и триггерах. Эти системные хранимые процедуры выполняются как расширенные хранимые процедуры, а объекты OLE Automation, выполняемые с помощью хранимых процедур, выполняются в адресном пространстве экземпляра ядра СУБД SQL Server таким же образом, как выполняется расширенная хранимая процедура.

Хранимые процедуры OLE Automation позволяют Transact-SQL пакетам ссылаться на объекты SQL-DMO и пользовательские объекты OLE Automation, такие как объекты, предоставляющие интерфейс IDispatch . Настраиваемый встроенный сервер OLE, созданный с помощью Microsoft Visual Basic, должен иметь обработчик ошибок (указанный с инструкцией On Error GoTo ) для Class_Initialize и Class_Terminate вложенных маршрутов. Необработанные ошибки в Class_Initialize и вложенных Class_Terminate могут привести к непредсказуемым ошибкам, таким как нарушение доступа в экземпляре ядра СУБД. Кроме того, рекомендуется использовать обработчики ошибок для других вложенных каналов.

Первым шагом при использовании объекта OLE Automation в Transact-SQL является вызов системной хранимой процедуры sp_OACreate для создания экземпляра объекта в адресном пространстве экземпляра ядра СУБД.

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

  • sp_OAGetProperty получает значение свойства.

  • sp_OASetProperty задает значение свойства.

  • sp_OAMethod вызывает метод.

  • sp_OAGetErrorInfo получает последние сведения об ошибке.

Если для объекта больше нет необходимости, вызовите sp_OADestroy для освобождения экземпляра объекта, созданного с помощью sp_OACreate.

Объекты OLE Automation возвращают данные через значения свойств и методы. sp_OAGetProperty и sp_OAMethod возвращают эти значения данных в виде результирующий набор.

Область объекта OLE Automation — это пакетный процесс. Все ссылки на объект должны содержаться в одном пакете, хранимой процедуре или триггере.

Когда объекты OLE Automation SQL Server ссылаются на другие объекты, они поддерживают возможность обхода ссылочного объекта к другим объектам, которые он содержит. Например, при использовании объекта SQLServer SQL-DMO ссылки можно делать к базам данных и таблицам, содержащимся на этом сервере.

Синтаксис иерархии объектов (Transact-SQL)

Конфигурация площади поверхности

Параметр конфигурации сервера процедур OLE Automation

sp_OACreate (Transact-SQL)

sp_OAGetProperty (Transact-SQL)

sp_OASetProperty (Transact-SQL)

sp_OAMethod (Transact-SQL)

sp_OAGetErrorInfo (Transact-SQL)

sp_OADestroy (Transact-SQL)