アプリケーション変数
C、C++、Basic、Java などのアプリケーション プログラミング言語では、変数にデータを保持します。変数はデータ値を保持できるストレージ領域です。各アプリケーション変数にはデータ型とサイズがあります。また、数値変数には、有効桁数 (変数が保持できる桁数) と小数点以下桁数 (小数点の右側に格納できる桁数) もあります。
アプリケーションが Transact-SQL ステートメントから返されたデータを使用するには、Transact-SQL データをアプリケーション変数に移動するメカニズムが必要です。データベース API では、Transact-SQL ステートメントの結果セット列、パラメータ、リターン コード、またはパラメータ マーカーをアプリケーション変数にバインドするという概念がサポートされます。
結果セット内のデータを取得するには、アプリケーションは次のようなプロセスを実行します。
Transact-SQL ステートメントを実行します。
データベース API 関数を呼び出して、結果セット内の列数を調べます。
結果セット列ごとに、次の操作を実行します。
列の属性、データ型のサイズなどを返すデータベース API 関数を呼び出します。
アプリケーション変数に列の属性と互換性がある属性を割り当てます。
データベース API 関数を呼び出して、結果セット列をアプリケーション変数にバインド (マップ) します。
データベース API 関数を使用して、結果セット行を一度に 1 行ずつフェッチします。結果セット行を 1 行フェッチするたびに、各結果セット列の値が、その列にバインドされたアプリケーション変数に格納されます。
アプリケーションによっては、このプロセスが変わることもあります。たとえば、既知のテーブルに対してハードコードされた Transact-SQL ステートメントを実行している場合、結果セット列の属性はあらかじめわかっているので、データベース API を呼び出してこれらの属性を取得する必要はありません。
アプリケーションで、関連付けられたデータベース オブジェクトのデータ型とは異なるデータ型のアプリケーション変数に結果セット列をバインドした場合は、OLE DB プロバイダまたは ODBC ドライバがデータを変換する必要があります。たとえば、アプリケーションが文字配列に money 型の列をバインドした場合は、OLE DB プロバイダまたは ODBC ドライバが money 型のデータを文字列に変換する必要があります。Microsoft OLE DB Provider for SQL Server および SQL Server ODBC ドライバがサポートするデータ型の変換は、それぞれのマニュアルに定義されています。
アプリケーションでのパラメータとリターン コードの取得の詳細については、「パラメータ マーカー (データベース エンジン)」を参照してください。