CLI の手引きおよび解説書

SQLNumResultCols - 結果列の数の入手

目的


仕様: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLNumResultCols() は、入力ステートメント・ハンドルに関連した結果セット内の列数を戻します。

この関数を呼び出す前に、 SQLPrepare() または SQLExecDirect() を呼び出す必要があります。

この関数を呼び出した後、SQLColAttribute()、またはいずれかのバインド列関数を呼び出すことができます。

構文

SQLRETURN   SQLNumResultCols (SQLHSTMT          StatementHandle,   /* hstmt */
                              SQLSMALLINT  FAR  *ColumnCountPtr);  /* pccol */

関数引き数

表 130. SQLNumResultCols 引き数
データ・タイプ 引き数 使用法 説明
SQLHSTMT StatementHandle 入力 ステートメント・ハンドル
SQLSMALLINT * ColumnCountPtr 出力 結果セット内の列の数。

使用法

この関数は、入力ステートメント・ハンドルに関して実行された最後のステートメントまたは関数が結果セットを生成しなかった場合に、出力引き数をゼロに設定します。

戻りコード

診断

表 131. SQLNumResultCols SQLSTATE
SQLSTATE 説明 解説
40003 08S01 通信リンクに障害が起きました。 アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。
58004 予期しないシステム障害です。 回復不能システム・エラー。
HY001 メモリーの割り振り失敗です。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。
HY008 操作が取り消しになりました。

非同期処理が StatementHandle に対して使用可能になりました。関数が呼び出され、その実行が完了する前に、 SQLCancel()StatementHandle で呼び出されました。そして、関数が再び StatementHandle で呼び出されました。

関数が呼び出され、その実行が完了する前に、 SQLCancel() が複数スレッドのアプリケーション内の別のスレッドから、 StatementHandle で呼び出されました。

HY010 関数の順序エラーです。 StatementHandleSQLPrepare() または SQLExecDirect() を呼び出す前に、この関数を呼び出しました。

実行時データ (SQLParamData()SQLPutData()) 操作中に、関数が呼び出されました。

BEGIN COMPOUND と END COMPOUND SQL の操作中に、関数が呼び出されました。

HY013 予期しないメモリーのハンドル・エラーが起きました。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。
HYT00 タイムアウトになりました。 データ・ソースが結果セットを返す前に、タイムアウト期間が満了しました。タイムアウトは、 Windows 3.1 や Macintosh System 7 のようなマルチタスクではないシステム上でのみサポートされています。タイムアウト期間は、 SQLSetConnectAttr() の SQL_ATTR_QUERY_TIMEOUT 属性を使用して設定することができます。

許可

なし。

CLI サンプル utilcli.c

(ここで完全サンプル utilcli.c を使用することもできます 。)

/* From the CLI sample utilcli.c */
/* ... */
    /* identify the output columns */    
    sqlrc = SQLNumResultCols( hstmt, &nResultCols ) ;
    STMT_HANDLE_CHECK( hstmt, sqlrc);
    
 

参照


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]