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

適用対象:SQL Server

重要

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

行内の特定の列について、列名および送信元と送信先のデータ型を定義します。

構文

  
int srv_describe (  
SRV_PROC *  
srvproc  
,  
int  
colnumber  
,  
DBCHAR *  
column_name  
,  
int  
namelen  
,  
DBINT  
desttype  
,  
DBINT  
destlen  
,  
DBINT  
srctype  
,  
DBINT  
srclen  
,  
void *  
srcdata  
);  

引数

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

colnumber
現時点では、サポートされません。 列は順番に記述する必要があります。 srv_sendrow を呼び出すには、事前にすべての列を記述しておく必要があります。

column_name
データが格納される列の名前を指定します。 列に名前を付けることは必須ではないので、このパラメーターは NULL になる場合があります。

namelen
column_name の長さをバイト数で指定します。 namelen が SRV_NULLTERM である場合は、column_name を NULL で終端する必要があります。

desttype
送信先の行内の列のデータ型を指定します。 これはクライアントに送信するデータ型です。 データが NULL の場合でも、データ型を指定する必要があります。詳細については、「データ型 (拡張ストアド プロシージャ API)」を参照してください

destlen
クライアントに送信するデータ長をバイト数で指定します。 NULL 値を許容しない固定長データ型の場合は、destlen が無視されます。 可変長データ型と NULL 値を許容する固定長データ型の場合、destlen は送信先データで使用できる最大長を指定します。

srctype
ソース データのデータ型を指定します。

srclen
ソース データの長さをバイト数で指定します。 固定長データ型の場合、この値は無視されます。

srcdata
特定の列に対応するソース データ アドレスを指定します。 srv_sendrow は呼び出されると、colnumber のデータを srcdata で探します。 このため、srv_sendrow を呼び出す前にこの引数を解放しないでください。 ソース データ アドレスは、srv_sendrow の呼び出しと呼び出しの間に srv_setcoldata を使用して変更できます。 別に srv_setcoldata を呼び出して列データを置き換えるか、srv_senddone を呼び出すまでは、srcdata に割り当てたメモリを解放しないでください。

desttype が SRVDECIMAL または SRVNUMERIC である場合、srcdata パラメーターは DBNUMERIC 構造体または DBDECIMAL 構造体を指すポインターである必要があります。そのとき、構造体の有効桁数と小数点以下桁数のフィールドには、必要な値を設定しておきます。 既定の有効桁数を指定するには DEFAULTPRECISION を、既定の小数点以下桁数を指定するには DEFAULTSCALE を使用できます。

返品

記述された列の番号を返します。 最初の列は列 1 です。 エラーが発生すると 0 を返します。

解説

srv_sendrow を初めて呼び出す前に、行内の各列に対して 1 回ずつ srv_describe 関数を呼び出しておく必要があります。 行内の列は任意の順で記述できます。

完全な結果セットの送信が完了する前に行内の各列のソース データの位置および長さを変更するには、それぞれ srv_setcoldatasrv_setcollen を使用します。

データ型と拡張ストア プロシージャ API のデータ型変換の詳細については、「データ型 (拡張ストアド プロシージャ API)」を参照してください

アプリケーションで使用する列名が Unicode である場合は、srv_describe を呼び出す前に、列名をサーバーのマルチバイト コード ページに変換する必要があります。 詳しくは、「Unicode データおよびサーバー コード ページ」をご覧ください。

重要

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

参照

srv_sendrow (拡張ストアド プロシージャ API)
srv_setutype (拡張ストアド プロシージャ API)
srv_setcoldata (拡張ストアド プロシージャ API)