Объекты 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 , возможна передача ссылок на базы данных и таблицы, содержащиеся на этом сервере.
См. также раздел
- Синтаксис иерархии объектов (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)
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по