Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __SQLTYPES
      7 #define __SQLTYPES
      8 
      9 #ifndef ODBCVER
     10 #define ODBCVER 0x0351
     11 #endif
     12 
     13 #ifdef __cplusplus
     14 extern "C" {
     15 #endif
     16 
     17 #ifndef EXPORT
     18 #define EXPORT
     19 #endif
     20 
     21 #if defined(_ARM_)
     22 #define SQL_API
     23 #else
     24 #define SQL_API __stdcall
     25 #endif
     26 
     27 #ifndef RC_INVOKED
     28 
     29   typedef unsigned char SQLCHAR;
     30 #if (ODBCVER >= 0x0300)
     31   typedef signed char SQLSCHAR;
     32   typedef unsigned char SQLDATE;
     33   typedef unsigned char SQLDECIMAL;
     34   typedef double SQLDOUBLE;
     35   typedef double SQLFLOAT;
     36 #endif
     37   typedef __LONG32 SQLINTEGER;
     38   typedef unsigned __LONG32 SQLUINTEGER;
     39 
     40 #ifdef _WIN64
     41   typedef INT64 SQLLEN;
     42   typedef UINT64 SQLULEN;
     43   typedef UINT64 SQLSETPOSIROW;
     44 #else
     45 #define SQLLEN SQLINTEGER
     46 #define SQLULEN SQLUINTEGER
     47 #define SQLSETPOSIROW SQLUSMALLINT
     48 #endif
     49 
     50   typedef SQLULEN SQLROWCOUNT;
     51   typedef SQLULEN SQLROWSETSIZE;
     52   typedef SQLULEN SQLTRANSID;
     53   typedef SQLLEN SQLROWOFFSET;
     54 
     55 #if (ODBCVER >= 0x0300)
     56   typedef unsigned char SQLNUMERIC;
     57 #endif
     58   typedef void *SQLPOINTER;
     59 #if (ODBCVER >= 0x0300)
     60   typedef float SQLREAL;
     61 #endif
     62   typedef short SQLSMALLINT;
     63   typedef unsigned short SQLUSMALLINT;
     64 #if (ODBCVER >= 0x0300)
     65   typedef unsigned char SQLTIME;
     66   typedef unsigned char SQLTIMESTAMP;
     67   typedef unsigned char SQLVARCHAR;
     68 #endif
     69 
     70   typedef SQLSMALLINT SQLRETURN;
     71 
     72 #if (ODBCVER >= 0x0300)
     73   typedef void *SQLHANDLE;
     74   typedef SQLHANDLE SQLHENV;
     75   typedef SQLHANDLE SQLHDBC;
     76   typedef SQLHANDLE SQLHSTMT;
     77   typedef SQLHANDLE SQLHDESC;
     78 #else
     79   typedef void *SQLHENV;
     80   typedef void *SQLHDBC;
     81   typedef void *SQLHSTMT;
     82 #endif
     83 
     84 #ifndef BASETYPES
     85 #define BASETYPES
     86   typedef unsigned __LONG32 ULONG;
     87   typedef ULONG *PULONG;
     88   typedef unsigned short USHORT;
     89   typedef USHORT *PUSHORT;
     90   typedef unsigned char UCHAR;
     91   typedef UCHAR *PUCHAR;
     92   typedef char *PSZ;
     93 #endif
     94 
     95   typedef signed char SCHAR;
     96 #if (ODBCVER < 0x0300)
     97   typedef SCHAR SQLSCHAR;
     98 #endif
     99   typedef __LONG32 SDWORD;
    100   typedef short int SWORD;
    101   typedef unsigned __LONG32 UDWORD;
    102   typedef unsigned short int UWORD;
    103 
    104   typedef signed __LONG32 SLONG;
    105   typedef signed short SSHORT;
    106   typedef double SDOUBLE;
    107   typedef double LDOUBLE;
    108   typedef float SFLOAT;
    109   typedef void *PTR;
    110   typedef void *HENV;
    111   typedef void *HDBC;
    112   typedef void *HSTMT;
    113   typedef signed short RETCODE;
    114   typedef HWND SQLHWND;
    115 
    116 #ifndef __SQLDATE
    117 #define __SQLDATE
    118 
    119   typedef struct tagDATE_STRUCT {
    120     SQLSMALLINT year;
    121     SQLUSMALLINT month;
    122     SQLUSMALLINT day;
    123   } DATE_STRUCT;
    124 
    125 #if (ODBCVER >= 0x0300)
    126   typedef DATE_STRUCT SQL_DATE_STRUCT;
    127 #endif
    128 
    129   typedef struct tagTIME_STRUCT {
    130     SQLUSMALLINT hour;
    131     SQLUSMALLINT minute;
    132     SQLUSMALLINT second;
    133   } TIME_STRUCT;
    134 
    135 #if (ODBCVER >= 0x0300)
    136   typedef TIME_STRUCT SQL_TIME_STRUCT;
    137 #endif
    138 
    139   typedef struct tagTIMESTAMP_STRUCT {
    140     SQLSMALLINT year;
    141     SQLUSMALLINT month;
    142     SQLUSMALLINT day;
    143     SQLUSMALLINT hour;
    144     SQLUSMALLINT minute;
    145     SQLUSMALLINT second;
    146     SQLUINTEGER fraction;
    147   } TIMESTAMP_STRUCT;
    148 
    149 #if (ODBCVER >= 0x0300)
    150   typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
    151 #endif
    152 
    153 #if (ODBCVER >= 0x0300)
    154   typedef enum {
    155     SQL_IS_YEAR = 1,SQL_IS_MONTH = 2,SQL_IS_DAY = 3,SQL_IS_HOUR = 4,SQL_IS_MINUTE = 5,SQL_IS_SECOND = 6,SQL_IS_YEAR_TO_MONTH = 7,
    156     SQL_IS_DAY_TO_HOUR = 8,SQL_IS_DAY_TO_MINUTE = 9,SQL_IS_DAY_TO_SECOND = 10,SQL_IS_HOUR_TO_MINUTE = 11,SQL_IS_HOUR_TO_SECOND = 12,
    157     SQL_IS_MINUTE_TO_SECOND = 13
    158   } SQLINTERVAL;
    159 #endif
    160 
    161 #if (ODBCVER >= 0x0300)
    162   typedef struct tagSQL_YEAR_MONTH {
    163     SQLUINTEGER year;
    164     SQLUINTEGER month;
    165   } SQL_YEAR_MONTH_STRUCT;
    166 
    167   typedef struct tagSQL_DAY_SECOND {
    168     SQLUINTEGER day;
    169     SQLUINTEGER hour;
    170     SQLUINTEGER minute;
    171     SQLUINTEGER second;
    172     SQLUINTEGER fraction;
    173   } SQL_DAY_SECOND_STRUCT;
    174 
    175   typedef struct tagSQL_INTERVAL_STRUCT {
    176     SQLINTERVAL interval_type;
    177     SQLSMALLINT interval_sign;
    178     union {
    179       SQL_YEAR_MONTH_STRUCT year_month;
    180       SQL_DAY_SECOND_STRUCT day_second;
    181     } intval;
    182   } SQL_INTERVAL_STRUCT;
    183 #endif
    184 #endif
    185 
    186 #if (ODBCVER >= 0x0300)
    187 #define ODBCINT64 /* __MINGW_EXTENSION */ __int64
    188   __MINGW_EXTENSION typedef ODBCINT64 SQLBIGINT;
    189   __MINGW_EXTENSION typedef unsigned ODBCINT64 SQLUBIGINT;
    190 #endif
    191 
    192 #if (ODBCVER >= 0x0300)
    193 #define SQL_MAX_NUMERIC_LEN 16
    194   typedef struct tagSQL_NUMERIC_STRUCT {
    195     SQLCHAR precision;
    196     SQLSCHAR scale;
    197     SQLCHAR sign;
    198     SQLCHAR val[SQL_MAX_NUMERIC_LEN];
    199   } SQL_NUMERIC_STRUCT;
    200 #endif
    201 
    202 #if (ODBCVER >= 0x0350)
    203 #ifdef GUID_DEFINED
    204   typedef GUID SQLGUID;
    205 #else
    206 
    207   typedef struct tagSQLGUID {
    208     DWORD Data1;
    209     WORD Data2;
    210     WORD Data3;
    211     BYTE Data4[8 ];
    212   } SQLGUID;
    213 #endif
    214 #endif
    215 
    216   typedef SQLULEN BOOKMARK;
    217 
    218 #ifdef _WCHAR_T_DEFINED
    219   typedef wchar_t SQLWCHAR;
    220 #else
    221   typedef unsigned short SQLWCHAR;
    222 #endif
    223 
    224 #if defined(UNICODE)
    225   typedef SQLWCHAR SQLTCHAR;
    226 #else
    227   typedef SQLCHAR SQLTCHAR;
    228 #endif
    229 #endif
    230 
    231 #ifdef __cplusplus
    232 }
    233 #endif
    234 #endif
    235