物件階層語法 (Transact-SQL)
sp_OAGetProperty 和 sp_OASetProperty 的 propertyname 參數,以及 sp_OAMethod 的 methodname 參數,支援類似 MicrosoftVisual Basic 的物件階層語法。使用這個特殊語法時,這些參數具有下列一般格式。
語法
'TraversedObject.PropertyOrMethod'
引數
TraversedObject
這是階層中的一個 OLE 物件,位於預存程序中指定的 objecttoken 之下。使用 Visual Basic 語法來指定一系列集合、物件屬性和傳回物件的方法。這個系列中的每一個物件規範必須以句點 (.) 隔開。這個系列中的項目可以是集合的名稱。請使用這個語法來指定集合:
Collection("item")
需要雙引號 (")。集合的 Visual Basic 驚嘆號 (!) 語法不受支援。
PropertyOrMethod
這是 TraversedObject 之屬性或方法的名稱。若要使用 sp_OAGetProperty、sp_OASetProperty 或 sp_OAMethod 參數 (包括 sp_OAMethod 輸出參數的支援),來指定所有索引或方法參數,請使用下列語法:
PropertyOrMethod
若要在括號內指定所有索引或方法參數 (使 sp_OAGetProperty、sp_OASetProperty 或 sp_OAMethod 的所有索引或方法參數被忽略),請使用下列語法:
PropertyOrMethod**(** [ ParameterName**:=** ] "parameter" [ , ... ] )
需要雙引號 (")。您必須在指定好所有位置性參數之後,指定所有具名參數。
備註
如果未指定 TraversedObject,則需要 PropertyOrMethod。
如果未指定 PropertyOrMethod,則會以 OLE Automation 預存程序中的物件 Token 輸出參數傳回 TraversedObject。如果指定了 PropertyOrMethod,則會呼叫 TraversedObject 的屬性或方法,且屬性值或方法傳回值會以 OLE Automation 預存程序中的輸出參數傳回。
如果 TraversedObject 清單中的任何項目未傳回 OLE 物件,會引發錯誤。
如需有關 Visual Basic OLE 物件語法的詳細資訊,請參閱 Visual Basic 文件集。
如需有關 HRESULT 傳回碼的詳細資訊,請參閱<sp_OACreate (Transact-SQL)>。
範例
下列是使用 SQL-DMO SQLServer 物件之物件階層語法的範例。
-- Get the AdventureWorks Person.Address Table object.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks").Tables("Person.Address")',
@table OUT
-- Get the Rows property of the AdventureWorks Person.Address table.
EXEC @hr = sp_OAGetProperty @object,
'Databases("AdventureWorks").Tables("Person.Address").Rows',
@rows OUT
-- Call the CheckTable method to validate the
-- AdventureWorks Person.Address table.
EXEC @hr = sp_OAMethod @object,
'Databases("AdventureWorks").Tables("Person.Address").CheckTable',
@checkoutput OUT