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

El parámetro propertyname de sp_OAGetProperty y sp_OASetProperty, y el parámetro methodname de sp_OAMethod admiten una sintaxis de jerarquía de objetos parecida a la de Microsoft Visual Basic. Cuando se utiliza esta sintaxis especial, estos parámetros tienen la forma general siguiente:

Sintaxis

'TraversedObject.PropertyOrMethod'

Argumentos

  • TraversedObject
    Es un objeto OLE de la jerarquía que está bajo el objecttoken especificado en el procedimiento almacenado. Utilice la sintaxis de Visual Basic para especificar un conjunto de colecciones, propiedades de objetos y métodos que devuelven objetos. Cada especificador de objeto del conjunto debe estar separado con un punto ..

    Un elemento del conjunto puede ser el nombre de una colección. Utilice esta sintaxis para especificar una colección:

    Recopilación("item")

    Las comillas dobles (") son necesarias. No se acepta la sintaxis de signo de admiración de Visual Basic (!) para las recopilaciones.

  • PropertyOrMethod
    Es el nombre de una propiedad o método de TraversedObject.

    Para especificar todos los índices o parámetros de métodos mediante los parámetros sp_OAGetProperty, sp_OASetProperty o sp_OAMethod (incluida la compatibilidad con los parámetros de resultado de sp_OAMethod), utilice esta sintaxis:

    PropertyOrMethod

    Para especificar todos los índices o parámetros de métodos entre paréntesis (para que se pasen por alto todos los índices o parámetros de métodos de sp_OAGetProperty, sp_OASetProperty o sp_OAMethod) utilice esta sintaxis:

    PropertyOrMethod ( [ ParameterName := ] "parameter" [ , ... ] )

    Las comillas dobles (") son necesarias. Todos los parámetros con nombre deben especificarse después de especificar todos los parámetros de posición.

Comentarios

Si no se especifica TraversedObject, se necesita PropertyOrMethod.

Si no se especifica PropertyOrMethod, se devuelve TraversedObject como parámetro de resultado de un token de objeto desde el procedimiento almacenado de Automatización OLE. Si se especifica PropertyOrMethod, se llama a la propiedad o método de TraversedObject y se devuelve el valor de la propiedad o el valor devuelto del método como parámetro de resultado del procedimiento almacenado de Automatización OLE.

Si algún elemento de la lista TraversedObject no devuelve un objeto OLE, se genera un error.

Para obtener más información acerca de la sintaxis de objetos OLE de Visual Basic, vea la documentación de Visual Basic.

Para obtener más información acerca de los códigos de retorno de HRESULT, vea sp_OACreate (Transact-SQL).

Ejemplos

A continuación se muestran ejemplos de la sintaxis de jerarquía de objetos que usa un objeto de SQL-DMO SQLServer.

-- Get the AdventureWorks2008R2 Person.Address Table object.
EXEC @hr = sp_OAGetProperty @object,
   'Databases("AdventureWorks2008R2").Tables("Person.Address")',
   @table OUT

-- Get the Rows property of the AdventureWorks2008R2 Person.Address table.
EXEC @hr = sp_OAGetProperty @object,
   'Databases("AdventureWorks2008R2").Tables("Person.Address").Rows',
   @rows OUT

-- Call the CheckTable method to validate the 
-- AdventureWorks2008R2 Person.Address table.
EXEC @hr = sp_OAMethod @object,
   'Databases("AdventureWorks2008R2").Tables("Person.Address").CheckTable',
   @checkoutput OUT