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


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

В Transact-SQL включен ряд системных хранимых процедур, позволяющих ссылаться на объекты OLE-автоматизации из пакетов Transact-SQL, хранимых процедур и триггеров. Они выполняются как расширенные хранимые процедуры, при этом объекты OLE-автоматизации, запускаемые посредством хранимых процедур, работают в адресном пространстве экземпляра Компонент SQL Server Database Engine аналогично расширенным хранимым процедурам.

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

При обращении к объекту OLE-автоматизации из Transact-SQL сперва необходимо вызвать системную хранимую процедуру sp_OACreate, которая создает экземпляр объекта в адресном пространстве экземпляра компонента Компонент Database Engine.

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

  • sp_OAGetProperty возвращает значение свойства.

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

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

  • sp_OAGetErrorInfo возвращает сведения о последней возникшей ошибке.

Когда объект больше не нужен, вызов хранимой процедуры sp_OADestroy позволяет освободить память, удалив объект, созданный хранимой процедурой sp_OACreate.

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

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

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

См. также

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

Настройка контактной зоны

Параметр конфигурации сервера «Ole Automation Procedures»

sp_OACreate (Transact-SQL)

sp_OAGetProperty (Transact-SQL)

sp_OASetProperty (Transact-SQL)

sp_OAMethod (Transact-SQL)

sp_OAGetErrorInfo (Transact-SQL)

sp_OADestroy (Transact-SQL)