次の方法で共有


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

適用対象: SQL サーバー

重要

この機能は、 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 の場合でも、データ型を指定する必要があります。詳細については、「 Data 型 (拡張ストアド プロシージャ 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 のデータ型変換の詳細については、「 Data 型 (拡張ストアド プロシージャ API)」を参照してください。

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

重要

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

参照

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