SQLDBC_Types.h

Go to the documentation of this file.
00001 
00032 #ifndef SQLDBC_TYPES_H
00033 #define SQLDBC_TYPES_H
00034 
00035 /*
00036  * Define the platform setup.
00037  *
00038  * WIN32           - Microsoft Windows
00039  * LINUX           - Linux
00040  * SUN             - Sun Solaris (Sparc)
00041  * HPUX            - HP Unix (HPPA)
00042  * AIX             - AIX (RS6000)
00043  * NMP             - Reliant.
00044  *
00045  * IA64            - IA 64 architecture.
00046  * BIT64           - 64 bit platform.
00047  */
00048 
00049 #if defined(__osf__) && !defined(BIT64)
00050 #    define BIT64 1
00051 #endif
00052 
00053 #if (defined(__linux__) && defined(__ia64__)) && !defined(BIT64)
00054 #    define BIT64 1
00055 #endif
00056 
00057 #if (defined(__linux__) && defined(__s390x__)) && !defined(BIT64)
00058 #    define BIT64 1
00059 #endif
00060 
00061 #if (defined(__linux__) && defined(__x86_64__) ) && !defined(BIT64)
00062 #    define BIT64 1
00063 #endif
00064 
00065 #if (defined(__linux__) && defined(__powerpc__)) && !defined(BIT64)
00066 #    define BIT64 1
00067 #endif
00068 
00069 #if defined(_WIN64) && !defined(BIT64)
00070 #    define BIT64 1
00071 #endif
00072 
00073 #if defined(_AIX) && defined(__64BIT__) && !defined(BIT64)
00074 #  define BIT64 1
00075 #endif
00076 
00077 #if (defined(sun) || defined(__sun)) && (defined(_LP64) || defined(__sparcv9)) && !defined(BIT64)
00078 #  define BIT64 1
00079 #endif
00080 
00081 #if (defined(__hpux)||defined(sinix)) && defined(__LP64__) && !defined(BIT64)
00082 #  define BIT64 1
00083 #endif
00084 
00085 #if !(defined(__linux__) && defined(__i386__)) && \
00086     !(defined(__linux__) && defined(__powerpc__)) && \
00087     !(defined(__linux__) && defined(__s390x__)) && \
00088     !(defined(__linux__) && defined(__x86_64__)) && \
00089     !(defined(__linux__) && defined(__ia64__)) && \
00090     !defined(_WIN32) && \
00091     !(defined(sun) || defined(__sun)) && \
00092     !defined(_AIX) && \
00093     !defined(__osf__) && \
00094     !defined(sinix) && \
00095     !defined(__hpux)
00096 #error Unknown platform.
00097 #endif
00098 
00099 #if (defined (_AIX) && __IBMCPP__ < 500) || ( (defined(sun) || defined(__sun)) && !defined(_BOOL) ) \
00100   || !defined (__cplusplus)
00101 
00106 # define CPP_BOOL_NOT_IMPLEMENTED
00107 #endif
00108 
00109 #ifdef CPP_BOOL_NOT_IMPLEMENTED
00110 #if defined(_WIN32) || defined(_AIX) || defined(__linux__) || defined(__osf__) \
00111  || defined(__hpux) || defined(sinix) || (defined(sun) || defined(__sun))
00112 
00116 typedef unsigned char SQLDBC_Bool;
00121 typedef SQLDBC_Bool  bool;
00122 #endif
00123 #else
00124 typedef bool SQLDBC_Bool;
00125 #endif 
00126 
00129 #define SQLDBC_TRUE          ((SQLDBC_Bool)1)
00130 
00132 #define SQLDBC_FALSE         ((SQLDBC_Bool)0)
00133 
00134 #if defined(_WIN64)
00135 typedef unsigned __int64    SQLDBC_ULong;      /* long (fast, unsigned) */
00136 typedef signed __int64      SQLDBC_Long;       /* long (fast, signed)   */
00137 #else
00138 
00142 typedef unsigned long       SQLDBC_ULong;      /* long (fast, unsigned) */
00147 typedef signed long         SQLDBC_Long;       /* long (fast, signed)   */
00148 #endif
00149 
00153 typedef unsigned char       SQLDBC_Byte;
00154 
00158 typedef SQLDBC_ULong        SQLDBC_size_t;
00159 
00163 typedef SQLDBC_Byte         SQLDBC_UTF8;
00164 
00167 typedef unsigned char       SQLDBC_UInt1;
00170 typedef signed char         SQLDBC_Int1;
00173 typedef unsigned short      SQLDBC_UInt2;
00176 typedef signed short        SQLDBC_Int2;
00179 typedef unsigned int        SQLDBC_UInt4;
00182 typedef signed int          SQLDBC_Int4;
00183 
00184 #if defined(_WIN32) || defined(_WIN64)
00185 
00187 typedef unsigned __int64    SQLDBC_UInt8;
00190 typedef signed __int64      SQLDBC_Int8;
00191 #else
00192 
00194 typedef unsigned long long SQLDBC_UInt8;
00197 typedef long long          SQLDBC_Int8;
00198 #endif
00199 
00200 #if defined(BIT64)
00201 typedef SQLDBC_Int8        SQLDBC_Length;
00202 #else
00203 
00208 typedef SQLDBC_Int4        SQLDBC_Length;
00209 #endif
00210 
00213 typedef unsigned int       SQLDBC_UInt;
00214 
00217 typedef signed int         SQLDBC_Int;
00218 
00222 #define SQLDBC_NULL_DATA     (-1)
00223 
00227 #define SQLDBC_DATA_AT_EXEC  (-2)
00228 
00232 #define SQLDBC_NTS           (-3)
00233 
00237 #define SQLDBC_NO_TOTAL      (-4)
00238 
00242 #define SQLDBC_DEFAULT_PARAM (-5)
00243 
00247 #define SQLDBC_IGNORE        (-6)
00248 
00253 #define SQLDBC_LEN_DATA_AT_EXEC_OFFSET (-100)
00254 
00260 #define SQLDBC_LEN_DATA_AT_EXEC(length) (-(length)+SQLDBC_LEN_DATA_AT_EXEC_OFFSET)
00261 
00267 #ifndef __cplusplus
00268 typedef
00269 #endif
00270 enum SQLDBC_Retcode {
00271   SQLDBC_INVALID_OBJECT           =-10909,    
00272      SQLDBC_OK                       = 0,     
00273      SQLDBC_NOT_OK                   = 1,     
00275      SQLDBC_DATA_TRUNC               =2,      
00276      SQLDBC_OVERFLOW                 =3,      
00277      SQLDBC_SUCCESS_WITH_INFO        =4,      
00278      SQLDBC_NO_DATA_FOUND            =100,    
00279      SQLDBC_NEED_DATA                =99      
00280 }
00281 #ifndef __cplusplus
00282 SQLDBC_Retcode
00283 #endif
00284 ;
00285 
00292 #ifndef __cplusplus
00293 typedef
00294 #endif
00295 enum SQLDBC_Rowstatus
00296 {
00297     SQLDBC_EXECUTE_FAILED            = -2,      
00298     SQLDBC_SUCCESS_NO_INFO           = -3,      
00300     SQLDBC_DELETED                   = -4,      
00301     SQLDBC_UPDATED                   = -5,      
00302     SQLDBC_NOROW                     = -6,      
00303     SQLDBC_ADDED                     = -7       
00304 }
00305 #ifndef __cplusplus
00306 SQLDBC_Rowstatus
00307 #endif
00308 ;
00309 
00310 
00315 #ifndef __cplusplus
00316 typedef
00317 #endif
00318 enum SQLDBC_SQLMode {
00319      SQLDBC_INTERNAL                 =2,    
00320      SQLDBC_ANSI                     =3,    
00321      SQLDBC_DB2                      =4,    
00322      SQLDBC_ORACLE                   =5,    
00323      SQLDBC_SAPR3                    =6     
00324 }
00325 #ifndef __cplusplus
00326 SQLDBC_SQLMode
00327 #endif
00328 ;
00329 
00330 #ifdef __cplusplus
00331 class SQLDBC_StringEncodingType
00332 {
00333 public:
00334   enum Encoding {
00335     Unknown     = 0,
00336     Ascii       = 1,
00337     UCS2        = 2,
00338     UCS2Swapped = 3,
00339     UTF8        = 4
00340   };
00341 };
00342 typedef SQLDBC_StringEncodingType::Encoding SQLDBC_StringEncoding;
00343 #endif
00344 typedef enum SQLDBC_StringEncodingType_Encoding
00345 {
00346     SQLDBC_StringEncodingType_Encoding_Unknown     = 0,
00347     SQLDBC_StringEncodingType_Encoding_Ascii       = 1,
00348     SQLDBC_StringEncodingType_Encoding_UCS2        = 2,
00349     SQLDBC_StringEncodingType_Encoding_UCS2Swapped = 3,
00350     SQLDBC_StringEncodingType_Encoding_UTF8        = 4
00351 }SQLDBC_StringEncodingType_Encoding;
00352 
00357 #define SQLDBC_StringEncodingUnknown      SQLDBC_StringEncodingType::Unknown
00358 
00363 #define SQLDBC_StringEncodingAscii        SQLDBC_StringEncodingType::Ascii
00364 
00369 #define SQLDBC_StringEncodingUCS2         SQLDBC_StringEncodingType::UCS2
00370 
00375 #define SQLDBC_StringEncodingUCS2Swapped  SQLDBC_StringEncodingType::UCS2Swapped
00376 
00381 #if defined(_WIN32) || (defined(__linux__) && !defined(__powerpc__) && !defined(__s390x__)) || defined(__osf__)
00382 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2Swapped
00383 #else
00384 #define SQLDBC_StringEncodingUCS2Native SQLDBC_StringEncodingType::UCS2
00385 #endif
00386 
00391 #define SQLDBC_StringEncodingUTF8         SQLDBC_StringEncodingType::UTF8
00392 
00398 #ifndef __cplusplus
00399 typedef
00400 #endif
00401 enum SQLDBC_SQLType {
00402   SQLDBC_SQLTYPE_MIN       = 0,            
00403   SQLDBC_SQLTYPE_FIXED     = SQLDBC_SQLTYPE_MIN, 
00404   SQLDBC_SQLTYPE_FLOAT     = 1,            
00405   SQLDBC_SQLTYPE_CHA       = 2,            
00406   SQLDBC_SQLTYPE_CHE       = 3,            
00407   SQLDBC_SQLTYPE_CHB       = 4,            
00408   SQLDBC_SQLTYPE_ROWID     = 5,            
00409   SQLDBC_SQLTYPE_STRA      = 6,            
00410   SQLDBC_SQLTYPE_STRE      = 7,            
00411   SQLDBC_SQLTYPE_STRB      = 8,            
00412   SQLDBC_SQLTYPE_STRDB     = 9,            
00413   SQLDBC_SQLTYPE_DATE      = 10,           
00414   SQLDBC_SQLTYPE_TIME      = 11,           
00415   SQLDBC_SQLTYPE_VFLOAT    = 12,           
00416   SQLDBC_SQLTYPE_TIMESTAMP = 13,           
00417   SQLDBC_SQLTYPE_UNKNOWN   = 14,           
00418   SQLDBC_SQLTYPE_NUMBER    = 15,           
00419   SQLDBC_SQLTYPE_NONUMBER  = 16,           
00420   SQLDBC_SQLTYPE_DURATION  = 17,           
00421   SQLDBC_SQLTYPE_DBYTEEBCDIC = 18,         
00422   SQLDBC_SQLTYPE_LONGA     = 19,           
00423   SQLDBC_SQLTYPE_LONGE     = 20,           
00424   SQLDBC_SQLTYPE_LONGB     = 21,           
00425   SQLDBC_SQLTYPE_LONGDB    = 22,           
00426   SQLDBC_SQLTYPE_BOOLEAN   = 23,           
00427   SQLDBC_SQLTYPE_UNICODE   = 24,           
00428   SQLDBC_SQLTYPE_DTFILLER1 = 25,           
00429   SQLDBC_SQLTYPE_DTFILLER2 = 26,           
00430   SQLDBC_SQLTYPE_DTFILLER3 = 27,           
00431   SQLDBC_SQLTYPE_DTFILLER4 = 28,           
00432   SQLDBC_SQLTYPE_SMALLINT  = 29,           
00433   SQLDBC_SQLTYPE_INTEGER   = 30,           
00434   SQLDBC_SQLTYPE_VARCHARA  = 31,           
00435   SQLDBC_SQLTYPE_VARCHARE  = 32,           
00436   SQLDBC_SQLTYPE_VARCHARB  = 33,           
00437   SQLDBC_SQLTYPE_STRUNI    = 34,           
00438   SQLDBC_SQLTYPE_LONGUNI   = 35,           
00439   SQLDBC_SQLTYPE_VARCHARUNI = 36,          
00440   SQLDBC_SQLTYPE_UDT       = 37,           
00441   SQLDBC_SQLTYPE_ABAPTABHANDLE = 38,       
00442   SQLDBC_SQLTYPE_DWYDE     = 39,           
00443   SQLDBC_SQLTYPE_MAX = SQLDBC_SQLTYPE_DWYDE            
00444 }
00445 #ifndef __cplusplus
00446 SQLDBC_SQLType
00447 #endif
00448 ;
00449 
00454 #ifndef __cplusplus
00455 typedef
00456 #endif
00457 enum SQLDBC_HostType {
00458     SQLDBC_HOSTTYPE_MIN         = 0, 
00460     SQLDBC_HOSTTYPE_PARAMETER_NOTSET = 0, 
00463     SQLDBC_HOSTTYPE_BINARY      =  1, 
00465     SQLDBC_HOSTTYPE_ASCII       =  2, 
00467     SQLDBC_HOSTTYPE_UTF8        =  4, 
00469     SQLDBC_HOSTTYPE_UINT1       =  5, 
00470     SQLDBC_HOSTTYPE_INT1        =  6, 
00472     SQLDBC_HOSTTYPE_UINT2       =  7,  
00473     SQLDBC_HOSTTYPE_INT2        =  8, 
00475     SQLDBC_HOSTTYPE_UINT4       =  9, 
00476     SQLDBC_HOSTTYPE_INT4        = 10, 
00478     SQLDBC_HOSTTYPE_UINT8       = 11, 
00479     SQLDBC_HOSTTYPE_INT8        = 12, 
00481     SQLDBC_HOSTTYPE_DOUBLE      = 13, 
00482     SQLDBC_HOSTTYPE_FLOAT       = 14, 
00484     SQLDBC_HOSTTYPE_ODBCDATE    = 15, 
00485     SQLDBC_HOSTTYPE_ODBCTIME    = 16, 
00486     SQLDBC_HOSTTYPE_ODBCTIMESTAMP = 17, 
00488     SQLDBC_HOSTTYPE_ODBCNUMERIC = 18, 
00490     SQLDBC_HOSTTYPE_GUID        = 19, 
00492     SQLDBC_HOSTTYPE_UCS2        =  20, 
00493     SQLDBC_HOSTTYPE_UCS2_SWAPPED=  21, 
00495 #if defined(_WIN32) || (defined(__linux__) && !defined(__powerpc__) && !defined(__s390x__)) || defined(__osf__)
00496     SQLDBC_HOSTTYPE_UCS2_NATIVE =  SQLDBC_HOSTTYPE_UCS2_SWAPPED, 
00497 #else
00498     SQLDBC_HOSTTYPE_UCS2_NATIVE =  SQLDBC_HOSTTYPE_UCS2, 
00499 #endif
00500     SQLDBC_HOSTTYPE_BLOB         = 22, 
00501     SQLDBC_HOSTTYPE_ASCII_CLOB   = 23, 
00502     SQLDBC_HOSTTYPE_UTF8_CLOB    = 24, 
00503     SQLDBC_HOSTTYPE_UCS2_CLOB    = 25, 
00504     SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB = 26, 
00505 #if defined(_WIN32) || (defined(__linux__) && !defined(__powerpc__) && !defined(__s390x__)) || defined(__osf__)
00506     SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB =  SQLDBC_HOSTTYPE_UCS2_SWAPPED_CLOB,
00507 #else
00508     SQLDBC_HOSTTYPE_UCS2_NATIVE_CLOB =  SQLDBC_HOSTTYPE_UCS2_CLOB,
00509 #endif
00510     SQLDBC_HOSTTYPE_STREAM      = 27,  
00511     SQLDBC_HOSTTYPE_RAWHEX      = 28,  
00513     SQLDBC_HOSTTYPE_USERDEFINED = 100, 
00515     SQLDBC_HOSTTYPE_MAX = SQLDBC_HOSTTYPE_USERDEFINED  
00516 }
00517 #ifndef __cplusplus
00518 SQLDBC_HostType
00519 #endif
00520 ;
00521 
00525 #ifndef __cplusplus
00526 typedef
00527 #endif
00528 enum SQLDBC_SQLWarningCode
00529 {
00530     SQLDBC_SQLWARNING_DATA_TRUNCATED = 1, 
00531     SQLDBC_SQLWARNING_MAX                 
00532 }
00533 #ifndef __cplusplus
00534 SQLDBC_SQLWarningCode
00535 #endif
00536 ;
00537 #ifdef __cplusplus
00538 struct SQLDBC_DateTimeFormat
00539 {
00543     enum Format {
00544         None_C = 0,      
00545         Normal_C = 1,    
00546         Iso_C = 2,       
00547         Usa_C = 3,       
00548         Eur_C = 4,       
00549         Jis_C = 5,       
00550         OracleDate_C = 6, 
00551         WasAnsiNowIsSameAsIso_C = 7, 
00552         TsEur_C = 8      
00553     };
00554 };
00555 #endif
00556 
00560 typedef  enum SQLDBC_DateTimeFormat_Format {
00561         SQLDBC_DateTimeFormat_Format_None_C = 0,      
00562         SQLDBC_DateTimeFormat_Format_Normal_C = 1,    
00563         SQLDBC_DateTimeFormat_Format_Iso_C = 2,       
00564         SQLDBC_DateTimeFormat_Format_Usa_C = 3,       
00565         SQLDBC_DateTimeFormat_Format_Eur_C = 4,       
00566         SQLDBC_DateTimeFormat_Format_Jis_C = 5,       
00567         SQLDBC_DateTimeFormat_Format_OracleDate_C = 6, 
00568         SQLDBC_DateTimeFormat_Format_WasAnsiNowIsSameAsIso_C = 7, 
00569         SQLDBC_DateTimeFormat_Format_TsEur_C = 8      
00570     }SQLDBC_DateTimeFormat_Format;
00571 
00572 
00573 #ifndef __cplusplus
00574 typedef
00575 #endif
00576 
00579 enum SQLDBC_SerialTag {
00580     SQLDBC_FIRST_INSERTED_SERIAL = 32768,  
00581     SQLDBC_LAST_INSERTED_SERIAL  = 32769   
00582 }
00583 #ifndef __cplusplus
00584 SQLDBC_SerialTag;
00585 #else
00586 ;
00587 #endif
00588 
00589 
00590 #endif