Objetos de automatización OLE en Transact-SQL

Transact-SQL incluye varios procedimientos almacenados del sistema que permiten hacer referencia a objetos de OLE Automation en lotes, procedimientos almacenados y desencadenadores de Transact-SQL. Estos procedimientos almacenados del sistema se ejecutan como procedimientos almacenados extendidos, y los objetos de automatización OLE que se ejecutan a través de los procedimientos almacenados lo hacen en el espacio de direcciones de una instancia del Motor de base de datos de SQL Server de la misma forma que un procedimiento almacenado extendido.

Los procedimientos almacenados de OLE Automation permiten que los lotes de Transact-SQL hagan referencia a objetos SQL-DMO y a objetos de OLE Automation personalizados, como los objetos que exponen la interfaz IDispatch. Un servidor OLE personalizado en proceso creado con Microsoft Visual Basic debe tener un controlador de errores (especificado con la instrucción On Error GoTo) para las subrutinas Class_Initialize y Class_Terminate. Los errores sin controlar de las subrutinas Class_Initialize y Class_Terminate pueden generar errores impredecibles, como una infracción de acceso en una instancia del Motor de base de datos. Se recomienda también disponer de identificadores de errores para otras subrutinas.

El primer paso al usar un objeto de automatización OLE en Transact-SQL es llamar al procedimiento almacenado del sistema sp_OACreate para crear una instancia del objeto en el espacio de direcciones de la instancia del motor de base de datos.

Una vez creada una instancia del objeto, llame a los siguientes procedimientos almacenados para trabajar con las propiedades, los métodos y la información de error relacionada con el objeto:

  • sp_OAGetProperty obtiene el valor de una propiedad.

  • sp_OASetProperty establece el valor de una propiedad.

  • sp_OAMethod llama a un método.

  • sp_OAGetErrorInfo obtiene la información de errores más reciente.

Cuando el objeto deje de ser necesario, llame a sp_OADestroy para cancelar la asignación de la instancia del objeto creado con sp_OACreate.

Los objetos de automatización OLE devuelven datos a través de valores y métodos de propiedad. sp_OAGetProperty y sp_OAMethod devuelven estos valores de datos en la forma de un conjunto de resultados.

El ámbito de un objeto de OLE Automation se limita a un lote. Todas las referencias al objeto deben estar contenidas en un único lote, en un procedimiento almacenado o en un desencadenador.

Cuando se hace referencia a objetos, los objetos de automatización OLE de SQL Server permiten atravesar el objeto referenciado para llegar hasta otros objetos contenidos en él. Por ejemplo, cuando se usa el objeto SQLServer de SQL-DMO, se puede hacer referencia a las bases de datos y tablas contenidas en ese servidor.

Sintaxis de jerarquía de objetos (Transact-SQL)

Configuración de Área expuesta

Ole Automation Procedures (opción de configuración del servidor)

sp_OACreate (Transact-SQL)

sp_OAGetProperty (Transact-SQL)

sp_OASetProperty (Transact-SQL)

sp_OAMethod (Transact-SQL)

sp_OAGetErrorInfo (Transact-SQL)

sp_OADestroy (Transact-SQL)