次の方法で共有


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

sp_OAGetProperty および sp_OASetPropertypropertyname パラメータと、sp_OAMethodmethodname パラメータでは、Microsoft Visual Basic のオブジェクト階層構文と類似のオブジェクト階層構文がサポートされます。この特殊な構文を使用する場合、パラメータの一般的な形式は次のようになります。

構文

'TraversedObject.PropertyOrMethod'

引数

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

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

    Collection("item")

    二重引用符 (") が必要です。コレクションに Visual Basic 感嘆符 (!) 構文を使用することはできません。

  • PropertyOrMethod
    TraversedObject のプロパティ名またはメソッド名を指定します。

    sp_OAGetPropertysp_OASetProperty、または sp_OAMethod パラメータ (sp_OAMethod 出力パラメータのサポートを含む) を使用して、すべてのインデックスまたはメソッド パラメータを指定するには、次の構文を使用します。

    PropertyOrMethod

    すべてのインデックスまたはメソッド パラメータをかっこで囲んで指定するには、次の構文を使用します。この場合、sp_OAGetPropertysp_OASetProperty、または sp_OAMethod のすべてのインデックスまたはメソッド パラメータは無視されます。

    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 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

参照

関連項目

OLE オートメーション ストアド プロシージャ (Transact-SQL)

その他の技術情報

OLE オートメーションのサンプル スクリプト

ヘルプおよび情報

SQL Server 2005 の参考資料の入手