アプリケーション変数

C、C++、Basic、Java などのアプリケーション プログラミング言語では、変数にデータを保持します。変数はデータ値を保持できるストレージ領域です。各アプリケーション変数にはデータ型とサイズがあります。また、数値変数には、有効桁数 (変数が保持できる桁数) と小数点以下桁数 (小数点の右側に格納できる桁数) もあります。

アプリケーションが Transact-SQL ステートメントから返されたデータを使用するには、Transact-SQL データをアプリケーション変数に移動するメカニズムが必要です。データベース API では、Transact-SQL ステートメントの結果セット列、パラメータ、リターン コード、またはパラメータ マーカーをアプリケーション変数にバインドするという概念がサポートされます。

結果セット内のデータを取得するには、アプリケーションは次のようなプロセスを実行します。

  1. Transact-SQL ステートメントを実行します。

  2. データベース API 関数を呼び出して、結果セット内の列数を調べます。

  3. 結果セット列ごとに、次の操作を実行します。

    • 列の属性、データ型のサイズなどを返すデータベース API 関数を呼び出します。

    • アプリケーション変数に列の属性と互換性がある属性を割り当てます。

    • データベース API 関数を呼び出して、結果セット列をアプリケーション変数にバインド (マップ) します。

  4. データベース API 関数を使用して、結果セット行を一度に 1 行ずつフェッチします。結果セット行を 1 行フェッチするたびに、各結果セット列の値が、その列にバインドされたアプリケーション変数に格納されます。

アプリケーションによっては、このプロセスが変わることもあります。たとえば、既知のテーブルに対してハードコードされた Transact-SQL ステートメントを実行している場合、結果セット列の属性はあらかじめわかっているので、データベース API を呼び出してこれらの属性を取得する必要はありません。

アプリケーションで、関連付けられたデータベース オブジェクトのデータ型とは異なるデータ型のアプリケーション変数に結果セット列をバインドした場合は、OLE DB プロバイダまたは ODBC ドライバがデータを変換する必要があります。たとえば、アプリケーションが文字配列に money 型の列をバインドした場合は、OLE DB プロバイダまたは ODBC ドライバが money 型のデータを文字列に変換する必要があります。Microsoft OLE DB Provider for SQL Server および SQL Server ODBC ドライバがサポートするデータ型の変換は、それぞれのマニュアルに定義されています。

アプリケーションでのパラメータとリターン コードの取得の詳細については、「パラメータ マーカー (データベース エンジン)」を参照してください。

関連項目

概念