blob: bb2dd4a65d4f8040ae24b4cf48f5b64d4556b070 [file] [log] [blame]
Alexandre Julliard8551f8c1999-12-11 23:56:46 +00001/*
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00002 * 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
Alexandre Julliard8551f8c1999-12-11 23:56:46 +000017 */
Alexandre Julliard0799c1a2002-03-09 23:29:33 +000018
Alexandre Julliard8551f8c1999-12-11 23:56:46 +000019#ifndef __SQLTYPES_H
20#define __SQLTYPES_H
21
22#ifndef ODBCVER
23#define ODBCVER 0x0351
24#endif
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
Alexandre Julliard8551f8c1999-12-11 23:56:46 +000030typedef unsigned char SQLCHAR;
31
32#if (ODBCVER >= 0x0300)
33typedef unsigned char SQLDATE;
34typedef unsigned char SQLDECIMAL;
35typedef double SQLDOUBLE;
36typedef double SQLFLOAT;
37#endif
38
39typedef long SQLINTEGER;
40
41#if (ODBCVER >= 0x0300)
42typedef unsigned char SQLNUMERIC;
43#endif
44
45typedef void * SQLPOINTER;
46
47#if (ODBCVER >= 0x0300)
48typedef float SQLREAL;
49#endif
50
51typedef signed short int SQLSMALLINT;
52typedef unsigned short SQLUSMALLINT;
53
54#if (ODBCVER >= 0x0300)
55typedef unsigned char SQLTIME;
56typedef unsigned char SQLTIMESTAMP;
57typedef unsigned char SQLVARCHAR;
58#endif
59
60typedef SQLSMALLINT SQLRETURN;
61
62/* typedef void * SQLHANDLE; */
63
64typedef SQLINTEGER SQLHANDLE;
65#if (ODBCVER >= 0x0300)
66
67typedef SQLHANDLE SQLHENV;
68typedef SQLHANDLE SQLHDBC;
69typedef SQLHANDLE SQLHSTMT;
70typedef SQLHANDLE SQLHDESC;
71
72#else
73typedef SQLINTEGER SQLHENV;
74typedef SQLINTEGER SQLHDBC;
75typedef SQLINTEGER SQLHSTMT;
76#endif
77
78typedef signed char SCHAR;
79typedef SCHAR SQLSCHAR;
80typedef long int SDWORD;
81typedef signed short int SWORD;
82typedef unsigned long int UDWORD;
83typedef unsigned short int UWORD;
84typedef UDWORD SQLUINTEGER;
85typedef signed long SLONG;
86typedef signed short SSHORT;
87typedef double SDOUBLE;
88typedef double LDOUBLE;
89typedef float SFLOAT;
90typedef void* PTR;
91typedef signed short RETCODE;
92typedef void* SQLHWND;
93
94typedef SQLHANDLE HENV;
95typedef SQLHANDLE HDBC;
96typedef SQLHANDLE HSTMT;
97
98#ifndef __SQLDATE
99#define __SQLDATE
100typedef struct tagDATE_STRUCT
101{
102 SQLSMALLINT year;
103 SQLUSMALLINT month;
104 SQLUSMALLINT day;
105} DATE_STRUCT;
106
107#if (ODBCVER >= 0x0300)
108typedef DATE_STRUCT SQL_DATE_STRUCT;
109#endif
110
111typedef struct tagTIME_STRUCT
112{
113 SQLUSMALLINT hour;
114 SQLUSMALLINT minute;
115 SQLUSMALLINT second;
116} TIME_STRUCT;
117
118#if (ODBCVER >= 0x0300)
119typedef TIME_STRUCT SQL_TIME_STRUCT;
120#endif
121
122typedef struct tagTIMESTAMP_STRUCT
123{
124 SQLSMALLINT year;
125 SQLUSMALLINT month;
126 SQLUSMALLINT day;
127 SQLUSMALLINT hour;
128 SQLUSMALLINT minute;
129 SQLUSMALLINT second;
130 SQLUINTEGER fraction;
131} TIMESTAMP_STRUCT;
132
133#if (ODBCVER >= 0x0300)
134typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
135#endif
136
137
138#if (ODBCVER >= 0x0300)
139typedef enum
140{
141 SQL_IS_YEAR = 1,
142 SQL_IS_MONTH = 2,
143 SQL_IS_DAY = 3,
144 SQL_IS_HOUR = 4,
145 SQL_IS_MINUTE = 5,
146 SQL_IS_SECOND = 6,
147 SQL_IS_YEAR_TO_MONTH = 7,
148 SQL_IS_DAY_TO_HOUR = 8,
149 SQL_IS_DAY_TO_MINUTE = 9,
150 SQL_IS_DAY_TO_SECOND = 10,
151 SQL_IS_HOUR_TO_MINUTE = 11,
152 SQL_IS_HOUR_TO_SECOND = 12,
153 SQL_IS_MINUTE_TO_SECOND = 13
154} SQLINTERVAL;
155
156#endif
157
158#if (ODBCVER >= 0x0300)
159typedef struct tagSQL_YEAR_MONTH
160{
161 SQLUINTEGER year;
162 SQLUINTEGER month;
163} SQL_YEAR_MONTH_STRUCT;
164
165typedef struct tagSQL_DAY_SECOND
166{
167 SQLUINTEGER day;
168 SQLUINTEGER hour;
169 SQLUINTEGER minute;
170 SQLUINTEGER second;
171 SQLUINTEGER fraction;
172} SQL_DAY_SECOND_STRUCT;
173
174typedef struct tagSQL_INTERVAL_STRUCT
175{
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
183} SQL_INTERVAL_STRUCT;
184
185#endif
186
187#endif
188
189#if (ODBCVER >= 0x0300)
190#define ODBCINT64 long
191#ifdef ODBCINT64
192typedef ODBCINT64 SQLBIGINT;
193typedef unsigned ODBCINT64 SQLUBIGINT;
194#endif
195#endif
196
197#if (ODBCVER >= 0x0300)
198#define SQL_MAX_NUMERIC_LEN 16
199typedef struct tagSQL_NUMERIC_STRUCT
200{
201 SQLCHAR precision;
202 SQLSCHAR scale;
203 SQLCHAR sign; /* 1=pos 0=neg */
204 SQLCHAR val[SQL_MAX_NUMERIC_LEN];
205} SQL_NUMERIC_STRUCT;
206#endif
207
208#if (ODBCVER >= 0x0350)
209#ifdef GUID_DEFINED
210typedef GUID SQLGUID;
211#else
212typedef struct tagSQLGUID
213{
214 DWORD Data1;
215 WORD Data2;
216 WORD Data3;
217 BYTE Data4[ 8 ];
218} SQLGUID;
219#endif
220#endif
221
222
223typedef unsigned long int BOOKMARK;
224
225#define SQL_WCHAR (-8)
226#define SQL_C_WCHAR SQL_WCHAR
227
228#ifdef __cplusplus
229}
230#endif
231
232#endif