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_setcoldata と srv_setcollen を使用します。
データ型と拡張ストア プロシージャ API のデータ型変換の詳細については、「 Data 型 (拡張ストアド プロシージャ API)」を参照してください。
アプリケーションで使用する列名が Unicode である場合は、srv_describe を呼び出す前に、列名をサーバーのマルチバイト コード ページに変換する必要があります。 詳しくは、「Unicode データおよびサーバー コード ページ」をご覧ください。
重要
拡張ストアド プロシージャのソース コードを十分に確認し、コンパイル済み DLL を、運用サーバーにインストールする前にテストする必要があります。 セキュリティの確認およびテストについて詳しくは、Microsoft の Web サイトをご覧ください。
参照
srv_sendrow (拡張ストアド プロシージャ API)
srv_setutype (拡張ストアド プロシージャ API)
srv_setcoldata (拡張ストアド プロシージャ API)