既定の C データ型

アプリケーションで SQLBindColSQLGetData、または SQLBindParameter でSQL_C_DEFAULTが指定されている場合、ドライバーは、出力バッファーまたは入力バッファーの C データ型が、バッファーがバインドされている列またはパラメーターの SQL データ型に対応することを前提としています。

重要

相互運用可能なアプリケーションでは、SQL_C_DEFAULTを使用しないでください。 代わりに、使用しているバッファーの C 型を常に指定する必要があります。 これは、次の理由により、ドライバーが常に既定の C 型を正しく判断できないためです。

  • DBMS が列またはパラメーターの SQL データ型を昇格させる場合、ドライバーは列またはパラメーターの元の SQL データ型を判断できません。 そのため、対応する既定の C データ型を特定できません。

  • ドライバーが特定の列またはパラメーターに署名されているかどうかを判断できない場合(DBMS によって処理される場合が多い)、ドライバーは対応する既定の C データ型を署名するか署名しないかを判断できません。

    SQL_C_DEFAULTはプログラミングの便宜上のみ提供されるため、アプリケーションは実際の C データ型を指定しても機能を失いません。

各 SQL データ型の既定の C データ型を示す表は、この付録で後述 する「SQL から C データ型へのデータの変換」に含まれています。