This appendix describes how an application using OpenAPI checks for and handles errors.
OpenAPI generates the following error codes.
The connection between the application and the server has been severed. A server error message also may be available.
The server aborted the current transaction. A server error message also may be available.
The application requested an operation that can be performed only when no transactions are active on the connection.
The application requested an operation that can be performed only when no queries are active on the connection.
The application requested an operation that can be performed only when no database event requests are active on the connection.
The application invoked a function that violated the OpenAPI order of processing.
The application attempted to close a query that had not yet completed processing. The application should cancel the query instead.
The application attempted to cancel a query that had completed processing. The application should close the query instead.
The query was cancelled by a call to IIapi_cancel().
Copy statement processing interrupted by the server.
The server was unable to commit the transaction.
The server was unable to prepare the distributed transaction to be committed. The transaction should be rolled back.
The specified query type requires parameters, but the application indicated that no parameters would be provided.
The server rejected a connection parameter or value.
IIapi_modifyConnect() was called with no prior calls to IIapi_setConnectParam().
The number of parameter or column values being sent or retrieved did not match what the OpenAPI expected.
A parameter value was not within the permissible range of values.
The ds_dataType or ds_columnType of at least one of the descriptor entries was invalid.
A required pointer parameter was NULL.
The repeat query being executed was no longer available to the server. The application should define and re-execute the repeat query.
The application attempted a transaction commit or rollback by using IIapi_query(). Use IIapi_commit() or IIapi_rollback() to manage transactions.
A cursor pre-fetch result row was received, but all OpenAPI buffers were filled with unread result rows. The row was discarded.
The column and row count parameters for IIapi_getColumns() only permitted the first segment of a BLOB column to be returned.
A disconnect request was made while the connection was already in the process of disconnecting.
BYREF procedure parameters are not supported at connection level IIAPI_LEVEL_0.
Global Temporary Table procedure parameters are not supported at connection level IIAPI_LEVEL_0.
The ds_length of at least one of the descriptor entries was invalid.
The ds_dataType of at least one of the descriptor entries, whose ds_columntType was IIAPI_COL_SVCPARM, was invalid.
The ds_dataType of at least one of the descriptor entries specified a type that is not supported below connection level IIAPI_LEVEL_1.
The ds_dataType of at least one of the descriptor entries specified a type that is not supported below connection level IIAPI_LEVEL_2.
The ds_dataType of at least one of the descriptor entries specified a type that is not supported below connection level IIAPI_LEVEL_3.
The ds_dataType of at least one of the descriptor entries specified a type that is not supported below connection level IIAPI_LEVEL_4.
OpenAPI- and server-generated errors are accompanied by an SQLSTATE value. SQLSTATE is a standard way to report SQL errors. The following table contains SQLSTATE values that may accompany an OpenAPI or server error:
SQLSTATE |
Value |
Description |
|---|---|---|
II_SS00000_SUCCESS |
00000 |
Success |
II_SS01000_WARNING |
01000 |
Warning |
II_SS02000_NO_DATA |
02000 |
No more data |
II_SS08004_CONNECTION_REJECTED |
08004 |
Connection rejected |
II_SS08006_CONNECTION_FAILURE |
08006 |
Connection failure |
II_SS0A500_INVALID_QRY_LANG |
0A500 |
Invalid query language |
II_SS21000_CARD_VIOLATION |
21000 |
Cardinality violation |
II_SS22000_DATA_EXCEPTION |
22000 |
Data exception |
II_SS22001_STRING_RIGHT_TRUNC |
22001 |
String data, right truncation |
II_SS22002_NULLVAL_NO_IND_PARAM |
22002 |
Null value, no indicator parameter |
II_SS22003_NUM VAL_OUT_OF_RANGE |
22003 |
Numeric value out of range |
II_SS22005_ASSIGNMENT_ERROR |
22005 |
Error in assignment |
II_SS22008_DATETIME_FLD_OVFLOW |
22008 |
Datetime field overflow |
II_SS22011_SUBSTRING_ERROR |
22011 |
Substring error |
II_SS22012_DIVISION_BY_ZERO |
22012 |
Division by zero |
II_SS22015_INTERNAL FLD_OVFLOW |
22015 |
Internal field overflow |
II_SS22022_INDICATOR_OVFLOW |
22022 |
Indicator overflow |
II_SS22500_INVALID_DATA_TYPE |
22500 |
Invalid data type |
II_SS23000_CONSTR_VIOLATION |
23000 |
Integrity constraint violation |
II_SS24000_INV_CURS_STATE |
24000 |
Invalid cursor state |
II_SS25000_INV_XACT_STATE |
25000 |
Invalid transaction state |
II_SS26000_INV_SQL_STMT_NAME |
26000 |
Invalid SQL statement name |
II_SS27000_TRIG_DATA_CHNG_ERR |
27000 |
Triggered data change violation |
II_SS28000_INV_AUTH_SPEC |
28000 |
Invalid authorization specification |
II_SS40001_SERIALIZATION_FAIL |
40001 |
Serialization failure |
II_SS42000_SYN_OR_ACCESSERR |
42000 |
Syntax error or access rule violation |
II_SS42500_TBL_NOT_FOUND |
42500 |
Table not found |
II_SS42501_COL_NOT_FOUND |
42501 |
Column not found |
II_SS42502_DUPL_OBJECT |
42502 |
Duplicate object |
II_SS42503_INSUF_PRIV |
42503 |
Insufficient privilege |
II_SS42504_UNKNOWN_CURSOR |
42504 |
Cursor not found |
II_SS42506_INVALID_IDENTIFIER |
42506 |
Invalid identifier |
II_SS50001_INVALID_DUP_ROW |
50001 |
Invalid duplicate row |
II_SS50002_LIMIT_EXCEEDED |
50002 |
Limit has been exceeded |
II_SS50003_EXHAUSTED_RESOURCE |
50003 |
Resource exhausted |
II_SS50004_SYS_CONFIG_ERROR |
50004 |
System configuration error |
II_SS50005_GW_ERROR |
50005 |
Gateway-related error |
II_SS50006_FATAL_ERROR |
50006 |
Fatal error |
II_SS50007_INVALID_SQL_STMT_ID |
50007 |
Invalid SQL statement ID |
II_SS50008_UNSUPPORTED_STMT |
50008 |
Unsupported statement |
II_SS50009_ERROR_RAISED_IN_DBPROC |
50009 |
Procedure error raised |
II_SS5000A_QUERY_ERROR |
5000A |
Query error |
II_SS5000B_INTERNAL ERROR |
5000B |
Internal error |
II_SS5000C_FETCH_ORIENTATION |
5000C |
Fetch orientation has value zero |
II_SS5000D_INVALID_CURSOR_NAME |
5000D |
Invalid cursor name |
II_SS5000E_DUP_STMT_ID |
5000E |
Duplicate SQL statement ID |
II_SS5000H_UNAVAILABLE_RESOURCE |
5000H |
Unknown or unavailable resource |
II_SS01001_CURS_OPER_CONFLICT |
01001 |
Cursor operation conflict |
II_SS01002_DISCONNECT_ERROR |
01002 |
Error during disconnect |
II_SS01003_NULL_ELIM_IN_SETFUNC |
01003 |
NULL eliminated in set() function |
II_SS01004_STRING_RIGHT_TRUNC |
01004 |
String data, right truncation |
II_SS01005_INSUF_DESCR_AREAS |
01005 |
Insufficient descriptor items |
II_SS01006_PRIV_NOT_REVOKED |
01006 |
Privilege not revoked |
II_SS01007_PRIV_NOT_GRANTED |
01007 |
Privilege not granted |
II_SS01008_IMP_ZERO_BIT_PADDING |
01008 |
Implicit zero-bit padding |
II_SS01009_SEARCH_COND_TOO_LONG |
01009 |
Search condition too long |
II_SS0100A_QRY_EXPR_TOO_LONG |
0100A |
Query expression too long |
II_SS01500_LDB_TBL_NOT_DROPPED |
01500 |
Star local database table not dropped |
II_SS01501_NO_WHERE_CLAUSE |
01501 |
No where clause: update, delete |
II_SS07000_DSQL_ERROR |
07000 |
Dynamic SQL error |
II_SS07001_USING_PARM_MISMATCH |
07001 |
Using clause/parameter mismatch |
II_SS07002_USING_TARG_MISMATCH |
07002 |
Using clause/target mismatch |
II_SS07003_CAN_EXEC_CURS_SPEC |
07003 |
Cannot execute cursor spec |
II_SS07004_NEED_USING_FOR_PARMS |
07004 |
Using clause required: params |
II_SS07005_STMT_NOT_CURS_SPEC |
07005 |
Prepared statement not cursor specification |
II_SS07006_RESTR_DT_ATTR_ERR |
07006 |
Restricted data type violation |
II_SS07007_NEED_USING_FOR_RES |
07007 |
Using clause required: result |
II_SS07008_INV_DESCR_CNT |
07008 |
Invalid descriptor count |
II_SS07009_INV_DESCR_IDX |
07009 |
Invalid descriptor index |
II_SS07500_CONTEXT_MISMATCH |
07500 |
Execution context not valid |
II_SS08000_CONNECTION_EXCEPTION |
08000 |
Connection error |
II_SS08001_CANT_GET_CONNECTION |
08001 |
Cannot establish connection |
II_SS08002_CONNECT_NAME_IN_USE |
08002 |
Connection name in use |
II_SS08003_NO_CONNECTION |
08003 |
Connection does not exist |
II_SS08007_XACT_RES_UNKNOWN |
08007 |
Transaction result unknown |
II_SS08500_LDB_UNAVAILABLE |
08500 |
Star local database unavailable |
II_SS0A000_FEATUR_NOT_SUPPORTED |
0A000 |
Feature not supported |
II_SS0A001_MULT_SERVER_XACTS |
0A001 |
Multiple server transactions |
II_SS22007_INV_DATETIME_FMT |
22007 |
Invalid datetime format |
II_SS22009_INV_TZ_DISPL_VAL |
22009 |
Invalid timezone displacement |
II_SS22018_INV_VAL_FOR_CAST |
22018 |
Invalid character value in cast |
II_SS22019_INV_ESCAPE_CHAR |
22019 |
Invalid escape character |
II_SS22021_CHAR_NOT_IN_RPRTR |
22021 |
Character not in set |
II_SS22023_INV_PARAM_VAL |
22023 |
Invalid parameter value |
II_SS22024_UNTERM_C_STRING |
22024 |
Unterminated string |
II_SS22025_INV_ESCAPE_SEQ |
22025 |
Invalid escape sequence |
II_SS22026_STRING_LEN_MISMATCH |
22026 |
String data, length mismatch |
II_SS22027_TRIM_ERROR |
22027 |
Error in trim() function |
II_SS2B000_DEP_PRIV_EXISTS |
2B000 |
Dependent privileges exist |
II_SS2C000_INV_CH_SET_NAME |
2C000 |
Invalid character set name |
II_SS2D000_INV_XACT_TERMINATION |
2D000 |
Invalid transaction termination |
II_SS2E000_INV_CONN_NAME |
2E000 |
Invalid connection name |
II_SS33000_INV_SQL_DESCR_NAME |
33000 |
Invalid descriptor name |
II_SS34000_INV_CURS_NAME |
34000 |
Invalid cursor name |
II_SS35000_INV_COND_NUM |
35000 |
Invalid condition number |
II_SS3C000_AMBIG_CURS_NAME |
3C000 |
Ambiguous cursor name |
II_SS3D000_INV_CAT_NAME |
3D000 |
Invalid catalog name |
II_SS3F000_INV_SCHEMA_NAME |
3F000 |
Invalid schema name |
II_SS40000_XACT_ROLLBACK |
40000 |
Transaction rollback |
II_SS40002_CONSTR_VIOLATION |
40002 |
Integrity constraint violation |
II_SS40003_STMT_COMPL_UNKNOWN |
40003 |
Statement results unknown |
II_SS42505_OBJ_NOT_FOUND |
42505 |
Object not found |
II_SS42507_RESERVED_IDENTIFIER |
42507 |
Reserved identifier |
II_SS44000_CHECK_OPTION_ERR |
44000 |
With check option violation |
II_SS50000_MISC_ING_ERRORS |
50000 |
Miscellaneous Ingres errors |
II_SS5000F_TEXTUAL_INFO |
5000F |
Textual information |
II_SS5000G_DBPROC_MESSAGE |
5000G |
Database procedure message |
II_SS5000I_UNEXP_LDB_SCHEMA_CHNG |
5000I |
Star local database schema change |
II_SS5000J_INCONSISTENT_DBMS_CAT |
5000J |
Inconsistent DBMS catalog |
II_SS5000K_SQLSTATE_UNAVAILABLE |
5000K |
SQLSTATE code unavailable |
II_SS5000L_PROTOCOL_ERROR |
5000L |
Protocol error |
II_SS5000M_IPC_ERROR |
5000M |
IPC error |
II_SS5000N_OPERAND_TYPE_MISMATCH |
5000N |
Operand type mismatch |
II_SS5000O_INVALID_FUNC_ARG_TYPE |
5000O |
Invalid function argument |
II_SS5000P_TIMEOUT_ON_LOCK_REQUEST |
5000P |
Lock request timeout |
II_SS5000Q_DB_REORG_INVALIDATED_QP |
5000Q |
Query plan invalidated |
II_SS5000R_RUN_TIME_LOGICAL_ERROR |
5000R |
Runtime logical error |
II_SSHZ000_RDA |
HZ000 |
Remote database access error |