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

適用対象:SQL Server

重要

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

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

構文

  
void * srv_paramdata (  
SRV_PROC *  
srvproc  
,  
int  
n   
);  

引数

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

n
パラメーターの番号です。 最初のパラメーターは 1 です。

返品

パラメーター値を指すポインターを返します。 n 番目のパラメーターが NULL である場合、n 番目のパラメーターがない場合、またはリモート ストアド プロシージャがない場合には、NULL を返します。 パラメーター値が文字列である場合、NULL 終端ではないこともあります。 文字列の長さを判断するには、srv_paramlen を使用します。

パラメーターが Microsoft SQL Server データ型の 1 つである場合、この関数は次の値を返します。 ポインター データには、データ型に対する有効なポインター (VP) か、NULL か、該当なし (N/A) かを示す情報と、ポインターが指すデータの内容が含まれます。

新しいデータ型 入力データ長
BITN NULL: VP、NULL

ZERO: VP、NULL

>=255: N/A

<255: N/A
BIGVARCHAR NULL: NULL、N/A

ZERO: VP、NULL

>=255: VP、255 文字

<255: VP、実際のデータ
BIGCHAR NULL: NULL、N/A

ZERO: VP、255 個のスペース

>=255: VP、255 文字

<255: VP、実際のデータ + パディング (最大 255)
BIGBINARY NULL: NULL、N/A

ZERO: VP、255 0x00

>=255: VP、255 バイト

<255: VP、実際のデータ + パディング (最大 255)
BIGVARBINARY NULL: NULL、N/A

ZERO: VP、0x00

>=255: VP、255 バイト

<255: VP、実際のデータ
NCHAR NULL: NULL、N/A

ZERO: VP、255 個のスペース

>=255: VP、255 文字

<255: VP、実際のデータ + パディング (最大 255)
NVARCHAR NULL: NULL、N/A

ZERO: VP、NULL

>=255: VP、255 文字

<255: VP、実際のデータ
NTEXT NULL: N/A

ZERO: N/A

>=255: N/A

<255: N/A

* データは null で終わるものではありません。データ >255 文字の切り捨て時に警告は発行されません。

解説

パラメーター名がわかっている場合は、srv_paramnumber でパラメーター番号を取得できます。 パラメーターが NULL かどうかを判断する場合は、srv_paramlen を使用します。

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

重要

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

参照

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