| SQL adaptation guide For Genero db 3.6x, 3.8x / Data manipulation | |
This table shows the native Genero db errors and the corresponding Informix SQL error returned in SQLCA.SQLCODE:
Genero db SQLCA.SQLERRD[2]  | 
Informix SQLCA.SQLCODE  | 
Error description (SQLERRMESSAGE)  | 
|---|---|---|
| -1 | -201 | syntax error | 
| -3 | -206 | table not found | 
| -4 | -201 | syntax error | 
| -6 | -217 | column not found | 
| -17 | -743 | object exists | 
| -24 | -201 | syntax error | 
| -35 | -236 | cols/vals mismatch | 
| -10014 | -213 | SQL interrupted | 
| -30004 | -263 | Cannot wait on another session. | 
| -30005 | -213 | SQL interrupted | 
| -60001 | -268 | Uniqueness constraint violation. | 
| -80002 | -387 | no connect permission | 
Here is the list of known errors the Genero db database driver can return:
| SQLCA.SQLERRD[2] | SQLERRMESSAGE | Reason | 
|---|---|---|
| -213 | Query canceled | Long running query interrupted by user | 
| -254 | Too many or too few host variables given. |   PREPARE s FROM "insert into t values (?,?)" EXECUTE s USING x,y,z (z is too many)  | 
| -255 | Not in transaction. | OPEN insert cursor without BEGIN WORK | 
| -284 | A subquery has not returned exactly one row. | SELECT * INTO ... FROM tab, returns more than one row | 
| -400 | Fetch attempted on unopened cursor. | FETCH on cursor not opened | 
| -404 | The cursor or statement is not available. | OPEN cursor after a FREE | 
| -410 | Prepare statement failed or was not executed. | EXECUTE a statement where PREPARE has failed | 
| -413 | Insert attempted on unopened cursor. | PUT on insert cursor not opened | 
| -481 | Invalid statement name or statement was not prepared. | EXECUTE a statement without PREPARE | 
| -482 | Invalid operation on a non-SCROLL cursor. | FETCH LAST/PREV/... on non SCROLL cursor | 
| -526 | Updates are not allowed on a scroll cursor. | SELECT FOR UPDATE with SCROLL cursor | 
| -535 | Already in transaction. | BEGIN WORK x2 | 
| -6370 | Unsupported SQL feature. | CREATE DATABASE, SET CONNECTION DORMANT, CREATE PROCEDURE FROM, DATABASE IN EXCLUSIVE MODE, CONNECT TO @server, ... | 
When this SQL error occurs, you can check the native SQL error in the SQLCA.SQLERRD[2] register.
When this SQL error occurs, you should set the FGLSQLDEBUG environment variable to get more details about the internal error.
MAIN
 WHENEVER ERROR CONTINUE
 CONNECT TO dsn_connectstring  IF STATUS <> 0 THEN
    DISPLAY "ERROR: Connection to the database failed."
    DISPLAY SQLCA.SQLCODE, ": ",
            SQLCA.SQLERRD[2], "-", 
            SQLERRMESSAGE
    EXIT PROGRAM 1
 END IF
 WHENEVER ERROR STOP
END MAIN