次の方法で共有


srv_paramset (拡張ストアド プロシージャ API)

適用対象: SQL サーバー

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CLR 統合を使用してください。

リモート ストアド プロシージャ呼び出しの戻りパラメーターの値を設定します。 この関数に代わって srv_paramsetoutput 関数が使用されるようになりました。

構文

  
int srv_paramset (  
SRV_PROC *  
srvproc  
,  
int  
n  
,   
void *  
data  
,  
int  
len   
);  

引数

srvproc
特定のクライアント接続のためのハンドル (この場合は、リモート ストアド プロシージャ呼び出しを受け取るハンドル) である SRV_PROC 構造体を指すポインターです。 この構造体には、アプリケーションとクライアントの間の通信やデータを管理するために、拡張ストアド プロシージャ API ライブラリで使用する情報が格納されます。

n
設定するパラメーターの番号を示します。 最初のパラメーターは 1 です。

data
リモート ストアド プロシージャの戻りパラメーターとしてクライアントに返されるデータ値を指すポインターです。

len
返されるデータの実際の長さを指定します。 パラメーターのデータ型が固定長であり、NULL 値を許容しない型 (srvbitsrvint1 など) である場合、len は無視されます。

返品

パラメーター値が正しく設定された場合は SUCCEED を返し、それ以外の場合は FAIL を返します。 FAIL を返すのは、現在のリモート ストアド プロシージャがない場合、n 番目のリモート ストアド プロシージャ パラメーターがない場合、パラメーターが戻りパラメーターでない場合、len 引数が無効である場合です。

len が 0 である場合は、NULL を返します。 len を 0 に設定する以外に、クライアントに NULL を返す方法はありません。

パラメーターが Microsoft SQL Server 2005 (9.x) データ型のいずれかである場合、この関数は次の値を返します。

新しいデータ型 戻り値のデータ長
BITN NULL: len = 0、データ = IG、RET = 0

ZERO: N/A

>=255: N/A

<255: N/A
BIGVARCHAR NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
BIGCHAR NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
BIGBINARY NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
BIGVARBINARY NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
NCHAR NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
NVARCHAR NULL: len = 0、データ = IG、RET = 1

ZERO: len = IG、data = IG、RET = 0

>=255: len = max8k, data = valid, RET = 0

<255: len = <8k、data = valid、RET = 1
NTEXT NULL: len = IG、data = IG、RET = 0

ZERO: len = IG、data = IG、RET = 0

>=255: len = IG、data = IG、RET = 0

<255: len = IG、data = IG、RET = 0
RET は srv_paramset の戻り値です。
IG は値が無視されることを示します。
valid はデータを指す任意の有効なポインターを示します。

解説

パラメーターには、リモート ストアド プロシージャを使用してクライアントとアプリケーションとの間で受け渡しされるデータが格納されます。 クライアントは戻りパラメーターとして特定のパラメーターを指定できます。 この戻りパラメーターには、Open Data Services サーバー アプリケーションがクライアントに返す値を格納することができます。 戻りパラメーターの使用は、パラメーターの参照渡しに類似しています。

戻りパラメーターとして呼び出されていないパラメーターには、戻り値を設定できません。 パラメーターがどのように呼び出されたかを判別するには srv_paramstatus を使用します。

この関数は、パラメーターの戻り値を設定するものであり、戻り値を実際にクライアントに返す役割はありません。 srv_paramset に設定されているかどうかにかかわらず、すべての戻りパラメーターは、ステータス フラグ SRV_DONE_FINAL が設定された状態で srv_senddone が呼び出されると、自動的にクライアントに送信されます。

パラメーターを指定してリモート ストアド プロシージャを呼び出す場合、パラメーターは名前で指定することも、名前を使用せずにその位置を指定して渡すこともできます。 名前によるパラメーター指定と位置によるパラメーター指定を混合してリモート ストアド プロシージャを呼び出すと、エラーが発生します。 エラーが発生しても SRV_RPC ハンドラーは呼び出されますが、パラメーターが存在しないと見なされ、srv_rpcparams は 0 を返します。

重要

拡張ストアド プロシージャのソース コードを十分に確認し、コンパイル済み DLL を、運用サーバーにインストールする前にテストする必要があります。 セキュリティの確認およびテストについて詳しくは、Microsoft の Web サイトをご覧ください。

参照

srv_paramsetoutput (拡張ストアド プロシージャ API)