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

Применимо к:SQL Server

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

Хранимые процедуры OLE Automation позволяют пакетам 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 , возможна передача ссылок на базы данных и таблицы, содержащиеся на этом сервере.

См. также раздел

Дальнейшие действия