SQLNumParams() - SQL ステートメントのパラメーター数を取得する

SQLNumParams() は、SQL ステートメントにおけるパラメーター・マーカーの数を戻します。

SQLNumParams() の ODBC 仕様

表 1. SQLNumParams() 仕様
ODBC 仕様レベル X/Open CLI CAE 仕様 ISO CLI 仕様
1.0 いいえ いいえ

構文

SQLRETURN   SQLNumParams     (SQLHSTMT          hstmt,
                              SQLSMALLINT  FAR  *pcpar);

関数引数

次の表は、この関数のそれぞれの引数ごとに、 データ・タイプ、用途、および説明を示しています。

表 2. SQLNumParams() 引数
データ・タイプ 引数 使用 説明
SQLHSTMT hstmt input ステートメント・ハンドルを指定します。
SQLSMALLINT * pcpar 出力 ステートメントにおけるパラメーターの個数を戻すバッファーを指します。

使用法

この関数を呼び出して、あるステートメント・ハンドルに関連した SQL ステートメントに必要な SQLBindParameter() 呼び出し数を判別することができます。

この関数は、引数 hstmt に関連したステートメントを準備した後でのみ、 呼び出すことができます。 ステートメントにパラメーター・マーカーが何も含まれていない場合は、 引数 pcpar が指すバッファーは 0 に設定されます。

戻りコード

SQLNumParams() は、呼び出された後、次のいずれかの値を戻します。
  • SQL_SUCCESS
  • SQL_ERROR
  • SQL_INVALID_HANDLE

診断

次の表は、この関数が生成する各 SQLSTATE 値ごとに、 その記述と説明を一覧で記載してあります。

表 3. SQLNumParams() SQLSTATE
SQLSTATE 説明 説明
08S01 通信リンク障害が発生しました。 関数が完了する前に、アプリケーションとデータ・ソース間の 通信リンクで障害が発生しました。
HY001 メモリーの割り振りが失敗しました。 DB2 ODBC は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。
HY009 NULL ポインターの使用が無効です。 引数 pcpar が NULL ポインターを指定しています。
HY010 関数のシーケンス・エラーです。 次の 1 つ以上の理由に該当した場合に、この SQLSTATE が戻されます。
  • SQLNumParams() SQLPrepare() の前に呼び出され、 hstmt 引数で参照されるステートメント。
  • SQLNumParams() が実行時データの操作の際に呼び出されました。 (すなわち、SQLParamData() または SQLPutData() 関数を使用するプロシージャー実行中に関数が呼び出されました。)
HY013 予期しない、メモリーのハンドル・エラーです。 DB2 ODBC は、関数の実行または完了をサポートするのに必要なメモリーにアクセスすることができません。

変換されたベンダー・エスケープ文節を印刷するアプリケーションについての関連例については、関数 SQLNativeSql() を参照してください。