仕様: | DB2 CLI 1.1 | ODBC 1.0 | ISO CLI |
SQLNumResultCols() は、入力ステートメント・ハンドルに関連した結果セット内の列数を戻します。
この関数を呼び出す前に、 SQLPrepare() または SQLExecDirect() を呼び出す必要があります。
この関数を呼び出した後、SQLColAttribute()、またはいずれかのバインド列関数を呼び出すことができます。
構文
SQLRETURN SQLNumResultCols (SQLHSTMT StatementHandle, /* hstmt */ SQLSMALLINT FAR *ColumnCountPtr); /* pccol */
関数引き数
データ・タイプ | 引き数 | 使用法 | 説明 |
---|---|---|---|
SQLHSTMT | StatementHandle | 入力 | ステートメント・ハンドル |
SQLSMALLINT * | ColumnCountPtr | 出力 | 結果セット内の列の数。 |
使用法
この関数は、入力ステートメント・ハンドルに関して実行された最後のステートメントまたは関数が結果セットを生成しなかった場合に、出力引き数をゼロに設定します。
戻りコード
診断
表 131. SQLNumResultCols SQLSTATE
SQLSTATE | 説明 | 解説 |
---|---|---|
40003 08S01 | 通信リンクに障害が起きました。 | アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。 |
58004 | 予期しないシステム障害です。 | 回復不能システム・エラー。 |
HY001 | メモリーの割り振り失敗です。 | DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。 |
HY008 | 操作が取り消しになりました。 |
非同期処理が StatementHandle に対して使用可能になりました。関数が呼び出され、その実行が完了する前に、 SQLCancel() が StatementHandle で呼び出されました。そして、関数が再び StatementHandle で呼び出されました。 関数が呼び出され、その実行が完了する前に、
SQLCancel() が複数スレッドのアプリケーション内の別のスレッドから、
StatementHandle で呼び出されました。
|
HY010 | 関数の順序エラーです。 | StatementHandle の SQLPrepare() または SQLExecDirect() を呼び出す前に、この関数を呼び出しました。
実行時データ (SQLParamData()、 SQLPutData()) 操作中に、関数が呼び出されました。
BEGIN COMPOUND と END COMPOUND SQL の操作中に、関数が呼び出されました。 |
HY013 | 予期しないメモリーのハンドル・エラーが起きました。 | DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。 |
HYT00 | タイムアウトになりました。 | データ・ソースが結果セットを返す前に、タイムアウト期間が満了しました。タイムアウトは、 Windows 3.1 や Macintosh System 7 のようなマルチタスクではないシステム上でのみサポートされています。タイムアウト期間は、 SQLSetConnectAttr() の SQL_ATTR_QUERY_TIMEOUT 属性を使用して設定することができます。 |
許可
なし。
(ここで完全サンプル utilcli.c を使用することもできます 。)
/* From the CLI sample utilcli.c */ /* ... */ /* identify the output columns */ sqlrc = SQLNumResultCols( hstmt, &nResultCols ) ; STMT_HANDLE_CHECK( hstmt, sqlrc);
参照