パラメーターの記述

SQLBindParameter には、パラメーターを記述する引数 (SQL 型、有効桁数、および小数点以下桁数) があります。 ドライバーは、この情報 メタデータ を使用して、パラメーター値をデータ ソースに必要な型に変換します。 一見すると、ドライバーは、アプリケーションよりもパラメーターメタデータを知っている方が良い位置にあるように見えるかもしれません。結局のところ、ドライバーは結果セット列のメタデータを簡単に検出できます。 結局のところ、これは当てはまるわけではありません。 まず、ほとんどのデータ ソースでは、ドライバーがパラメーター メタデータを検出する方法は提供されません。 第 2 に、ほとんどのアプリケーションはメタデータを既に認識しています。

SQL ステートメントがアプリケーションでハードコーディングされている場合、アプリケーション ライターは各パラメーターの型を既に認識しています。 SQL ステートメントが実行時にアプリケーションによって構築される場合、アプリケーションはステートメントをビルドする際にメタデータを決定できます。 たとえば、アプリケーションが句を構築する場合

WHERE OrderID = ?  

OrderID 列に対して SQLColumns を呼び出すことができます。

アプリケーションがパラメーター メタデータを簡単に特定できない唯一の状況は、ユーザーがパラメーター化されたステートメントを入力したときです。 この場合、アプリケーションは SQLPrepare を呼び出してステートメントを準備し、SQLNumParams を呼び出してパラメーターの数を決定し、SQLDescribeParam は各パラメーターを記述します。 ただし、前に説明したように、ほとんどのデータ ソースはドライバーがパラメーター メタデータを検出する方法を提供していないため、SQLDescribeParam は広くサポートされていません。