カタログ関数によって返されるデータ

各カタログ関数は、結果セットとしてデータを返します。 この結果セットは、他の結果セットと変わりません。 これは通常、ドライバーでハードコーディングされているか、データ ソースのプロシージャに格納されている、定義済みのパラメーター化された SELECT ステートメントによって生成されます。 結果セットからデータを取得する方法については、「結果セットが作成されましたか?」を参照してください。

各カタログ関数の結果セットは、その関数の参照エントリで説明されています。 一覧表示されている列に加えて、結果セットには、最後に定義済みの列の後にドライバー固有の列を含めることができます。 これらの列 (存在する場合) については、ドライバーのドキュメントで説明します。

アプリケーションでは、結果セットの末尾に対してドライバー固有の列をバインドする必要があります。 つまり、ドライバー固有の列の数は、SQLNumResultCols で取得された最後の列の数として計算する必要があります。必要な列の後に発生する列の数は少なくなります。 これにより、将来のバージョンの ODBC またはドライバーで新しい列が結果セットに追加されたときに、アプリケーションを変更する必要性が省けます。 このスキームを機能させるには、ドライバーが古いドライバー固有の列の前に新しいドライバー固有の列を追加して、結果セットの末尾に対して列番号が変更されないようにする必要があります。

結果セットで返される識別子は、特殊文字が含まれている場合でも引用符で囲まれません。 たとえば、識別子の引用符文字 (ドライバー固有で、SQLGetInfo を使用して返される) が二重引用符 (") であり、買掛金勘定テーブルに Customer Name という名前の列が含まれているとします。 この列の SQLColumns によって返される行では、TABLE_NAME 列の値は "買掛金勘定" ではなく買掛金勘定であり、COLUMN_NAME 列の値は "Customer Name" ではなく "Customer Name"です。 買掛金勘定テーブルの顧客の名前を取得するには、アプリケーションで次の名前を引用符で囲みます。

SELECT "Customer Name" FROM "Accounts Payable"  

詳細については、「引用符で囲まれた識別子」を参照してください。

カタログ関数は、SQL に似た承認モデルに基づいており、ユーザー名とパスワードに基づいて接続が行われ、ユーザーが特権を持つデータのみが返されます。 このモデルに適合しない個々のファイルのパスワード保護は、ドライバーによって定義されます。

カタログ関数によって返される結果セットはほとんど更新できません。アプリケーションでは、これらの結果セット内のデータを変更することによってデータベースの構造を変更することはできません。