00001
00031 #ifndef SQLDBC_TYPES_H
00032 #define SQLDBC_TYPES_H
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #if defined(_WIN32) && !defined(WIN32)
00049 #define WIN32
00050 #endif
00051
00052 #if defined(_AIX) && !defined(AIX)
00053 #define AIX 1
00054 #endif
00055
00056 #if defined(__linux__) && !defined(LINUX)
00057 #define LINUX 1
00058 #endif
00059
00060 #if defined(__osf__) && !defined(OSF1)
00061 #define OSF1 1
00062 # if !defined(BIT64)
00063 # define BIT64 1
00064 # endif
00065 #endif
00066
00067 #if (defined(sun) || defined(__sun)) && !defined(SUN)
00068 #define SUN 1
00069 #endif
00070
00071 #if defined(__hpux) && !defined(HPUX)
00072 #define HPUX 1
00073 #endif
00074
00075 #if defined(sinix) && !defined(NMP)
00076 # define NMP
00077 #endif
00078
00079 #if defined(__linux__) && defined(__ia64__)
00080 # if !defined(IA64)
00081 # define IA64 1
00082 # endif
00083 # if !defined(BIT64)
00084 # define BIT64 1
00085 # endif
00086 #endif
00087
00088 #if defined(__linux__) && defined(__s390x__)
00089 # if !defined(BIT64)
00090 # define BIT64 1
00091 # endif
00092 #endif
00093
00094 #if defined(__linux__) && defined(__x86_64__)
00095 # if !defined(BIT64)
00096 # define BIT64 1
00097 # endif
00098 #endif
00099
00100 #if defined(__linux__) && defined(__powerpc__)
00101 # if !defined(BIT64)
00102 # define BIT64 1
00103 # endif
00104 #endif
00105
00106 #if defined(_WIN64)
00107 # if !defined(BIT64)
00108 # define BIT64 1
00109 # endif
00110 # if !defined(IA64)
00111 # define IA64 1
00112 # endif
00113 #endif
00114
00115 #if defined(AIX) && defined(__64BIT__) && !defined(BIT64)
00116 # define BIT64 1
00117 #endif
00118
00119 #if defined(SUN) && (defined(_LP64) || defined(__sparcv9)) && !defined(BIT64)
00120 # define BIT64 1
00121 #endif
00122
00123 #if (defined(HPUX)||defined(NMP)) && defined(__LP64__) && !defined(BIT64)
00124 # define BIT64 1
00125 #endif
00126
00127 #if (!defined(WIN32) && !defined(AIX) && !defined(OSF1) && !defined(HPUX) && !defined(SUN) && !defined(LINUX) && !defined(NMP))
00128 #error Unknown platform.
00129 #endif
00130
00131 #if (defined (AIX) && __IBMCPP__ < 500) || ( defined (SUN) && !defined(_BOOL) ) \
00132 || !defined (__cplusplus)
00133
00138 # define CPP_BOOL_NOT_IMPLEMENTED
00139 #endif
00140
00141 #ifdef CPP_BOOL_NOT_IMPLEMENTED
00142 #if defined(WIN32) || defined(AIX) || defined(LINUX) || defined(OSF1) \
00143 || defined(HPUX) || defined(NMP) || defined(SUN)
00144
00148 typedef unsigned char SQLDBC_Bool;
00153 typedef SQLDBC_Bool bool;
00154 #endif
00155 #else
00156 typedef bool SQLDBC_Bool;
00157 #endif
00158
00161 #define SQLDBC_TRUE ((SQLDBC_Bool)1)
00162
00164 #define SQLDBC_FALSE ((SQLDBC_Bool)0)
00165
00166 #if defined(_WIN64)
00167 typedef unsigned __int64 SQLDBC_ULong;
00168 typedef signed __int64 SQLDBC_Long;
00169 #else
00170
00174 typedef unsigned long SQLDBC_ULong;
00179 typedef signed long SQLDBC_Long;
00180 #endif
00181
00185 typedef unsigned char SQLDBC_Byte;
00186
00190 typedef SQLDBC_ULong SQLDBC_size_t;
00191
00195 typedef SQLDBC_Byte SQLDBC_UTF8;
00196
00199 typedef unsigned char SQLDBC_UInt1;
00202 typedef signed char SQLDBC_Int1;
00205 typedef unsigned short SQLDBC_UInt2;
00208 typedef signed short SQLDBC_Int2;
00211 typedef unsigned int SQLDBC_UInt4;
00214 typedef signed int SQLDBC_Int4;
00215
00216 #if defined(WIN32) || defined(_WIN64)
00217
00219 typedef unsigned __int64 SQLDBC_UInt8;
00222 typedef signed __int64 SQLDBC_Int8;
00223 #else
00224
00226 typedef unsigned long long SQLDBC_UInt8;
00229 typedef long long SQLDBC_Int8;
00230 #endif
00231
00232 #if defined(BIT64)
00233 typedef SQLDBC_Int8 SQLDBC_Length;
00234 #else
00235
00240 typedef SQLDBC_Int4 SQLDBC_Length;
00241 #endif
00242
00245 typedef unsigned int SQLDBC_UInt;
00246
00249 typedef signed int SQLDBC_Int;
00250
00254 #define SQLDBC_NULL_DATA (-1)
00255
00259 #define SQLDBC_DATA_AT_EXEC (-2)
00260
00264 #define SQLDBC_NTS (-3)
00265
00269 #define SQLDBC_NO_TOTAL (-4)
00270
00274 #define SQLDBC_DEFAULT_PARAM (-5)
00275
00279 #define SQLDBC_IGNORE (-6)
00280
00285 #define SQLDBC_LEN_DATA_AT_EXEC_OFFSET (-100)
00286
00292 #define SQLDBC_LEN_DATA_AT_EXEC(length) (-(length)+SQLDBC_LEN_DATA_AT_EXEC_OFFSET)
00293
00299 #ifndef __cplusplus
00300 typedef
00301 #endif
00302 enum SQLDBC_Retcode {
00303 SQLDBC_INVALID_OBJECT =-10909,
00304 SQLDBC_OK = 0,
00305 SQLDBC_NOT_OK = 1,
00307 SQLDBC_DATA_TRUNC =2,
00308 SQLDBC_OVERFLOW =3,
00309 SQLDBC_SUCCESS_WITH_INFO =4,
00310 SQLDBC_NO_DATA_FOUND =100,
00311 SQLDBC_NEED_DATA =99
00312 }
00313 #ifndef __cplusplus
00314 SQLDBC_Retcode
00315 #endif
00316 ;
00317
00324 #ifndef __cplusplus
00325 typedef
00326 #endif
00327 enum SQLDBC_Rowstatus
00328 {
00329 SQLDBC_EXECUTE_FAILED = -2,
00330 SQLDBC_SUCCESS_NO_INFO = -3,
00332 SQLDBC_DELETED = -4,
00333 SQLDBC_UPDATED = -5,
00334 SQLDBC_NOROW = -6,
00335 SQLDBC_ADDED = -7
00336 }
00337 #ifndef __cplusplus
00338 SQLDBC_Rowstatus
00339 #endif
00340 ;
00341
00342
00347 #ifndef __cplusplus
00348 typedef
00349 #endif
00350 enum SQLDBC_SQLMode {
00351 SQLDBC_INTERNAL =2,
00352 SQLDBC_ANSI =3,
00353 SQLDBC_DB2 =4,
00354 SQLDBC_ORACLE =5,
00355 SQLDBC_SAPR3 =6
00356 }
00357 #ifndef __cplusplus
00358 SQLDBC_SQLMode
00359 #endif
00360 ;
00361
00362 #ifdef __cplusplus
00363 class SQLDBC_StringEncodingType
00364 {
00365 public:
00366 enum Encoding {
00367 Unknown = 0,
00368 Ascii = 1,
00369 UCS2 = 2,
00370 UCS2Swapped = 3,
00371 UTF8 = 4
00372 };
00373 };
00374 typedef SQLDBC_StringEncodingType::Encoding SQLDBC_StringEncoding;
00375 #endif
00376 typedef enum SQLDBC_StringEncodingType_Encoding
00377 {
00378 SQLDBC_StringEncodingType_Encoding_Unknown = 0,
00379 SQLDBC_StringEncodingType_Encoding_Ascii = 1,
00380 SQLDBC_StringEncodingType_Encoding_UCS2 = 2,
00381 SQLDBC_StringEncodingType_Encoding_UCS2Swapped = 3,
00382 SQLDBC_StringEncodingType_Encoding_UTF8 = 4
00383 }SQLDBC_StringEncodingType_Encoding;
00384
00389 #define SQLDBC_StringEncodingUnknown SQLDBC_StringEncodingType::Unknown
00390
00395 #define SQLDBC_StringEncodingAscii SQLDBC_StringEncodingType::Ascii
00396
00401 #define SQLDBC_StringEncodingUCS2 SQLDBC_StringEncodingType::UCS2
00402
00407 #define SQLDBC_StringEncodingUCS2Swapped SQLDBC_StringEncodingType::UCS2Swapped
00408
00413 #if defined(WIN32) || (defined(LINUX) && !defined(SDBonPPC64) && !defined(S390X)) || defined(OSF1)
00414 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2Swapped
00415 #else
00416 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2
00417 #endif
00418
00423 #define SQLDBC_StringEncodingUTF8 SQLDBC_StringEncodingType::UTF8
00424
00430 #ifndef __cplusplus
00431 typedef
00432 #endif
00433 enum SQLDBC_SQLType {
00434 SQLDBC_SQLTYPE_MIN = 0,
00435 SQLDBC_SQLTYPE_FIXED = SQLDBC_SQLTYPE_MIN,
00436 SQLDBC_SQLTYPE_FLOAT = 1,
00437 SQLDBC_SQLTYPE_CHA = 2,
00438 SQLDBC_SQLTYPE_CHE = 3,
00439 SQLDBC_SQLTYPE_CHB = 4,
00440 SQLDBC_SQLTYPE_ROWID = 5,
00441 SQLDBC_SQLTYPE_STRA = 6,
00442 SQLDBC_SQLTYPE_STRE = 7,
00443 SQLDBC_SQLTYPE_STRB = 8,
00444 SQLDBC_SQLTYPE_STRDB = 9,
00445 SQLDBC_SQLTYPE_DATE = 10,
00446 SQLDBC_SQLTYPE_TIME = 11,
00447 SQLDBC_SQLTYPE_VFLOAT = 12,
00448 SQLDBC_SQLTYPE_TIMESTAMP = 13,
00449 SQLDBC_SQLTYPE_UNKNOWN = 14,
00450 SQLDBC_SQLTYPE_NUMBER = 15,
00451 SQLDBC_SQLTYPE_NONUMBER = 16,
00452 SQLDBC_SQLTYPE_DURATION = 17,
00453 SQLDBC_SQLTYPE_DBYTEEBCDIC = 18,
00454 SQLDBC_SQLTYPE_LONGA = 19,
00455 SQLDBC_SQLTYPE_LONGE = 20,
00456 SQLDBC_SQLTYPE_LONGB = 21,
00457 SQLDBC_SQLTYPE_LONGDB = 22,
00458 SQLDBC_SQLTYPE_BOOLEAN = 23,
00459 SQLDBC_SQLTYPE_UNICODE = 24,
00460 SQLDBC_SQLTYPE_DTFILLER1 = 25,
00461 SQLDBC_SQLTYPE_DTFILLER2 = 26,
00462 SQLDBC_SQLTYPE_DTFILLER3 = 27,
00463 SQLDBC_SQLTYPE_DTFILLER4 = 28,
00464 SQLDBC_SQLTYPE_SMALLINT = 29,
00465 SQLDBC_SQLTYPE_INTEGER = 30,
00466 SQLDBC_SQLTYPE_VARCHARA = 31,
00467 SQLDBC_SQLTYPE_VARCHARE = 32,
00468 SQLDBC_SQLTYPE_VARCHARB = 33,
00469 SQLDBC_SQLTYPE_STRUNI = 34,
00470 SQLDBC_SQLTYPE_LONGUNI = 35,
00471 SQLDBC_SQLTYPE_VARCHARUNI = 36,
00472 SQLDBC_SQLTYPE_UDT = 37,
00473 SQLDBC_SQLTYPE_ABAPTABHANDLE = 38,
00474 SQLDBC_SQLTYPE_DWYDE = 39,
00475 SQLDBC_SQLTYPE_MAX = SQLDBC_SQLTYPE_DWYDE
00476 }
00477 #ifndef __cplusplus
00478 SQLDBC_SQLType
00479 #endif
00480 ;
00481
00486 #ifndef __cplusplus
00487 typedef
00488 #endif
00489 enum SQLDBC_HostType {
00490 SQLDBC_HOSTTYPE_MIN = 0,
00492 SQLDBC_HOSTTYPE_PARAMETER_NOTSET = 0,
00495 SQLDBC_HOSTTYPE_BINARY = 1,
00497 SQLDBC_HOSTTYPE_ASCII = 2,
00499 SQLDBC_HOSTTYPE_UTF8 = 4,
00501 SQLDBC_HOSTTYPE_UINT1 = 5,
00502 SQLDBC_HOSTTYPE_INT1 = 6,
00504 SQLDBC_HOSTTYPE_UINT2 = 7,
00505 SQLDBC_HOSTTYPE_INT2 = 8,
00507 SQLDBC_HOSTTYPE_UINT4 = 9,
00508 SQLDBC_HOSTTYPE_INT4 = 10,
00510 SQLDBC_HOSTTYPE_UINT8 = 11,
00511 SQLDBC_HOSTTYPE_INT8 = 12,
00513 SQLDBC_HOSTTYPE_DOUBLE = 13,
00514 SQLDBC_HOSTTYPE_FLOAT = 14,
00516 SQLDBC_HOSTTYPE_ODBCDATE = 15,
00517 SQLDBC_HOSTTYPE_ODBCTIME = 16,
00518 SQLDBC_HOSTTYPE_ODBCTIMESTAMP = 17,
00520 SQLDBC_HOSTTYPE_ODBCNUMERIC = 18,
00522 SQLDBC_HOSTTYPE_GUID = 19,
00524 SQLDBC_HOSTTYPE_UCS2 = 20,
00525 SQLDBC_HOSTTYPE_UCS2_SWAPPED= 21,
00527 #if defined(WIN32) || (defined(LINUX) && !defined(SDBonPPC64) && !defined(S390X)) || defined(OSF1)
00528 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2_SWAPPED,
00529 #else
00530 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2,
00531 #endif
00532 SQLDBC_HOSTTYPE_BLOB = 22,
00533 SQLDBC_HOSTTYPE_ASCII_CLOB = 23,
00534 SQLDBC_HOSTTYPE_UTF8_CLOB = 24,
00535 SQLDBC_HOSTTYPE_UCS2_CLOB = 25,
00536 SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB = 26,
00537 #if defined(WIN32) || (defined(LINUX) && !defined(SDBonPPC64) && !defined(S390X)) || defined(OSF1)
00538 SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB = SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB,
00539 #else
00540 SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB = SQLDBC_HOSTTYPE_UCS2_CLOB,
00541 #endif
00542 SQLDBC_HOSTTYPE_STREAM = 27,
00543 SQLDBC_HOSTTYPE_RAWHEX = 28,
00545 SQLDBC_HOSTTYPE_USERDEFINED = 100,
00547 SQLDBC_HOSTTYPE_MAX = SQLDBC_HOSTTYPE_USERDEFINED
00548 }
00549 #ifndef __cplusplus
00550 SQLDBC_HostType
00551 #endif
00552 ;
00553
00557 #ifndef __cplusplus
00558 typedef
00559 #endif
00560 enum SQLDBC_SQLWarningCode
00561 {
00562 SQLDBC_SQLWARNING_DATA_TRUNCATED = 1,
00563 SQLDBC_SQLWARNING_MAX
00564 }
00565 #ifndef __cplusplus
00566 SQLDBC_SQLWarningCode
00567 #endif
00568 ;
00569 #ifdef __cplusplus
00570 struct SQLDBC_DateTimeFormat
00571 {
00575 enum Format {
00576 None_C = 0,
00577 Normal_C = 1,
00578 Iso_C = 2,
00579 Usa_C = 3,
00580 Eur_C = 4,
00581 Jis_C = 5,
00582 OracleDate_C = 6,
00583 WasAnsiNowIsSameAsIso_C = 7,
00584 TsEur_C = 8
00585 };
00586 };
00587 #endif
00588
00592 typedef enum SQLDBC_DateTimeFormat_Format {
00593 SQLDBC_DateTimeFormat_Format_None_C = 0,
00594 SQLDBC_DateTimeFormat_Format_Normal_C = 1,
00595 SQLDBC_DateTimeFormat_Format_Iso_C = 2,
00596 SQLDBC_DateTimeFormat_Format_Usa_C = 3,
00597 SQLDBC_DateTimeFormat_Format_Eur_C = 4,
00598 SQLDBC_DateTimeFormat_Format_Jis_C = 5,
00599 SQLDBC_DateTimeFormat_Format_OracleDate_C = 6,
00600 SQLDBC_DateTimeFormat_Format_WasAnsiNowIsSameAsIso_C = 7,
00601 SQLDBC_DateTimeFormat_Format_TsEur_C = 8
00602 }SQLDBC_DateTimeFormat_Format;
00603
00604
00605 #ifndef __cplusplus
00606 typedef
00607 #endif
00608
00611 enum SQLDBC_SerialTag {
00612 SQLDBC_FIRST_INSERTED_SERIAL = 32768,
00613 SQLDBC_LAST_INSERTED_SERIAL = 32769
00614 }
00615 #ifndef __cplusplus
00616 SQLDBC_SerialTag;
00617 #else
00618 ;
00619 #endif
00620
00621
00622 #endif