次の方法で共有


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

ms164631.note(ja-jp,SQL.90).gif重要 :
この機能は、Microsoft 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 データおよびサーバー コード ページ」を参照してください。

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

参照

関連項目

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手