00001
00032 #ifndef SQLDBC_TYPES_H
00033 #define SQLDBC_TYPES_H
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 #if !defined(BIT64)
00052
00053 #if defined(__osf__)
00054 # define BIT64 1
00055 #endif
00056
00057 #if (defined(__linux__) && defined(__ia64__))
00058 # define BIT64 1
00059 #endif
00060
00061 #if (defined(__linux__) && defined(__s390x__))
00062
00063 # define BIT64 1
00064 #endif
00065
00066 #if (defined(__linux__) && defined(__x86_64__) )
00067 # define BIT64 1
00068 #endif
00069
00070 #if (defined(__linux__) && defined(__powerpc64__))
00071
00072 # define BIT64 1
00073 #endif
00074
00075 #if defined(_WIN64)
00076 # define BIT64 1
00077 #endif
00078
00079 #if defined(_AIX) && defined(__64BIT__)
00080 # define BIT64 1
00081 #endif
00082
00083 #if (defined(sun) || defined(__sun))
00084 # include <sys/isa_defs.h>
00085 # if defined(_LP64)
00086 # define BIT64 1
00087 # endif
00088 #endif
00089
00090 #if (defined(__hpux)||defined(sinix)) && defined(__LP64__)
00091 # define BIT64 1
00092 #endif
00093
00094
00095 #endif
00096
00097
00098 #if !(defined(__linux__) && defined(__i386__)) && \
00099 !(defined(__linux__) && defined(__powerpc64__)) && \
00100 !(defined(__linux__) && defined(__s390x__)) && \
00101 !(defined(__linux__) && defined(__x86_64__)) && \
00102 !(defined(__linux__) && defined(__ia64__)) && \
00103 !defined(_WIN32) && \
00104 !((defined(sun) || defined(__sun)) && (defined(__sparc) || defined(__i386) || defined(__amd64))) &&\
00105 !defined(_AIX) && \
00106 !defined(__osf__) && \
00107 !defined(sinix) && \
00108 !defined(__hpux)
00109 #error Unknown platform.
00110 #endif
00111
00112 #if (defined (_AIX) && __IBMCPP__ < 500) || ( (defined(sun) || defined(__sun)) && !defined(_BOOL) ) \
00113 || !defined (__cplusplus)
00114
00119 # define CPP_BOOL_NOT_IMPLEMENTED
00120 #endif
00121
00122 #if defined(_WIN32) \
00123 || (defined(__linux__) && !defined(__powerpc__) && !defined(__s390x__)) \
00124 || defined(__osf__) \
00125 || (defined(__sun) && (defined(__i386) || defined(__amd64)))
00126 # define SQLDBC_SWAPPED_UCS2
00127 #endif
00128
00129
00130 #ifdef SQLDBC_FEATURE_DECIMAL_OFF
00131 #undef SQLDBC_FEATURE_DECIMAL
00132 #else
00133 #ifndef SQLDBC_FEATURE_DECIMAL
00134 #define SQLDBC_FEATURE_DECIMAL
00135 #endif
00136 #endif
00137
00138 #ifdef SQLDBC_FEATURE_OMS_ASCII_OFF
00139 #undef SQLDBC_FEATURE_OMS_ASCII
00140 #else
00141 #ifndef SQLDBC_FEATURE_OMS_ASCII
00142 #define SQLDBC_FEATURE_OMS_ASCII
00143 #endif
00144 #endif
00145
00146
00147 #ifdef CPP_BOOL_NOT_IMPLEMENTED
00148 #if defined(_WIN32) || defined(_AIX) || defined(__linux__) || defined(__osf__) \
00149 || defined(__hpux) || defined(sinix) || (defined(sun) || defined(__sun))
00150
00154 typedef unsigned char SQLDBC_Bool;
00159 typedef SQLDBC_Bool bool;
00160 #endif
00161 #else
00162 typedef bool SQLDBC_Bool;
00163 #endif
00164
00167 #define SQLDBC_TRUE ((SQLDBC_Bool)1)
00168
00170 #define SQLDBC_FALSE ((SQLDBC_Bool)0)
00171
00172 #if defined(_WIN64)
00173 typedef unsigned __int64 SQLDBC_ULong;
00174 typedef signed __int64 SQLDBC_Long;
00175 #else
00176
00180 typedef unsigned long SQLDBC_ULong;
00185 typedef signed long SQLDBC_Long;
00186 #endif
00187
00191 typedef unsigned char SQLDBC_Byte;
00192
00196 typedef SQLDBC_ULong SQLDBC_size_t;
00197
00201 typedef SQLDBC_Byte SQLDBC_UTF8;
00202
00205 typedef unsigned char SQLDBC_UInt1;
00208 typedef signed char SQLDBC_Int1;
00211 typedef unsigned short SQLDBC_UInt2;
00214 typedef signed short SQLDBC_Int2;
00217 typedef unsigned int SQLDBC_UInt4;
00220 typedef signed int SQLDBC_Int4;
00221
00222 #if defined(_WIN32) || defined(_WIN64)
00223
00225 typedef unsigned __int64 SQLDBC_UInt8;
00228 typedef signed __int64 SQLDBC_Int8;
00229 #else
00230
00232 typedef unsigned long long SQLDBC_UInt8;
00235 typedef long long SQLDBC_Int8;
00236 #endif
00237
00238 #if defined(BIT64)
00239 typedef SQLDBC_Int8 SQLDBC_Length;
00240 #else
00241
00246 typedef SQLDBC_Int4 SQLDBC_Length;
00247 #endif
00248
00251 typedef unsigned int SQLDBC_UInt;
00252
00255 typedef signed int SQLDBC_Int;
00256
00260 #define SQLDBC_NULL_DATA (-1)
00261
00265 #define SQLDBC_DATA_AT_EXEC (-2)
00266
00270 #define SQLDBC_NTS (-3)
00271
00275 #define SQLDBC_NO_TOTAL (-4)
00276
00280 #define SQLDBC_DEFAULT_PARAM (-5)
00281
00285 #define SQLDBC_IGNORE (-6)
00286
00291 #define SQLDBC_LEN_DATA_AT_EXEC_OFFSET (-100)
00292
00298 #define SQLDBC_LEN_DATA_AT_EXEC(length) (-(length)+SQLDBC_LEN_DATA_AT_EXEC_OFFSET)
00299
00300 #ifdef SQLDBC_FEATURE_DECIMAL
00301
00309 #define SQLDBC_LEN_DECIMAL(digits, fraction) (0x40000000 | ((digits & 0xFF) << 8) | (fraction & 0xFF))
00310
00319 #define SQLDBC_DECIMAL_LENGTH(digits, fraction) ((digits + 2) / 2)
00320
00321
00328 #define SQLDBC_DECIMAL_DIGITS(indicator) ( \
00329 ((indicator) & 0xFFFF0000) == 0x40000000 \
00330 ? ((indicator) & 0x0000FF00) >> 8 \
00331 : (-1) \
00332 )
00333
00340 #define SQLDBC_DECIMAL_FRACTION(indicator) ( \
00341 ((indicator) & 0xFFFF0000) == 0x40000000 \
00342 ? ((indicator) & 0x000000FF) \
00343 : (-1) \
00344 )
00345
00346 #endif
00347
00353 #ifndef __cplusplus
00354 typedef
00355 #endif
00356 enum SQLDBC_Retcode {
00357 SQLDBC_INVALID_OBJECT =-10909,
00358 SQLDBC_OK = 0,
00359 SQLDBC_NOT_OK = 1,
00361 SQLDBC_DATA_TRUNC =2,
00362 SQLDBC_OVERFLOW =3,
00363 SQLDBC_SUCCESS_WITH_INFO =4,
00364 SQLDBC_NO_DATA_FOUND =100,
00365 SQLDBC_NEED_DATA =99
00366 }
00367 #ifndef __cplusplus
00368 SQLDBC_Retcode
00369 #endif
00370 ;
00371
00378 #ifndef __cplusplus
00379 typedef
00380 #endif
00381 enum SQLDBC_Rowstatus
00382 {
00383 SQLDBC_EXECUTE_FAILED = -2,
00384 SQLDBC_SUCCESS_NO_INFO = -3,
00386 SQLDBC_DELETED = -4,
00387 SQLDBC_UPDATED = -5,
00388 SQLDBC_NOROW = -6,
00389 SQLDBC_ADDED = -7,
00390 SQLDBC_ROW_IGNORE = -8
00391 }
00392 #ifndef __cplusplus
00393 SQLDBC_Rowstatus
00394 #endif
00395 ;
00396
00397
00402 #ifndef __cplusplus
00403 typedef
00404 #endif
00405 enum SQLDBC_SQLMode {
00406 SQLDBC_INTERNAL =2,
00407 SQLDBC_ANSI =3,
00408 SQLDBC_DB2 =4,
00409 SQLDBC_ORACLE =5,
00410 SQLDBC_SAPR3 =6
00411 }
00412 #ifndef __cplusplus
00413 SQLDBC_SQLMode
00414 #endif
00415 ;
00416
00417 #ifdef __cplusplus
00418 class SQLDBC_StringEncodingType
00419 {
00420 public:
00421 enum Encoding {
00422 Unknown = 0,
00423 Ascii = 1,
00424 UCS2 = 2,
00425 UCS2Swapped = 3,
00426 UTF8 = 4
00427 };
00428 };
00429 typedef SQLDBC_StringEncodingType::Encoding SQLDBC_StringEncoding;
00430 #endif
00431 typedef enum SQLDBC_StringEncodingType_Encoding
00432 {
00433 SQLDBC_StringEncodingType_Encoding_Unknown = 0,
00434 SQLDBC_StringEncodingType_Encoding_Ascii = 1,
00435 SQLDBC_StringEncodingType_Encoding_UCS2 = 2,
00436 SQLDBC_StringEncodingType_Encoding_UCS2Swapped = 3,
00437 SQLDBC_StringEncodingType_Encoding_UTF8 = 4
00438 }SQLDBC_StringEncodingType_Encoding;
00439
00444 #define SQLDBC_StringEncodingUnknown SQLDBC_StringEncodingType::Unknown
00445
00450 #define SQLDBC_StringEncodingAscii SQLDBC_StringEncodingType::Ascii
00451
00456 #define SQLDBC_StringEncodingUCS2 SQLDBC_StringEncodingType::UCS2
00457
00462 #define SQLDBC_StringEncodingUCS2Swapped SQLDBC_StringEncodingType::UCS2Swapped
00463
00468 #if defined(SQLDBC_SWAPPED_UCS2)
00469 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2Swapped
00470 #else
00471 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2
00472 #endif
00473
00478 #define SQLDBC_StringEncodingUTF8 SQLDBC_StringEncodingType::UTF8
00479
00485 #ifndef __cplusplus
00486 typedef
00487 #endif
00488 enum SQLDBC_SQLType {
00489 SQLDBC_SQLTYPE_MIN = 0,
00490 SQLDBC_SQLTYPE_FIXED = SQLDBC_SQLTYPE_MIN,
00491 SQLDBC_SQLTYPE_FLOAT = 1,
00492 SQLDBC_SQLTYPE_CHA = 2,
00493 SQLDBC_SQLTYPE_CHE = 3,
00494 SQLDBC_SQLTYPE_CHB = 4,
00495 SQLDBC_SQLTYPE_ROWID = 5,
00496 SQLDBC_SQLTYPE_STRA = 6,
00497 SQLDBC_SQLTYPE_STRE = 7,
00498 SQLDBC_SQLTYPE_STRB = 8,
00499 SQLDBC_SQLTYPE_STRDB = 9,
00500 SQLDBC_SQLTYPE_DATE = 10,
00501 SQLDBC_SQLTYPE_TIME = 11,
00502 SQLDBC_SQLTYPE_VFLOAT = 12,
00503 SQLDBC_SQLTYPE_TIMESTAMP = 13,
00504 SQLDBC_SQLTYPE_UNKNOWN = 14,
00505 SQLDBC_SQLTYPE_NUMBER = 15,
00506 SQLDBC_SQLTYPE_NONUMBER = 16,
00507 SQLDBC_SQLTYPE_DURATION = 17,
00508 SQLDBC_SQLTYPE_DBYTEEBCDIC = 18,
00509 SQLDBC_SQLTYPE_LONGA = 19,
00510 SQLDBC_SQLTYPE_LONGE = 20,
00511 SQLDBC_SQLTYPE_LONGB = 21,
00512 SQLDBC_SQLTYPE_LONGDB = 22,
00513 SQLDBC_SQLTYPE_BOOLEAN = 23,
00514 SQLDBC_SQLTYPE_UNICODE = 24,
00515 SQLDBC_SQLTYPE_DTFILLER1 = 25,
00516 SQLDBC_SQLTYPE_DTFILLER2 = 26,
00517 SQLDBC_SQLTYPE_DTFILLER3 = 27,
00518 SQLDBC_SQLTYPE_DTFILLER4 = 28,
00519 SQLDBC_SQLTYPE_SMALLINT = 29,
00520 SQLDBC_SQLTYPE_INTEGER = 30,
00521 SQLDBC_SQLTYPE_VARCHARA = 31,
00522 SQLDBC_SQLTYPE_VARCHARE = 32,
00523 SQLDBC_SQLTYPE_VARCHARB = 33,
00524 SQLDBC_SQLTYPE_STRUNI = 34,
00525 SQLDBC_SQLTYPE_LONGUNI = 35,
00526 SQLDBC_SQLTYPE_VARCHARUNI = 36,
00527 SQLDBC_SQLTYPE_UDT = 37,
00528 SQLDBC_SQLTYPE_ABAPTABHANDLE = 38,
00529 SQLDBC_SQLTYPE_DWYDE = 39,
00530 SQLDBC_SQLTYPE_MAX = SQLDBC_SQLTYPE_DWYDE
00531 }
00532 #ifndef __cplusplus
00533 SQLDBC_SQLType
00534 #endif
00535 ;
00536
00541 #ifndef __cplusplus
00542 typedef
00543 #endif
00544 enum SQLDBC_HostType {
00545 SQLDBC_HOSTTYPE_MIN = 0,
00547 SQLDBC_HOSTTYPE_PARAMETER_NOTSET = 0,
00550 SQLDBC_HOSTTYPE_BINARY = 1,
00552 SQLDBC_HOSTTYPE_ASCII = 2,
00554 SQLDBC_HOSTTYPE_UTF8 = 4,
00556 SQLDBC_HOSTTYPE_UINT1 = 5,
00557 SQLDBC_HOSTTYPE_INT1 = 6,
00559 SQLDBC_HOSTTYPE_UINT2 = 7,
00560 SQLDBC_HOSTTYPE_INT2 = 8,
00562 SQLDBC_HOSTTYPE_UINT4 = 9,
00563 SQLDBC_HOSTTYPE_INT4 = 10,
00565 SQLDBC_HOSTTYPE_UINT8 = 11,
00566 SQLDBC_HOSTTYPE_INT8 = 12,
00568 SQLDBC_HOSTTYPE_DOUBLE = 13,
00569 SQLDBC_HOSTTYPE_FLOAT = 14,
00571 SQLDBC_HOSTTYPE_ODBCDATE = 15,
00572 SQLDBC_HOSTTYPE_ODBCTIME = 16,
00573 SQLDBC_HOSTTYPE_ODBCTIMESTAMP = 17,
00575 SQLDBC_HOSTTYPE_ODBCNUMERIC = 18,
00577 SQLDBC_HOSTTYPE_GUID = 19,
00579 SQLDBC_HOSTTYPE_UCS2 = 20,
00580 SQLDBC_HOSTTYPE_UCS2_SWAPPED= 21,
00581 #if defined(SQLDBC_SWAPPED_UCS2)
00582 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2_SWAPPED,
00583 #else
00584 SQLDBC_HOSTTYPE_UCS2_NATIVE = SQLDBC_HOSTTYPE_UCS2,
00585 #endif
00586 SQLDBC_HOSTTYPE_BLOB = 22,
00587 SQLDBC_HOSTTYPE_ASCII_CLOB = 23,
00588 SQLDBC_HOSTTYPE_UTF8_CLOB = 24,
00589 SQLDBC_HOSTTYPE_UCS2_CLOB = 25,
00590 SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB = 26,
00591 #if defined(SQLDBC_SWAPPED_UCS2)
00592 SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB = SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB,
00593 #else
00594 SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB = SQLDBC_HOSTTYPE_UCS2_CLOB,
00595 #endif
00596 SQLDBC_HOSTTYPE_STREAM = 27,
00597 SQLDBC_HOSTTYPE_RAWHEX = 28,
00600 #ifdef SQLDBC_FEATURE_DECIMAL
00601 SQLDBC_HOSTTYPE_DECIMAL = 29,
00602 SQLDBC_HOSTTYPE_OMS_PACKED_8_3 = 30,
00603 SQLDBC_HOSTTYPE_OMS_PACKED_15_3 = 31,
00604 SQLDBC_HOSTTYPE_OMS_TIMESTAMP = 32,
00605 #endif
00606
00607 #ifdef SQLDBC_FEATURE_OMS_ASCII
00608 SQLDBC_HOSTTYPE_OMS_ASCII = 33,
00609 #endif
00610
00611 SQLDBC_HOSTTYPE_USERDEFINED = 100,
00613 SQLDBC_HOSTTYPE_MAX = SQLDBC_HOSTTYPE_USERDEFINED
00614 }
00615 #ifndef __cplusplus
00616 SQLDBC_HostType
00617 #endif
00618 ;
00619
00623 #ifndef __cplusplus
00624 typedef
00625 #endif
00626 enum SQLDBC_SQLWarningCode
00627 {
00628 SQLDBC_SQLWARNING_DATA_TRUNCATED = 1,
00629 SQLDBC_SQLWARNING_MAX
00630 }
00631 #ifndef __cplusplus
00632 SQLDBC_SQLWarningCode
00633 #endif
00634 ;
00635 #ifdef __cplusplus
00636 struct SQLDBC_DateTimeFormat
00637 {
00641 enum Format {
00642 None_C = 0,
00643 Normal_C = 1,
00644 Iso_C = 2,
00645 Usa_C = 3,
00646 Eur_C = 4,
00647 Jis_C = 5,
00648 OracleDate_C = 6,
00649 WasAnsiNowIsSameAsIso_C = 7,
00650 TsEur_C = 8
00651 };
00652 };
00653 #endif
00654
00658 typedef enum SQLDBC_DateTimeFormat_Format {
00659 SQLDBC_DateTimeFormat_Format_None_C = 0,
00660 SQLDBC_DateTimeFormat_Format_Normal_C = 1,
00661 SQLDBC_DateTimeFormat_Format_Iso_C = 2,
00662 SQLDBC_DateTimeFormat_Format_Usa_C = 3,
00663 SQLDBC_DateTimeFormat_Format_Eur_C = 4,
00664 SQLDBC_DateTimeFormat_Format_Jis_C = 5,
00665 SQLDBC_DateTimeFormat_Format_OracleDate_C = 6,
00666 SQLDBC_DateTimeFormat_Format_WasAnsiNowIsSameAsIso_C = 7,
00667 SQLDBC_DateTimeFormat_Format_TsEur_C = 8
00668 }SQLDBC_DateTimeFormat_Format;
00669
00670
00671 #ifndef __cplusplus
00672 typedef
00673 #endif
00674
00677 enum SQLDBC_SerialTag {
00678 SQLDBC_FIRST_INSERTED_SERIAL = 32768,
00679 SQLDBC_LAST_INSERTED_SERIAL = 32769
00680 }
00681 #ifndef __cplusplus
00682 SQLDBC_SerialTag;
00683 #else
00684 ;
00685 #endif
00686
00687 #ifndef __cplusplus
00688 typedef
00689 #endif
00690
00693 enum SQLDBC_ProfileCountValues {
00694
00695 SQLDBC_ALLOCATECOUNT = 0 ,
00696 SQLDBC_DEALLOCATECOUNT = 1 ,
00697 SQLDBC_CONNECTIONCOUNT = 2 ,
00698 SQLDBC_COMMITCOUNT = 3 ,
00699 SQLDBC_ROLLBACKCOUNT = 4 ,
00700 SQLDBC_SETISOLATIONCOUNT = 5 ,
00701 SQLDBC_SENDCOUNT = 6 ,
00702 SQLDBC_SENDSIZE = 7 ,
00703 SQLDBC_RECEIVESIZE = 8 ,
00704 SQLDBC_CANCELCOUNT = 9 ,
00705 SQLDBC_STATEMENTCOUNT = 10,
00706 SQLDBC_PREPAREDSTATEMENTCOUNT = 11,
00707 SQLDBC_NOTSELECTFETCHOPTIMIZED = 12,
00708 SQLDBC_DROPPARSEIDCOUNT = 13,
00709 SQLDBC_DROPCURSORCOUNT = 14,
00710 SQLDBC_DROPLONGDESCCOUNT = 15,
00711 SQLDBC_PREPARECOUNT = 16,
00712 SQLDBC_PARSEINFOHITCOUNT = 17,
00713 SQLDBC_PARSINFOMISSCOUNT = 18,
00714 SQLDBC_PARSEAGAINCOUNT = 19,
00715 SQLDBC_PARSEINFOSQUEEZECOUNT = 20,
00716 SQLDBC_EXECUTECOUNT = 21,
00717 SQLDBC_INSERTCOUNT = 22,
00718 SQLDBC_UPDATECOUNT = 23,
00719 SQLDBC_SELECTCOUNT = 24,
00720 SQLDBC_CALLDBPROCEDURECOUNT = 25,
00721 SQLDBC_DELETECOUNT = 26,
00722 SQLDBC_FETCHCOUNT = 27,
00723 SQLDBC_SQLERRORCOUNT = 28,
00724 SQLDBC_ROWNOTFOUNDCOUNT = 29,
00725 SQLDBC_FETCHROWCOUNT = 30,
00726 SQLDBC_DATAREADSIZE = 31,
00727 SQLDBC_DATAWRITESIZE = 32,
00728 SQLDBC_LONGDATAREADSIZE = 33,
00729 SQLDBC_LONGDATAWRITESIZE = 34,
00730 SQLDBC_PROFILE_MAX = 35
00731 }
00732 #ifndef __cplusplus
00733 SQLDBC_ProfileCountValues;
00734 #else
00735 ;
00736 #endif
00737
00738 #endif