*** empty log message ***
[csql.git] / src / odbc / odbcError.h
blob160363d95dbfdd6c9ab19cb9bce47c2e9e920c07
1 #ifndef _ODBC_ERROR_H_
2 #define _ODBC_ERROR_H_
4 class CSqlOdbcError
6 CSqlOdbcError( void );
8 public:
9 // This object belongs to.
10 int hdlType;
12 // SQLAPI specific err code.
13 SQLINTEGER csqlErrCode;
15 // ODBC Methods
16 SQLRETURN SQLGetDiagRec(
17 SQLHANDLE hdl,
18 SQLCHAR *sqlState,
19 SQLINTEGER *csqlErrCode,
20 SQLCHAR *Msg,
21 SQLSMALLINT bufLen,
22 SQLSMALLINT *textLen);
24 // Other Methods
25 CSqlOdbcError( long hdlType );
26 void set( long err );
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
36 public:
37 int csqlErrCode;
38 SQLCHAR *sqlState;
39 SQLCHAR *sqlMessage;
40 } ErrorInfo_t;
42 // Native Error Codes
43 #define NO_ERR -0L
44 #define ERROR_GEN_WARN -1L
45 #define ERROR_GENERAL -2L
46 #define ERROR_OPTFEATURE_NOTIMP -3L
48 //Connection Related
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
60 //Transaction Related
61 #define ERROR_INVTRANSTATE -14L
62 #define ERROR_TRANROLLBACK -15L
64 //Statement Related
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
99 //Memory Related
100 #define ERROR_MEM_MGMNT -44L
101 #define ERROR_MEMALLOC -45L
103 //DBC Related
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
111 //CREAT TABLE
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") }
346 #endif