00001
00034 #ifndef SQLDBC_TYPES_H
00035 #define SQLDBC_TYPES_H
00036
00037 #if (defined (AIX) && __IBMCPP__ < 500) || ( defined (SUN) && !defined(_BOOL) ) \
00038 || !defined (__cplusplus)
00039
00044 # define CPP_BOOL_NOT_IMPLEMENTED
00045 #endif
00046
00047 #ifdef CPP_BOOL_NOT_IMPLEMENTED
00048 #if defined(WIN32) || defined(AIX) || defined(LINUX) || defined(OSF1) \
00049 || defined(HPUX) || defined(NMP) || defined(SUN)
00050
00054 typedef unsigned char SQLDBC_Bool;
00059 typedef SQLDBC_Bool bool;
00060 #endif
00061 #else
00062 typedef bool SQLDBC_Bool;
00063 #endif
00064
00067 #define SQLDBC_TRUE ((SQLDBC_Bool)1)
00068
00070 #define SQLDBC_FALSE ((SQLDBC_Bool)0)
00071
00072 #if defined(_WIN64)
00073 typedef unsigned __int64 SQLDBC_ULong;
00074 typedef signed __int64 SQLDBC_Long;
00075 #else
00076
00080 typedef unsigned long SQLDBC_ULong;
00085 typedef signed long SQLDBC_Long;
00086 #endif
00087
00091 typedef unsigned char SQLDBC_Byte;
00092
00096 typedef SQLDBC_ULong SQLDBC_size_t;
00097
00101 typedef SQLDBC_Byte SQLDBC_UTF8;
00102
00105 typedef unsigned char SQLDBC_UInt1;
00108 typedef signed char SQLDBC_Int1;
00111 typedef unsigned short SQLDBC_UInt2;
00114 typedef signed short SQLDBC_Int2;
00117 typedef unsigned int SQLDBC_UInt4;
00120 typedef signed int SQLDBC_Int4;
00121
00122 #if defined(WIN32) || defined(_WIN64)
00123
00125 typedef unsigned __int64 SQLDBC_UInt8;
00128 typedef signed __int64 SQLDBC_Int8;
00129 #else
00130
00132 typedef unsigned long long SQLDBC_UInt8;
00135 typedef long long SQLDBC_Int8;
00136 #endif
00137
00138 #if defined(BIT64)
00139 typedef SQLDBC_Int8 SQLDBC_Length;
00140 #else
00141
00146 typedef SQLDBC_Int4 SQLDBC_Length;
00147 #endif
00148
00151 typedef unsigned int SQLDBC_UInt;
00152
00155 typedef signed int SQLDBC_Int;
00156
00160 #define SQLDBC_NULL_DATA (-1)
00161
00165 #define SQLDBC_DATA_AT_EXEC (-2)
00166
00170 #define SQLDBC_NTS (-3)
00171
00175 #define SQLDBC_NO_TOTAL (-4)
00176
00180 #define SQLDBC_DEFAULT_PARAM (-5)
00181
00185 #define SQLDBC_IGNORE (-6)
00186
00191 #define SQLDBC_LEN_DATA_AT_EXEC_OFFSET (-100)
00192
00198 #define SQLDBC_LEN_DATA_AT_EXEC(length) (-(length)+SQLDBC_LEN_DATA_AT_EXEC_OFFSET)
00199
00205 enum SQLDBC_Retcode {
00206 SQLDBC_INVALID_OBJECT =-1,
00207 SQLDBC_OK = 0,
00208 SQLDBC_NOT_OK = 1,
00209
00210 SQLDBC_DATA_TRUNC =2,
00211 SQLDBC_OVERFLOW =3,
00212 SQLDBC_SUCCESS_WITH_INFO =4,
00213 SQLDBC_NO_DATA_FOUND =100,
00214 SQLDBC_NEED_DATA =99
00215 };
00216
00222 enum SQLDBC_Rowstatus
00223 {
00224 SQLDBC_EXECUTE_FAILED = -2,
00225 SQLDBC_SUCCESS_NO_INFO = -3
00226
00227 };
00228
00229
00234 enum SQLDBC_SQLMode {
00235 SQLDBC_INTERNAL =2,
00236 SQLDBC_ANSI =3,
00237 SQLDBC_DB2 =4,
00238 SQLDBC_ORACLE =5
00239 };
00240
00241 class SQLDBC_StringEncodingType
00242 {
00243 public:
00244 enum Encoding {
00245 Unknown = 0,
00246 Ascii = 1,
00247 UCS2 = 2,
00248 UCS2Swapped = 3,
00249 UTF8 = 4
00250 };
00251 static Encoding UCS2Native;
00252 };
00253
00254 typedef SQLDBC_StringEncodingType::Encoding SQLDBC_StringEncoding;
00255
00260 #define SQLDBC_StringEncodingUnknown SQLDBC_StringEncodingType::Unknown
00261
00266 #define SQLDBC_StringEncodingAscii SQLDBC_StringEncodingType::Ascii
00267
00272 #define SQLDBC_StringEncodingUCS2 SQLDBC_StringEncodingType::UCS2
00273
00278 #define SQLDBC_StringEncodingUCS2Swapped SQLDBC_StringEncodingType::UCS2Swapped
00279
00284 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2Native
00285
00290 #define SQLDBC_StringEncodingUTF8 SQLDBC_StringEncodingType::UTF8
00291
00298 enum SQLDBC_SQLType {
00299 SQLDBC_SQLTYPE_MIN = 0,
00300 SQLDBC_SQLTYPE_FIXED = SQLDBC_SQLTYPE_MIN,
00301 SQLDBC_SQLTYPE_FLOAT = 1,
00302 SQLDBC_SQLTYPE_CHA = 2,
00303 SQLDBC_SQLTYPE_CHE = 3,
00304 SQLDBC_SQLTYPE_CHB = 4,
00305 SQLDBC_SQLTYPE_ROWID = 5,
00306 SQLDBC_SQLTYPE_STRA = 6,
00307 SQLDBC_SQLTYPE_STRE = 7,
00308 SQLDBC_SQLTYPE_STRB = 8,
00309 SQLDBC_SQLTYPE_STRDB = 9,
00310 SQLDBC_SQLTYPE_DATE = 10,
00311 SQLDBC_SQLTYPE_TIME = 11,
00312 SQLDBC_SQLTYPE_VFLOAT = 12,
00313 SQLDBC_SQLTYPE_TIMESTAMP = 13,
00314 SQLDBC_SQLTYPE_UNKNOWN = 14,
00315 SQLDBC_SQLTYPE_NUMBER = 15,
00316 SQLDBC_SQLTYPE_NONUMBER = 16,
00317 SQLDBC_SQLTYPE_DURATION = 17,
00318 SQLDBC_SQLTYPE_DBYTEEBCDIC = 18,
00319 SQLDBC_SQLTYPE_LONGA = 19,
00320 SQLDBC_SQLTYPE_LONGE = 20,
00321 SQLDBC_SQLTYPE_LONGB = 21,
00322 SQLDBC_SQLTYPE_LONGDB = 22,
00323 SQLDBC_SQLTYPE_BOOLEAN = 23,
00324 SQLDBC_SQLTYPE_UNICODE = 24,
00325 SQLDBC_SQLTYPE_DTFILLER1 = 25,
00326 SQLDBC_SQLTYPE_DTFILLER2 = 26,
00327 SQLDBC_SQLTYPE_DTFILLER3 = 27,
00328 SQLDBC_SQLTYPE_DTFILLER4 = 28,
00329 SQLDBC_SQLTYPE_SMALLINT = 29,
00330 SQLDBC_SQLTYPE_INTEGER = 30,
00331 SQLDBC_SQLTYPE_VARCHARA = 31,
00332 SQLDBC_SQLTYPE_VARCHARE = 32,
00333 SQLDBC_SQLTYPE_VARCHARB = 33,
00334 SQLDBC_SQLTYPE_STRUNI = 34,
00335 SQLDBC_SQLTYPE_LONGUNI = 35,
00336 SQLDBC_SQLTYPE_VARCHARUNI = 36,
00337 SQLDBC_SQLTYPE_UDT = 37,
00338 SQLDBC_SQLTYPE_ABAPTABHANDLE = 38,
00339 SQLDBC_SQLTYPE_DWYDE = 39,
00340 SQLDBC_SQLTYPE_MAX = SQLDBC_SQLTYPE_DWYDE
00341 };
00342
00346 enum SQLDBC_HostType {
00347 SQLDBC_HOSTTYPE_MIN = 0,
00348
00349 SQLDBC_HOSTTYPE_PARAMETER_NOTSET = 0,
00350
00351
00352 SQLDBC_HOSTTYPE_BINARY = 1,
00353
00354 SQLDBC_HOSTTYPE_ASCII = 2,
00355
00356 SQLDBC_HOSTTYPE_UTF8 = 4,
00357
00358 SQLDBC_HOSTTYPE_UINT1 = 5,
00359 SQLDBC_HOSTTYPE_INT1 = 6,
00360
00361 SQLDBC_HOSTTYPE_UINT2 = 7,
00362 SQLDBC_HOSTTYPE_INT2 = 8,
00363
00364 SQLDBC_HOSTTYPE_UINT4 = 9,
00365 SQLDBC_HOSTTYPE_INT4 = 10,
00366
00367 SQLDBC_HOSTTYPE_UINT8 = 11,
00368 SQLDBC_HOSTTYPE_INT8 = 12,
00369
00370 SQLDBC_HOSTTYPE_DOUBLE = 13,
00371 SQLDBC_HOSTTYPE_FLOAT = 14,
00372
00373 SQLDBC_HOSTTYPE_ODBCDATE = 15,
00374 SQLDBC_HOSTTYPE_ODBCTIME = 16,
00375 SQLDBC_HOSTTYPE_ODBCTIMESTAMP = 17,
00376
00377 SQLDBC_HOSTTYPE_ODBCNUMERIC = 18,
00378
00379 SQLDBC_HOSTTYPE_GUID = 19,
00380
00381 SQLDBC_HOSTTYPE_UCS2 = 20,
00382 SQLDBC_HOSTTYPE_UCS2_SWAPPED= 21,
00383
00384 #if defined(WIN32) || defined(LINUX) || defined(OSF1)
00385 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2_SWAPPED,
00386 #else
00387 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2,
00388 #endif
00389
00390 SQLDBC_HOSTTYPE_USERDEFINED = 100,
00391
00392 SQLDBC_HOSTTYPE_MAX = SQLDBC_HOSTTYPE_USERDEFINED
00393 };
00394
00398 enum SQLDBC_SQLWarningCode
00399 {
00400 SQLDBC_SQLWARNING_DATA_TRUNCATED = 1,
00401 SQLDBC_SQLWARNING_MAX
00402 };
00403
00404 struct SQLDBC_DateTimeFormat
00405 {
00409 enum Format {
00410 None_C = 0,
00411 Normal_C = 1,
00412 Iso_C = 2,
00413 Usa_C = 3,
00414 Eur_C = 4,
00415 Jis_C = 5,
00416 OracleDate_C = 6,
00417 WasAnsiNowIsSameAsIso_C = 7,
00418 TsEur_C = 8
00419 };
00420 };
00421
00422 #endif