Sintaxe da hierarquia de objetos (Transact-SQL)

O parâmetro propertyname de sp_OAGetProperty e sp_OASetProperty e do parâmetro methodname de sp_OAMethod dão suporte a uma sintaxe de hierarquia de objeto semelhante ao de Microsoft Visual Basic. Quando essa sintaxe especial for usada, esses parâmetros têm o seguinte formato geral.

Sintaxe

'TraversedObject.PropertyOrMethod'

Argumentos

  • TraversedObject
    É um objeto OLE na hierarquia no objecttoken especificado no procedimento armazenado. Use a sintaxe do Visual Basic para especificar uma série de coleções, propriedades de objeto e métodos que retornam objetos. Cada especificador de objeto na série deve ser separado por um ponto (.).

    Um item na série pode ser o nome de uma coleção. Use esta sintaxe para especificar uma coleção:

    Collection("item")

    As aspas duplas (") são necessárias. A sintaxe do ponto de exclamação (!) do Visual Basic não é compatível.

  • PropertyOrMethod
    É o nome de uma propriedade ou de um método do TraversedObject.

    Para especificar todos os parâmetros de método ou índice com o uso dos parâmetros sp_OAGetProperty, sp_OASetProperty ou sp_OAMethod (incluindo suporte para parâmetros de saída sp_OAMethod), use a seguinte sintaxe:

    PropertyOrMethod

    Para especificar todos os parâmetros de método ou índice dentro dos parênteses (fazendo com que todos os parâmetros de método ou índice de sp_OAGetProperty, sp_OASetProperty ou sp_OAMethod sejam ignorados) use a seguinte sintaxe:

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

    As aspas duplas (") são necessárias. Todos os parâmetros nomeados deverão ser especificados depois que todos os parâmetros posicionais forem especificados.

Comentários

Se TraversedObject não for especificado, PropertyOrMethod será necessário.

Se PropertyOrMethod não for especificado, o TraversedObject será retornado como um parâmetro de saída de token de objeto a partir do procedimento armazenado de automação OLE. Se PropertyOrMethod for especificado, a propriedade ou o método do TraversedObject será chamado e o valor da propriedade ou o valor de retorno do método será retornado como um parâmetro de saída do procedimento armazenado de automação OLE.

Se qualquer item na lista TraversedObject não retornar um objeto OLE, um erro será gerado.

Para obter mais informações sobre a sintaxe de objeto OLE do Visual Basic, consulte a documentação do Visual Basic.

Para obter mais informações sobre Códigos de Retorno HRESULT, consulte sp_OACreate (Transact-SQL).

Exemplos

A seguir são fornecidos exemplos de sintaxe de hierarquia de objeto que usam um objeto 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