Share via


オブジェクト階層の構文 (Transact-SQL)

適用対象:SQL Server

プロパティ名パラメーターsp_OAGetPropertysp_OASetPropertyMicrosoft Visual Basic と同様のsp_OAMethodオブジェクト階層構文をサポートする methodname パラメーター。 この特殊な構文を使用する場合、これらのパラメーターは次の一般的な形式になります。

構文

TraversedObject.PropertyOrMethod

引数

TraversedObject

ストアド プロシージャで指定されたオブジェクトトークンの下の階層内の OLE オブジェクト。 Visual Basic 構文を使用して、オブジェクトを返す一連のコレクション、オブジェクトのプロパティ、およびメソッドを指定します。 系列内の各オブジェクト指定子は、ピリオド (.) で区切る必要があります。

一連の指定子の項目には、コレクション名を指定できます。 コレクションを指定するには、次の構文を使用します。

Collection("item")

二重引用符 (") が必要です。 コレクションの Visual Basic 感嘆符 (!) 構文はサポートされていません。

PropertyOrMethod

TraversedObject のプロパティまたはメソッドの名前。

かっこ内のすべてのインデックスまたはメソッド パラメーターを指定するには (すべてのインデックスパラメーターまたはメソッド パラメーターが無視sp_OASetPropertysp_OAMethodされるようにします)、次のsp_OAGetProperty構文を使用します。

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

二重引用符 (") が必要です。 すべての位置指定パラメーターを指定した後で、すべての名前付きパラメーターを指定する必要があります。

解説

TraversedObject が指定されていない場合は、PropertyOrMethod が必要です。

PropertyOrMethod が指定されていない場合TraversedObject は OLE オートメーション ストアド プロシージャからオブジェクト トークン出力パラメーターとして返されます。

PropertyOrMethod を指定すると、TraversedObjectプロパティまたはメソッドが呼び出されます。 プロパティ値またはメソッドの戻り値は、OLE オートメーション ストアド プロシージャから出力パラメーターとして返されます。

TraversedObject リスト内の項目が OLE オブジェクトを返さない場合は、エラーが発生します。

Visual Basic OLE オブジェクトの構文の詳細については、Visual Basic のドキュメントを参照してください。

リターン コードの詳細HRESULTについては、「sp_OACreate (Transact-SQL)」を参照してください

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