メタデータの使用方法

アプリケーションは、ほとんどの結果セット操作にメタデータを必要とします。 たとえば、列のデータ型を使用して、列にバインドされている変数の種類を判断します。 または、文字型の列のバイト長を使用して、その列のデータの表示に必要な領域サイズを判断します。 アプリケーションが列のメタデータを判断する方法は、アプリケーションの種類によって異なります。

業種特有のアプリケーションでは、定義済みのテーブルを使用して、これらのテーブルに対して定義済みの操作を実行します。 このようなアプリケーション用の結果セットのメタデータは、アプリケーションが作成される前に定義済みで、アプリケーション開発者が制御するので、アプリケーションにハードコーディングできます。 たとえば、データ ソース内で受注 ID 列が 4 バイト integer 型で定義されている場合、アプリケーションは常に 4 バイト integer をこの列にバインドできます。 メタデータがアプリケーション内でハードコーディングされている場合、アプリケーションが使用するテーブルへの変更は、通常、アプリケーション コードに対する変更になります。 このような変更は通常、アプリケーションの新しいリリースの一環として行われるため、これはほとんど問題ありません。

業種特有のアプリケーションのようなカスタム アプリケーションでは、通常、定義済みのテーブルを使用して、これらのテーブルに対して定義済みの操作を実行します。 たとえば、アプリケーションが 3 つの異なるデータ ソース間でデータを転送するように作成されている場合、通常はアプリケーションの作成時点で、転送されるデータのことが分かっています。 したがって、カスタム アプリケーションにもハードコーディングされたメタデータがある傾向があります。

汎用アプリケーション、特にアドホック クエリをサポートするアプリケーションでは、アプリケーションが作成する結果セットのメタデータはほぼ特定できません。 そのため、SQLNumResultColsSQLDescribeColSQLColAttribute 関数を使用して、実行時にメタデータを検出する必要があります。これらの関数については、次のセクション「SQLDescribeCol と SQLColAttribute」で説明します。

すべてのアプリケーションは、その種類を問わず、カタログ関数によって返される結果セットのメタデータをハードコーディングできます。 これらの結果セットは、このマニュアルのリファレンス セクションで定義されています。