共用方式為


物件階層語法 (Transact-SQL)

適用於:SQL Server

sp_OASetPropertysp_OAGetProperty propertyname 參數和 的 methodname 參數sp_OAMethod支援物件階層語法,類似於 Microsoft Visual Basic。 使用此特殊語法時,這些參數具有下列一般格式。

語法

TraversedObject.PropertyOrMethod

引數

TraversedObject

預存程式中指定之 objecttoken 之階層中的 OLE 物件。 使用 Visual Basic 語法來指定一系列傳回物件的集合、物件屬性和方法。 數列中的每個物件規範都必須以句號 (.) 分隔。

數列中的專案可以是集合的名稱。 使用此語法來指定集合:

Collection("item")

需要雙引號 (") 。 不支援集合的Visual Basic驚嘆號 (!) 語法。

PropertyOrMethod

TraversedObject 的屬性或方法名稱。

若要在括弧內指定所有索引或方法參數(導致、 sp_OASetPropertysp_OAMethod 或 的所有索引或方法參數sp_OAGetProperty被忽略),請使用下列語法:

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

需要雙引號 (") 。 所有具名參數都必須在指定所有位置參數之後指定。

備註

如果未 指定 TraversedObject則需要 PropertyOrMethod

如果未 指定 PropertyOrMethod則會從 OLE Automation 預存程式傳回 TraversedObject 做為物件令牌輸出參數。

如果指定 PropertyOrMethod,則會呼叫 TraversedObject 的屬性或方法。 屬性值或方法傳回值會當做 OLE Automation 預存程式的輸出參數傳回。

如果 TraversedObject 清單中的任何專案未傳回 OLE 物件,就會引發錯誤。

如需 Visual Basic OLE 物件語法的詳細資訊,請參閱 Visual Basic 檔。

如需傳回碼的詳細資訊 HRESULT ,請參閱 sp_OACreate

範例

以下是使用 SQL-DMO SQLServer 對象的物件階層語法範例。

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

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

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