Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SQLDBC_Types.h

Go to the documentation of this file.
00001 
00031 #ifndef SQLDBC_TYPES_H
00032 #define SQLDBC_TYPES_H
00033 
00034 /*
00035  * Define the platform setup.
00036  *
00037  * WIN32           - Microsoft Windows
00038  * LINUX           - Linux
00039  * SUN             - Sun Solaris (Sparc)
00040  * HPUX            - HP Unix (HPPA)
00041  * AIX             - AIX (RS6000)
00042  * NMP             - Reliant.
00043  *
00044  * IA64            - IA 64 architecture.
00045  * BIT64           - 64 bit platform.
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;      /* long (fast, unsigned) */
00168 typedef signed __int64      SQLDBC_Long;       /* long (fast, signed)   */
00169 #else
00170 
00174 typedef unsigned long       SQLDBC_ULong;      /* long (fast, unsigned) */
00179 typedef signed long         SQLDBC_Long;       /* long (fast, signed)   */
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