オブジェクト階層の構文 (Transact-SQL)
適用対象: SQL Server
sp_OAGetProperty
とsp_OASetProperty
の propertyname パラメーター、および sp_OAMethod
の methodname パラメーターは、Microsoft Visual Basic と同様のオブジェクト階層構文をサポートします。 この特殊な構文を使用する場合、これらのパラメーターは次の一般的な形式になります。
構文
TraversedObject.PropertyOrMethod
引数
TraversedObject
ストアド プロシージャで指定された objecttoken の階層内の OLE オブジェクト。 Visual Basic 構文を使用して、オブジェクトを返す一連のコレクション、オブジェクトのプロパティ、およびメソッドを指定します。 系列内の各オブジェクト指定子は、ピリオド (.
) で区切る必要があります。
一連の指定子の項目には、コレクション名を指定できます。 コレクションを指定するには、次の構文を使用します。
Collection("item")
二重引用符 ("
) が必要です。 コレクションの Visual Basic 感嘆符 (!
) 構文はサポートされていません。
PropertyOrMethod
TraversedObjectのプロパティまたはメソッドの名前。
かっこ内のすべてのインデックスまたはメソッド パラメーターを指定するには ( sp_OAGetProperty
、 sp_OASetProperty
、または sp_OAMethod
のすべてのインデックスパラメーターまたはメソッド パラメーターを無視する) には、次の構文を使用します。
PropertyOrMethod ( [ ParameterName := ] "parameter" [ , ... ] )
二重引用符 ("
) が必要です。 すべての位置指定パラメーターを指定した後で、すべての名前付きパラメーターを指定する必要があります。
解説
TraversedObjectを指定しない場合は、PropertyOrMethod が必要です。
PropertyOrMethod が指定されていない場合、ole オートメーション ストアド プロシージャからオブジェクト トークン出力パラメーターとして TraversedObject が返されます。
PropertyOrMethod を指定すると、TraversedObject のプロパティまたはメソッドが呼び出されます。 プロパティ値またはメソッドの戻り値は、OLE オートメーション ストアド プロシージャから出力パラメーターとして返されます。
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