sp_OAGetProperty (Transact-SQL)
適用対象:SQL Server
OLE オブジェクトのプロパティ値を取得します。
構文
sp_OAGetProperty objecttoken , propertyname
[ , propertyvalue OUTPUT ]
[ , index...]
引数
objecttoken
sp_OACreateを使用して以前に作成された OLE オブジェクトのオブジェクト トークンです。
propertyname
返す OLE オブジェクトのプロパティ名を指定します。
propertyvalueOUTPUT
返されるプロパティ値です。 指定する場合は、適切なデータ型のローカル変数でなければなりません。
プロパティが OLE オブジェクトを返す場合、 propertyvalue はデータ型 int のローカル変数である必要があります。オブジェクト トークンはローカル変数に格納され、このオブジェクト トークンは他の OLE オートメーション ストアド プロシージャと共に使用できます。
プロパティが 1 つの値を返す場合は、ローカル変数にプロパティ値を返す propertyvalue のローカル変数を指定するか、プロパティ値を指定しません。プロパティ値は指定しません。このプロパティ値は、単一列の単一行の結果セットとしてクライアントに返されます。
プロパティが配列を返すときに、propertyvalue が指定されている場合は NULL に設定されます。
propertyvalue が指定されていても、プロパティが値を返さない場合は、エラーが発生します。 プロパティが 2 次元を超える配列を返す場合は、エラーが発生します。
インデックス
インデックス パラメーターです。 指定する場合、 インデックス は適切なデータ型の値である必要があります。
一部のプロパティにはパラメーターがあります。 これらのプロパティはインデックス付きプロパティと呼ばれ、パラメーターはインデックス パラメーターと呼ばれます。 プロパティには、複数のインデックス パラメーターを指定できます。
Note
このストアド プロシージャのパラメーターは、名前ではなく位置によって指定されます。
リターン コードの値
0 (成功) または 0 以外の数値 (失敗) は、OLE オートメーション オブジェクトによって返される HRESULT の整数値です。
HRESULT リターン コードの詳細については、「OLE オートメーションのリターン コードとエラー情報」を参照してください。
結果セット
プロパティが 1 次元または 2 次元の配列を返す場合、配列は結果セットとしてクライアントに返されます。
1 次元の配列の場合は、配列内の要素数と同数の列を持つ 1 行の結果セットとしてクライアントに返されます。 つまり、配列は列数として返されます。
2 次元の配列の場合は、最初の次元の配列の要素数を列数とし、2 番目の次元の配列の要素数を行数とした結果セットとしてクライアントに返します。 つまり、配列は (列、行) として返されます。
プロパティの戻り値またはメソッドの戻り値が配列の場合、 sp_OAGetProperty または sp_OAMethod は結果セットをクライアントに返します。 (メソッドの出力パラメーターを配列にすることはできません)。)これらの手順では、配列内のすべてのデータ値をスキャンして、結果セット内の各列に使用する適切な SQL Server データ型とデータ長を決定します。 これらのプロシージャは必要なデータ型とデータ長を使用して、特定の列内のすべてのデータ値を表現します。
列内のすべてのデータ値が同じデータ型を共有する場合は、そのデータ型を列全体で使用します。 列のデータ値が異なるデータ型の場合、次のグラフに基づいて列全体のデータ型が選択されます。
int | float | 金額 | datetime | varchar | nvarchar | |
---|---|---|---|---|---|---|
int | int | float | money | varchar | varchar | nvarchar |
float | float | float | money | varchar | varchar | nvarchar |
money | money | money | money | varchar | varchar | nvarchar |
datetime | varchar | varchar | varchar | datetime | varchar | nvarchar |
varchar | varchar | varchar | varchar | varchar | varchar | nvarchar |
nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar | nvarchar |
解説
sp_OAMethodを使用してプロパティ値を取得することもできます。
アクセス許可
sysadmin 固定サーバー ロールのメンバーシップが必要です。または、このストアド プロシージャに対して直接アクセス許可を実行する必要があります。 Ole Automation Procedures
OLE オートメーションに 関連するシステム プロシージャを使用するには、構成を有効にする 必要があります。
例
A. ローカル変数を使用する
次の例では、 HostName
(以前に作成した SQLServer オブジェクトの) プロパティを取得し、ローカル変数に格納します。
DECLARE @property varchar(255);
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT;
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
PRINT @property;
B. 結果セットの使用
次の例では、 HostName
(以前に作成した SQLServer オブジェクトの) プロパティを取得し、結果セットとしてクライアントに返します。
EXEC @hr = sp_OAGetProperty @object, 'HostName';
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END;
参照
OLE オートメーション ストアド プロシージャ (Transact-SQL)
OLE オートメーションのサンプル スクリプト
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示