次の方法で共有


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

ms164675.note(ja-jp,SQL.90).gif重要 :
この機能は、Microsoft 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 データ型のいずれかである場合、この関数は次の値を返します。

新しいデータ型 戻り値のデータ長

BITN

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

0: N/A

255 以上 : N/A

255 未満 : N/A

BIGVARCHAR

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

BIGCHAR

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

BIGBINARY

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

BIGVARBINARY

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

NCHAR

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

NVARCHAR

NULL:len = 0、data = IG、RET = 1

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

255 以上 :len = 最大 8 K、data = valid、RET = 0

255 未満 :len = 8 K 未満、data = valid、RET = 1

NTEXT

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

0: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 を返します。

ms164675.security(ja-jp,SQL.90).gifセキュリティ メモ :
拡張ストアド プロシージャのソース コードを十分に確認し、コンパイルした DLL をテストしたうえで実稼働サーバーにインストールしてください。セキュリティの確認およびテストの詳細については、Microsoft の Web サイトを参照してください。

参照

関連項目

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手