Объекты 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)