SQLNumResultCols() - 結果列の数を取得する
SQLNumResultCols() は、入力ステートメント・ハンドルに関連した結果セットの列数を戻します。 SQLPrepare() または SQLExecDirect() は、
SQLNumResultCols() を呼び出す前に、呼び出す必要があります。 SQLNumResultCols() の呼び出し後、SQLColAttribute() またはバインド列関数の 1 つを呼び出せます。
SQLNumResultCols() の ODBC 仕様
| ODBC 仕様レベル | X/Open CLI CAE 仕様 | ISO CLI 仕様 |
|---|---|---|
| 1.0 | はい | はい |
構文
SQLRETURN SQLNumResultCols (SQLHSTMT hstmt,
SQLSMALLINT FAR *pccol);関数引数
次の表は、この関数のそれぞれの引数ごとに、 データ・タイプ、用途、および説明を示しています。
| データ・タイプ | 引数 | 使用 | 説明 |
|---|---|---|---|
| SQLHSTMT | hstmt | input | ステートメント・ハンドルを指定します。 |
| SQLSMALLINT * | pccol | 出力 | 結果セットの列の数を戻すバッファーを指します。 |
使用法
この関数を呼び出して、ステートメント・ハンドルに関連した SQL 結果セットに
必要な SQLBindCol() または SQLGetData() 呼び出し数を判別することができます。
この関数は、 入力ステートメント・ハンドルに関して実行された最後のステートメントまたは関数が結果セットを生成しなかった場合に、 出力引数をゼロに設定します。
戻りコード
SQLNumResultCols() は、呼び出された後、次のいずれかの値を戻します。- SQL_SUCCESS
- SQL_ERROR
- SQL_INVALID_HANDLE
診断
次の表は、この関数が生成する各 SQLSTATE 値ごとに、 その記述と説明を一覧で記載してあります。
| SQLSTATE | 説明 | 説明 |
|---|---|---|
| 08S01 | 通信リンク障害が発生しました。 | 関数が完了する前に、アプリケーションとデータ・ソース間の 通信リンクで障害が発生しました。 |
| 580 04 | 予想外のシステム障害が発生しました。 | リカバリー不能なシステム・エラーです。 |
| HY001 | メモリーの割り振りが失敗しました。 | DB2 ODBC は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。 |
| HY009 | NULL ポインターの使用が無効です。 | pccol が NULL ポインターです。 |
| HY010 | 関数のシーケンス・エラーです。 | 次の 1 つ以上の理由に該当した場合に、この SQLSTATE が戻されます。
|
| HY013 | 予期しない、メモリーのハンドル・エラーです。 | DB2 ODBC は、関数の実行または完了をサポートするのに必要なメモリーにアクセスすることができません。 |
例
関連例については、関数 SQLDescribeCol() を参照してください。