sqltypes.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /*
  2. * Copyright (C) 1999 Xiang Li
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17. */
  18. #ifndef __SQLTYPES_H
  19. #define __SQLTYPES_H
  20. #ifndef ODBCVER
  21. #define ODBCVER 0x0351
  22. #endif
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. typedef unsigned char SQLCHAR;
  27. #if (ODBCVER >= 0x0300)
  28. typedef unsigned char SQLDATE;
  29. typedef unsigned char SQLDECIMAL;
  30. typedef double SQLDOUBLE;
  31. typedef double SQLFLOAT;
  32. #endif
  33. typedef long SQLINTEGER;
  34. #if (ODBCVER >= 0x0300)
  35. typedef unsigned char SQLNUMERIC;
  36. #endif
  37. typedef void * SQLPOINTER;
  38. #if (ODBCVER >= 0x0300)
  39. typedef float SQLREAL;
  40. #endif
  41. typedef signed short int SQLSMALLINT;
  42. typedef unsigned short SQLUSMALLINT;
  43. #if (ODBCVER >= 0x0300)
  44. typedef unsigned char SQLTIME;
  45. typedef unsigned char SQLTIMESTAMP;
  46. typedef unsigned char SQLVARCHAR;
  47. #endif
  48. typedef SQLSMALLINT SQLRETURN;
  49. /* typedef void * SQLHANDLE; */
  50. typedef SQLINTEGER SQLHANDLE;
  51. #if (ODBCVER >= 0x0300)
  52. typedef SQLHANDLE SQLHENV;
  53. typedef SQLHANDLE SQLHDBC;
  54. typedef SQLHANDLE SQLHSTMT;
  55. typedef SQLHANDLE SQLHDESC;
  56. #else
  57. typedef SQLINTEGER SQLHENV;
  58. typedef SQLINTEGER SQLHDBC;
  59. typedef SQLINTEGER SQLHSTMT;
  60. #endif
  61. typedef signed char SCHAR;
  62. typedef SCHAR SQLSCHAR;
  63. typedef long int SDWORD;
  64. typedef signed short int SWORD;
  65. typedef unsigned long int UDWORD;
  66. typedef unsigned short int UWORD;
  67. typedef UDWORD SQLUINTEGER;
  68. typedef signed long SLONG;
  69. typedef signed short SSHORT;
  70. typedef double SDOUBLE;
  71. typedef double LDOUBLE;
  72. typedef float SFLOAT;
  73. typedef void* PTR;
  74. typedef signed short RETCODE;
  75. typedef void* SQLHWND;
  76. typedef SQLHANDLE HENV;
  77. typedef SQLHANDLE HDBC;
  78. typedef SQLHANDLE HSTMT;
  79. #ifndef __SQLDATE
  80. #define __SQLDATE
  81. typedef struct tagDATE_STRUCT
  82. {
  83. SQLSMALLINT year;
  84. SQLUSMALLINT month;
  85. SQLUSMALLINT day;
  86. } DATE_STRUCT;
  87. #if (ODBCVER >= 0x0300)
  88. typedef DATE_STRUCT SQL_DATE_STRUCT;
  89. #endif
  90. typedef struct tagTIME_STRUCT
  91. {
  92. SQLUSMALLINT hour;
  93. SQLUSMALLINT minute;
  94. SQLUSMALLINT second;
  95. } TIME_STRUCT;
  96. #if (ODBCVER >= 0x0300)
  97. typedef TIME_STRUCT SQL_TIME_STRUCT;
  98. #endif
  99. typedef struct tagTIMESTAMP_STRUCT
  100. {
  101. SQLSMALLINT year;
  102. SQLUSMALLINT month;
  103. SQLUSMALLINT day;
  104. SQLUSMALLINT hour;
  105. SQLUSMALLINT minute;
  106. SQLUSMALLINT second;
  107. SQLUINTEGER fraction;
  108. } TIMESTAMP_STRUCT;
  109. #if (ODBCVER >= 0x0300)
  110. typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
  111. #endif
  112. #if (ODBCVER >= 0x0300)
  113. typedef enum
  114. {
  115. SQL_IS_YEAR = 1,
  116. SQL_IS_MONTH = 2,
  117. SQL_IS_DAY = 3,
  118. SQL_IS_HOUR = 4,
  119. SQL_IS_MINUTE = 5,
  120. SQL_IS_SECOND = 6,
  121. SQL_IS_YEAR_TO_MONTH = 7,
  122. SQL_IS_DAY_TO_HOUR = 8,
  123. SQL_IS_DAY_TO_MINUTE = 9,
  124. SQL_IS_DAY_TO_SECOND = 10,
  125. SQL_IS_HOUR_TO_MINUTE = 11,
  126. SQL_IS_HOUR_TO_SECOND = 12,
  127. SQL_IS_MINUTE_TO_SECOND = 13
  128. } SQLINTERVAL;
  129. #endif
  130. #if (ODBCVER >= 0x0300)
  131. typedef struct tagSQL_YEAR_MONTH
  132. {
  133. SQLUINTEGER year;
  134. SQLUINTEGER month;
  135. } SQL_YEAR_MONTH_STRUCT;
  136. typedef struct tagSQL_DAY_SECOND
  137. {
  138. SQLUINTEGER day;
  139. SQLUINTEGER hour;
  140. SQLUINTEGER minute;
  141. SQLUINTEGER second;
  142. SQLUINTEGER fraction;
  143. } SQL_DAY_SECOND_STRUCT;
  144. typedef struct tagSQL_INTERVAL_STRUCT
  145. {
  146. SQLINTERVAL interval_type;
  147. SQLSMALLINT interval_sign;
  148. union {
  149. SQL_YEAR_MONTH_STRUCT year_month;
  150. SQL_DAY_SECOND_STRUCT day_second;
  151. } intval;
  152. } SQL_INTERVAL_STRUCT;
  153. #endif
  154. #endif
  155. #if (ODBCVER >= 0x0300)
  156. #define ODBCINT64 long
  157. #ifdef ODBCINT64
  158. typedef ODBCINT64 SQLBIGINT;
  159. typedef unsigned ODBCINT64 SQLUBIGINT;
  160. #endif
  161. #endif
  162. #if (ODBCVER >= 0x0300)
  163. #define SQL_MAX_NUMERIC_LEN 16
  164. typedef struct tagSQL_NUMERIC_STRUCT
  165. {
  166. SQLCHAR precision;
  167. SQLSCHAR scale;
  168. SQLCHAR sign; /* 1=pos 0=neg */
  169. SQLCHAR val[SQL_MAX_NUMERIC_LEN];
  170. } SQL_NUMERIC_STRUCT;
  171. #endif
  172. #if (ODBCVER >= 0x0350)
  173. #ifdef GUID_DEFINED
  174. typedef GUID SQLGUID;
  175. #else
  176. typedef struct tagSQLGUID
  177. {
  178. DWORD Data1;
  179. WORD Data2;
  180. WORD Data3;
  181. BYTE Data4[ 8 ];
  182. } SQLGUID;
  183. #endif
  184. #endif
  185. typedef unsigned long int BOOKMARK;
  186. #define SQL_WCHAR (-8)
  187. #define SQL_C_WCHAR SQL_WCHAR
  188. #ifdef __cplusplus
  189. }
  190. #endif
  191. #endif