Syntaxe de hiérarchie des objets (Transact-SQL)
Le paramètre propertyname de sp_OAGetProperty et sp_OASetProperty et le paramètre methodname de sp_OAMethod prennent en charge une syntaxe de hiérarchie d'objets qui est similaire à celle de Microsoft Visual Basic. Lorsque vous utilisez cette syntaxe spéciale, ces paramètres ont la forme générale suivante.
Syntaxe
'TraversedObject.PropertyOrMethod'
Arguments
TraversedObject
Objet OLE dans la hiérarchie sous le paramètre objecttoken indiqué dans la procédure stockée. Utilisez la syntaxe Visual Basic pour spécifier une série de collections, de propriétés d'objet et de méthodes qui retournent des objets. Chaque identificateur d'objet de la série doit être séparé par un point (.).Un élément dans la série peut être le nom d'une collection. Utilisez la syntaxe suivante pour indiquer une collection :
Collection("item")
Les guillemets doubles (") sont obligatoires. La syntaxe avec point d'exclamation (!) utilisée par Visual Basic pour les collections n'est pas admise.
PropertyOrMethod
Nom d'une propriété ou d'une méthode de TraversedObject.Pour spécifier tous les paramètres d'index ou de méthode à l'aide des paramètres sp_OAGetProperty, sp_OASetProperty ou sp_OAMethod (y compris la prise en charge des paramètres de sortie sp_OAMethod), utilisez la syntaxe suivante :
PropertyOrMethod
Pour spécifier tous les paramètres d'index ou de méthode à l'intérieur des parenthèses (avec pour résultat que tous les paramètres d'index ou de méthode sp_OAGetProperty, sp_OASetProperty ou sp_OAMethod sont alors ignorés), utilisez la syntaxe suivante :
PropertyOrMethod ( [ ParameterName := ] "parameter" [ , ... ] )
Les guillemets doubles (") sont obligatoires. Tous les paramètres nommés doivent être spécifiés après tous les paramètres positionnels.
Notes
Si TraversedObject n'est pas spécifié, PropertyOrMethod est nécessaire.
Si PropertyOrMethod n'est pas spécifié, TraversedObject est retourné comme paramètre de sortie du jeton d'objet par la procédure stockée OLE Automation. Si PropertyOrMethod est spécifié, la propriété ou la méthode de TraversedObject est appelée et la valeur de propriété ou la valeur retournée par la méthode est retournée comme paramètre de sortie par la procédure stockée OLE Automation.
Une erreur se produit si aucun élément de la liste TraversedObject ne retourne d'objet OLE.
Pour plus d'informations sur la syntaxe des objets Visual Basic, consultez la documentation de Visual Basic.
Pour plus d'informations sur les codes de retour HRESULT, consultez sp_OACreate (Transact-SQL).
Exemples
Voici des exemples de syntaxe de hiérarchie des objets qui utilisent un objet SQL-DMO SQLServer.
-- Get the AdventureWorks2012 Person.Address Table object.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks2012").Tables("Person.Address")',
@table OUT
-- Get the Rows property of the AdventureWorks2012 Person.Address table.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks2012").Tables("Person.Address").Rows',
@rows OUT
-- Call the CheckTable method to validate the
-- AdventureWorks2012 Person.Address table.
EXEC @hr = sp_OAMethod @object,
'Databases("AdventureWorks2012").Tables("Person.Address").CheckTable',
@checkoutput OUT