IPD の自動作成

一部のドライバーでは、パラメーター化されたクエリの準備後に IPD のフィールドを設定できます。 記述子フィールドには、データ型、有効桁数、小数点以下の桁数、その他の特性など、パラメーターに関する情報が自動的に設定されます。 これは、SQLDescribeParam をサポートすることと同じです。 この情報は、アプリケーションが知らないパラメーターを使用してアドホック クエリを実行する場合など、アプリケーションで検出する他の方法がない場合に特に価値があります。

アプリケーションは、SQL_ATTR_AUTO_IPD の属性を使用して SQLGetConnectAttr を呼び出すことによって、ドライバーが自動作成をサポートするかどうかを決定します。 SQL_TRUE が返された場合、ドライバーはそれをサポートしており、アプリケーションは SQL_ATTR_ENABLE_AUTO_IPD ステートメント属性を SQL_TRUE に設定することでそれを有効にできます。

自動作成がサポートされ、有効になっている場合、パラメーター マーカーを含む SQL ステートメントが SQLPrepare の呼び出しによって準備された後、ドライバーによって IPD のフィールドが設定されます。 アプリケーションは、SQLGetDescFieldSQLGetDescRec、または SQLDescribeParam を呼び出すことによって、この情報を取得できます。 アプリケーションは、この情報を使用して、パラメーターに最適なアプリケーション バッファーをバインドしたり、パラメーターのデータ変換を指定したりすることができます。

IPD を自動作成すると、パフォーマンスが低下する可能性があります。 アプリケーションでは、SQL_ATTR_ENABLE_AUTO_IPD ステートメント属性を SQL_FALSE (既定値) にリセットすることで、この機能を無効にすることができます。