9 // This object belongs to.
12 // SQLAPI specific err code.
13 SQLINTEGER csqlErrCode
;
16 SQLRETURN
SQLGetDiagRec(
19 SQLINTEGER
*csqlErrCode
,
22 SQLSMALLINT
*textLen
);
25 CSqlOdbcError( long hdlType
);
27 SQLRETURN
printStr( SQLUINTEGER odbcVersion
);
28 // Print diagnostic info to 'stderr'
29 static void printDbg( char *msg
);
32 extern CSqlOdbcError globalError
;
34 typedef struct ErrorDetails
44 #define ERROR_GEN_WARN -1L
45 #define ERROR_GENERAL -2L
46 #define ERROR_OPTFEATURE_NOTIMP -3L
49 #define ERROR_HOSTNAME -4L
50 #define ERROR_PORTNO -5L
51 #define ERROR_CONNREJCTD -6L
52 #define ERROR_INVAUTHSPEC -7L
53 #define ERROR_CONN_TIMEOUT_EXP -8L
54 #define ERROR_DESTIP_REJ -9L
55 #define ERROR_SRCIP_REJ -10L
56 #define ERROR_CONNINUSE -11L
57 #define ERROR_CONNOTOPEN -12L
58 #define ERROR_NOTOPENED -13L
61 #define ERROR_INVTRANSTATE -14L
62 #define ERROR_TRANROLLBACK -15L
65 #define ERROR_SCHNOTFOUND -16L
66 #define ERROR_TBLNOTFOUND -17L
67 #define ERROR_NO_COLEXISTS -18L
68 #define ERROR_NO_IDXEXISTS -19L
70 #define ERROR_TBLEXISTS -20L
71 #define ERROR_COLEXISTS -21L
72 #define ERROR_IDXEXISTS -22L
74 #define ERROR_MANY_VALS -23L
75 #define ERROR_FEW_VALS -24L
76 #define ERROR_SQL_SYNTAX -25L
77 #define ERROR_TYPE_INCMP -26L
78 #define ERROR_DATA_FORMAT -27L
79 #define ERROR_DUP_COL -28L
81 #define ERROR_SQL_INT -29L
82 #define ERROR_OVERFLOW -30L
83 #define ERROR_UNDERFLOW -31L
84 #define ERROR_MANY_TUP -32L
85 #define ERROR_NUM_PROJ -33L
87 #define ERROR_DATATRUNC -34L
88 #define ERROR_BUFLEN -35L
89 #define ERROR_COLNUM -36L
90 #define ERROR_INVBUFTYPE -37L
91 #define ERROR_INV_PARAMTYPE -38L
92 #define ERROR_INVARGVAL -39L
94 #define ERROR_CURNAME -40L
95 #define ERROR_DUP_CURNAME -41L
96 #define ERROR_NOCURNAME -42L
97 #define ERROR_PARAMNUM -43L
100 #define ERROR_MEM_MGMNT -44L
101 #define ERROR_MEMALLOC -45L
104 #define ERROR_OPTRANGE -46L
105 #define ERROR_OPTCHANGE -47L
106 #define ERROR_FUNCSEQ -48L
107 #define ERROR_ATTR_CANNOT_SET -49L
108 #define ERROR_INVCURSTATE -50L
109 #define ERROR_NOT_PREPAREDSTMT -51L
112 #define ERROR_STORAGE_ATTR -53L
113 #define ERROR_FLDCNT_MISMATCH -54L
114 #define ERROR_MATCHKEY_NOTFOUND -55L
116 #define ERROR_ENDOFTABLE -56L
118 static ErrorInfo_t errorInfoTable_3x
[] =
120 { NO_ERR
, (SQLCHAR
*)("00000"), (SQLCHAR
*)("Success") },
122 { ERROR_GEN_WARN
,(SQLCHAR
*)("01000"),(SQLCHAR
*)("General Warning")},
124 { ERROR_GENERAL
,(SQLCHAR
*)("HY000"), (SQLCHAR
*)("General Error3") },
126 { ERROR_OPTFEATURE_NOTIMP
,(SQLCHAR
*)("HYC00"), (SQLCHAR
*)("Optional feature not implemented") },
128 { ERROR_HOSTNAME
,(SQLCHAR
*)("SC002"), (SQLCHAR
*)("Hostname must be specified") },
130 { ERROR_PORTNO
,(SQLCHAR
*)("SC003"), (SQLCHAR
*)("Port number must be specified") },
132 { ERROR_CONNREJCTD
, (SQLCHAR
*)("08006"), (SQLCHAR
*)("Server rejected the connection") },
134 { ERROR_INVAUTHSPEC
,(SQLCHAR
*)("28000"), (SQLCHAR
*)("Invalid authorization specification") },
136 { ERROR_CONN_TIMEOUT_EXP
,(SQLCHAR
*)("SC001"), (SQLCHAR
*)("Connection timeout expired") },
138 { ERROR_DESTIP_REJ
,(SQLCHAR
*)("08004"), (SQLCHAR
*)("IPFilter: Destination IP validation failed.") },
140 { ERROR_SRCIP_REJ
, (SQLCHAR
*)("08005"), (SQLCHAR
*)("IPFilter: Source IP validation failed.") },
142 { ERROR_CONNINUSE
,(SQLCHAR
*)("08001"), (SQLCHAR
*)("Connection name in use") },
144 { ERROR_CONNOTOPEN
,(SQLCHAR
*)("08003"), (SQLCHAR
*)("Connection does not exist") },
146 { ERROR_NOTOPENED
,(SQLCHAR
*)("08002"), (SQLCHAR
*)("Connection does not exist") },
148 { ERROR_INVTRANSTATE
,(SQLCHAR
*)("TR005"), (SQLCHAR
*)("Invalid transaction state") },
150 { ERROR_TRANROLLBACK
,(SQLCHAR
*)("25002"), (SQLCHAR
*)("Transaction is rolled back") },
152 { ERROR_SCHNOTFOUND
,(SQLCHAR
*)("3F000"), (SQLCHAR
*)("Schema not found.") },
154 { ERROR_TBLNOTFOUND
, (SQLCHAR
*)("42S02"), (SQLCHAR
*)("Base Table or view not found") },
156 { ERROR_NO_COLEXISTS
,(SQLCHAR
*)("42S22"), (SQLCHAR
*)("Column not found ") },
158 { ERROR_NO_IDXEXISTS
,(SQLCHAR
*)("42S12"), (SQLCHAR
*)("Index not found ") },
160 { ERROR_TBLEXISTS
,(SQLCHAR
*)("42S01"), (SQLCHAR
*)("Base Table or view already exists") },
162 { ERROR_COLEXISTS
,(SQLCHAR
*)("42S21"), (SQLCHAR
*)("Column already exists ") },
164 { ERROR_IDXEXISTS
,(SQLCHAR
*)("42S11"), (SQLCHAR
*)("Index already exists") },
166 { ERROR_MANY_VALS
,(SQLCHAR
*)("ST018"), (SQLCHAR
*)("Too many values supplied in insert statement") },
168 { ERROR_FEW_VALS
, (SQLCHAR
*)("ST019"), (SQLCHAR
*)("Too few values supplied in insert statement") },
170 { ERROR_SQL_SYNTAX
,(SQLCHAR
*)("ST026"), (SQLCHAR
*)("Syntax error.") },
172 { ERROR_TYPE_INCMP
,(SQLCHAR
*)("ST020"), (SQLCHAR
*)("In-Compatible column value") },
174 { ERROR_DATA_FORMAT
,(SQLCHAR
*)("ST021"), (SQLCHAR
*)("Invalid value/format") },
176 { ERROR_DUP_COL
,(SQLCHAR
*)("ST024"), (SQLCHAR
*)("Duplicate field names") },
178 { ERROR_SQL_INT
,(SQLCHAR
*)("ST025"), (SQLCHAR
*)("SQL internal error") },
180 { ERROR_OVERFLOW
,(SQLCHAR
*)("ST023"), (SQLCHAR
*)("Underflow error") },
182 { ERROR_UNDERFLOW
,(SQLCHAR
*)("ST022"), (SQLCHAR
*)("Overflow error") },
184 { ERROR_MANY_TUP
,(SQLCHAR
*)("ST027"), (SQLCHAR
*)("Sub query returns multiple rows") },
186 { ERROR_NUM_PROJ
,(SQLCHAR
*)("ST028"), (SQLCHAR
*)("Wrong number of projections from sub query") },
188 { ERROR_DATATRUNC
,(SQLCHAR
*)("01004"), (SQLCHAR
*)("String data,right truncated") },
190 { ERROR_BUFLEN
,(SQLCHAR
*)("HY090"), (SQLCHAR
*)("Invalid string or buffer length") },
192 { ERROR_COLNUM
,(SQLCHAR
*)("07009"), (SQLCHAR
*)("Invalid descriptor index") },
194 { ERROR_INVBUFTYPE
,(SQLCHAR
*)("HY003"), (SQLCHAR
*)("Invalid application buffer type") },
196 { ERROR_INV_PARAMTYPE
,(SQLCHAR
*)("HY105"), (SQLCHAR
*)("Invalid parameter type") },
198 { ERROR_INVARGVAL
,(SQLCHAR
*)("HY024"), (SQLCHAR
*)("Invalid attribute value") },
200 { ERROR_CURNAME
,(SQLCHAR
*)("34000"), (SQLCHAR
*)("Invalid cursor name") },
202 { ERROR_DUP_CURNAME
,(SQLCHAR
*)("3C000"), (SQLCHAR
*)("Duplicate cursor name") },
204 { ERROR_NOCURNAME
,(SQLCHAR
*)("HY015"), (SQLCHAR
*)("No cursor name available") },
206 { ERROR_PARAMNUM
,(SQLCHAR
*)("07009"), (SQLCHAR
*)("Invalid descriptor index") },
208 { ERROR_MEM_MGMNT
,(SQLCHAR
*)("HY013"), (SQLCHAR
*)("Memory management error ") },
210 { ERROR_MEMALLOC
, (SQLCHAR
*)("HY001"), (SQLCHAR
*)("Memory Allocation Failure") },
212 { ERROR_OPTRANGE
,(SQLCHAR
*)("HY092"), (SQLCHAR
*)("Invalid attribute /option identifier") },
214 { ERROR_OPTCHANGE
,(SQLCHAR
*)("01S02"), (SQLCHAR
*)("Option value changed")},
216 { ERROR_FUNCSEQ
,(SQLCHAR
*)("HY010"), (SQLCHAR
*)("Function Sequence Error") },
218 { ERROR_ATTR_CANNOT_SET
,(SQLCHAR
*)("HY011"), (SQLCHAR
*)("Attribute cannot be set now ") },
220 { ERROR_INVCURSTATE
,(SQLCHAR
*)("24000"), (SQLCHAR
*)("Invalid cursor state") },
222 { ERROR_NOT_PREPAREDSTMT
,(SQLCHAR
*)("HY007"), (SQLCHAR
*)("Associated statement is not prepared")},
224 { ERROR_STORAGE_ATTR
,(SQLCHAR
*)("ST029"), (SQLCHAR
*)("Error while parsing storage attribute")},
226 { ERROR_FLDCNT_MISMATCH
,(SQLCHAR
*)("ST030"), (SQLCHAR
*)("Error while creating RIC, specified in to-from table are different")},
228 { ERROR_ENDOFTABLE
,(SQLCHAR
*)("IM015"), (SQLCHAR
*)("End of table") }
231 static ErrorInfo_t errorInfoTable_2x
[] =
233 { NO_ERR
, (SQLCHAR
*)("00000"), (SQLCHAR
*)("Success") },
235 { ERROR_GEN_WARN
, (SQLCHAR
*)("01000"),(SQLCHAR
*)("General Warning")},
237 { ERROR_GENERAL
, (SQLCHAR
*)("S1000"), (SQLCHAR
*)("General Error") },
239 { ERROR_OPTFEATURE_NOTIMP
, (SQLCHAR
*)("S1C00"), (SQLCHAR
*)("Optional feature not implemented") },
241 { ERROR_HOSTNAME
, (SQLCHAR
*)("HY000"), (SQLCHAR
*)("Hostname must be specified") },
243 { ERROR_PORTNO
, (SQLCHAR
*)("HY000"), (SQLCHAR
*)("Port number must be specified") },
245 { ERROR_CONNREJCTD
, (SQLCHAR
*)("08004"), (SQLCHAR
*)("Data source rejected establishment of connection") },
247 { ERROR_INVAUTHSPEC
,(SQLCHAR
*)("28000"), (SQLCHAR
*)("Invalid authorization specification") },
249 { ERROR_CONN_TIMEOUT_EXP
,(SQLCHAR
*)("S1T01"), (SQLCHAR
*)("Connection timeout expired") },
251 { ERROR_DESTIP_REJ
,(SQLCHAR
*)("08004"), (SQLCHAR
*)("IPFilter: Destination IP validation failed.") },
253 { ERROR_SRCIP_REJ
, (SQLCHAR
*)("08005"), (SQLCHAR
*)("IPFilter: Source IP validation failed.") },
255 { ERROR_CONNINUSE
,(SQLCHAR
*)("08002"), (SQLCHAR
*)("Connection in use") },
257 { ERROR_CONNOTOPEN
,(SQLCHAR
*)("08003"), (SQLCHAR
*)("Connection not open") },
259 { ERROR_NOTOPENED
, (SQLCHAR
*)("08003"), (SQLCHAR
*)("Connection not open") },
261 { ERROR_INVTRANSTATE
,(SQLCHAR
*)("25000"), (SQLCHAR
*)("Invalid transaction state") },
263 { ERROR_TRANROLLBACK
,(SQLCHAR
*)("25S03"), (SQLCHAR
*)("Transaction is rolled back") },
265 { ERROR_SCHNOTFOUND
,(SQLCHAR
*)("3F000"), (SQLCHAR
*)("Schema not found.") },
267 { ERROR_TBLNOTFOUND
,(SQLCHAR
*)("S0002"), (SQLCHAR
*)("Base Table or view not found") },
269 { ERROR_NO_COLEXISTS
,(SQLCHAR
*)("S0022"), (SQLCHAR
*)("Column not found ") },
271 { ERROR_NO_IDXEXISTS
,(SQLCHAR
*)("42S12"), (SQLCHAR
*)("Index not found ") },
273 { ERROR_TBLEXISTS
,(SQLCHAR
*)("S0001"), (SQLCHAR
*)("Base Table or view already exists") },
275 { ERROR_COLEXISTS
,(SQLCHAR
*)("S0021"), (SQLCHAR
*)("Column already exists ") },
277 { ERROR_IDXEXISTS
,(SQLCHAR
*)("S0011"), (SQLCHAR
*)("Index already exists") },
279 { ERROR_MANY_VALS
,(SQLCHAR
*)("ST018"), (SQLCHAR
*)("Too many values supplied in insert statement") },
281 { ERROR_FEW_VALS
,(SQLCHAR
*)("ST019"), (SQLCHAR
*)("Too few values supplied in insert statement") },
283 { ERROR_SQL_SYNTAX
,(SQLCHAR
*)("ST026"), (SQLCHAR
*)("Syntax error.") },
285 { ERROR_TYPE_INCMP
,(SQLCHAR
*)("ST020"), (SQLCHAR
*)("In-Compatible column value") },
287 { ERROR_DATA_FORMAT
,(SQLCHAR
*)("ST021"), (SQLCHAR
*)("Invalid value/format") },
289 { ERROR_DUP_COL
,(SQLCHAR
*)("ST024"), (SQLCHAR
*)("Duplicate field names") },
291 { ERROR_SQL_INT
,(SQLCHAR
*)("ST025"), (SQLCHAR
*)("SQL internal error") },
293 { ERROR_OVERFLOW
,(SQLCHAR
*)("ST023"), (SQLCHAR
*)("Underflow error") },
295 { ERROR_UNDERFLOW
,(SQLCHAR
*)("ST022"), (SQLCHAR
*)("Overflow error") },
297 { ERROR_MANY_TUP
,(SQLCHAR
*)("ST027"), (SQLCHAR
*)("Sub query returns multiple rows") },
299 { ERROR_NUM_PROJ
,(SQLCHAR
*)("ST028"), (SQLCHAR
*)("Wrong number of projections from sub query") },
301 { ERROR_DATATRUNC
,(SQLCHAR
*)("01004"), (SQLCHAR
*)("String data,right truncated") },
303 { ERROR_BUFLEN
,(SQLCHAR
*)("S1090"), (SQLCHAR
*)("Invalid string or buffer length") },
305 { ERROR_COLNUM
, (SQLCHAR
*)("S1000"), (SQLCHAR
*)("Invalid column number") },
307 { ERROR_INVBUFTYPE
,(SQLCHAR
*)("S1003"), (SQLCHAR
*)("Invalid application buffer type") },
309 { ERROR_INV_PARAMTYPE
,(SQLCHAR
*)("S1105"), (SQLCHAR
*)("Invalid parameter type") },
311 { ERROR_INVARGVAL
,(SQLCHAR
*)("S1009"), (SQLCHAR
*)("Invalid argument value") },
313 { ERROR_CURNAME
,(SQLCHAR
*)("34000"), (SQLCHAR
*)("Invalid cursor name") },
315 { ERROR_DUP_CURNAME
,(SQLCHAR
*)("3C000"), (SQLCHAR
*)("Duplicate cursor name") },
317 { ERROR_NOCURNAME
,(SQLCHAR
*)("S1015"), (SQLCHAR
*)("No cursor name available") },
319 { ERROR_PARAMNUM
,(SQLCHAR
*)("S1093"), (SQLCHAR
*)("Invalid parameter number") },
321 { ERROR_MEM_MGMNT
,(SQLCHAR
*)("S1013"), (SQLCHAR
*)("Memory management error ") },
323 { ERROR_MEMALLOC
,(SQLCHAR
*)("S1001"), (SQLCHAR
*)("Memory Allocation Failure") },
325 { ERROR_OPTRANGE
,(SQLCHAR
*)("S1092"), (SQLCHAR
*)("Option type out of range") },
327 { ERROR_OPTCHANGE
,(SQLCHAR
*)("01S02"), (SQLCHAR
*)("Option value changed")},
329 { ERROR_FUNCSEQ
,(SQLCHAR
*)("S1010"), (SQLCHAR
*)("Function Sequence Error") },
331 { ERROR_ATTR_CANNOT_SET
,(SQLCHAR
*)("S1011"), (SQLCHAR
*)("Attribute cannot be set now ") },
333 { ERROR_INVCURSTATE
, (SQLCHAR
*)("24000"), (SQLCHAR
*)("Invalid cursor state") },
335 { ERROR_NOT_PREPAREDSTMT
, (SQLCHAR
*)("S1010"), (SQLCHAR
*)("Associated statement is not prepared")},
337 { ERROR_STORAGE_ATTR
,(SQLCHAR
*)("ST029"), (SQLCHAR
*)("Error while parsing storage attribute")},
339 { ERROR_FLDCNT_MISMATCH
,(SQLCHAR
*)("ST030"), (SQLCHAR
*)("Error while creating RIC, specified in to-from table are different")},
341 { ERROR_MATCHKEY_NOTFOUND
,(SQLCHAR
*) ("ST031"), (SQLCHAR
*) ("Referenced key is not Primary/Unique")},
343 { ERROR_ENDOFTABLE
,(SQLCHAR
*)("IM015"), (SQLCHAR
*)("End of table") }