次の方法で共有


引数の値のチェック

ドライバー マネージャーは、次の種類の引数を確認します。 特に明記されていない限り、ドライバー マネージャーは引数値のエラーの SQL_ERROR を返します。

  • 通常、環境ハンドル、接続ハンドル、およびステートメント ハンドルを null ポインターにすることはできません。 ドライバー マネージャーは、null ハンドルが見つかると SQL_INVALID_HANDLE を返します。

  • SQLAllocHandleOutputHandlePtrSQLSetCursorNameCursorName など、必要なポインター引数を null ポインターにすることはできません。

  • ドライバー固有の値をサポートしていないオプション フラグは、有効な値である必要があります。 たとえば、SQLSetPos操作は、SQL_POSITION、SQL_REFRESH、SQL_UPDATE、SQL_DELETE、または SQL_ADD である必要があります。

  • オプション フラグは、ドライバーでサポートされている ODBC のバージョンでサポートされている必要があります。 たとえば、ODBC 2.0 ドライバーを呼び出すときに、SQLGetInfo の InfoType を (ODBC 3.0 で導入された) SQL_ASYNC_MODEすることはできません。

  • 関数に応じて、列番号とパラメーター番号は 0 以上または 0 以上である必要があります。 ドライバーは、現在の結果セットまたは SQL ステートメントに基づいて、これらの引数値の上限を確認する必要があります。

  • 長さ/インジケーターの引数とデータ バッファーの長さの引数には、適切な値を含める必要があります。 たとえば、SQLColumns (NameLength3) のテーブル名の長さを指定する引数は、SQL_NTSまたは 0 より大きい値である必要があります。SQLDescribeColBufferLength は 0 以上である必要があります。 ドライバーでは、これらの引数を確認する必要もあります。 たとえば、NameLength3 がデータ ソース内のテーブル名の最大長以下であることを確認できます。