Specification: | DB2 CLI 1.1 | ODBC 1.0 | ISO CLI |
SQLNumResultCols() returns the number of columns in the result set associated with the input statement handle.
SQLPrepare() or SQLExecDirect() must be called before calling this function.
After calling this function, you can call SQLColAttribute(), or one of the bind column functions.
Syntax
SQLRETURN SQLNumResultCols (SQLHSTMT StatementHandle, /* hstmt */ SQLSMALLINT FAR *ColumnCountPtr); /* pccol */
Function Arguments
Table 130. SQLNumResultCols Arguments
Data Type | Argument | Use | Description |
---|---|---|---|
SQLHSTMT | StatementHandle | input | Statement handle |
SQLSMALLINT * | ColumnCountPtr | output | Number of columns in the result set |
Usage
The function sets the output argument to zero if the last statement or function executed on the input statement handle did not generate a result set.
Return Codes
Diagnostics
Table 131. SQLNumResultCols SQLSTATEs
SQLSTATE | Description | Explanation |
---|---|---|
40003 08S01 | Communication link failure. | The communication link between the application and data source failed before the function completed. |
58004 | Unexpected system failure. | Unrecoverable system error. |
HY001 | Memory allocation failure. | DB2 CLI is unable to allocate memory required to support execution or completion of the function. |
HY008 | Operation canceled. |
Asynchronous processing was enabled for the StatementHandle. The function was called and before it completed execution, SQLCancel() was called on the StatementHandle. Then the function was called again on the StatementHandle. The function was called and, before it completed execution,
SQLCancel() was called on the StatementHandle from a
different thread in a multithread application.
|
HY010 | Function sequence error. | The function was called prior to calling SQLPrepare() or
SQLExecDirect() for the StatementHandle.
The function was called while in a data-at-execute (SQLParamData(), SQLPutData()) operation. The function was called while within a BEGIN COMPOUND and END COMPOUND SQL operation. |
HY013 | Unexpected memory handling error. | DB2 CLI was unable to access memory required to support execution or completion of the function. |
HYT00 | Timeout expired. | The timeout period expired before the data source returned the result set. Timeouts are only supported on non-multitasking systems such as Windows 3.1 and Macintosh System 7. The timeout period can be set using the SQL_ATTR_QUERY_TIMEOUT attribute for SQLSetConnectAttr(). |
Authorization
None.
(The complete sample utilcli.c is also available here .)
/* From the CLI sample utilcli.c */ /* ... */ /* identify the output columns */ sqlrc = SQLNumResultCols( hstmt, &nResultCols ) ; STMT_HANDLE_CHECK( hstmt, sqlrc);
References