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


Объекты 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_OAGetProperty устанавливает значение свойства.
  • sp_OAMethod вызывает метод.
  • sp_OAGetErrorInfo возвращает сведения о последней возникшей ошибке.

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

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

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

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

См. также

Основные понятия

Параметр Ole Automation Procedures

Другие ресурсы

Синтаксис иерархии объектов (Transact-SQL)
Конфигурация контактной зоны
sp_OACreate (Transact-SQL)
sp_OAGetProperty (Transact-SQL)
sp_OASetProperty (Transact-SQL)
sp_OAMethod (Transact-SQL)
sp_OAGetErrorInfo (Transact-SQL)
sp_OADestroy (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005