Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/fakesql.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /* | |
2 * fakesql.h -- | |
3 * | |
4 * Include file that defines the subset of SQL/CLI that TDBC | |
5 * uses, so that tdbc::odbc can build without an explicit ODBC | |
6 * dependency. It comprises only data type, constant and | |
7 * function declarations. | |
8 * | |
9 * The programmers of this file believe that it contains material not | |
10 * subject to copyright under the doctrines of scenes a faire and | |
11 * of merger of idea and expression. Accordingly, this file is in the | |
12 * public domain. | |
13 * | |
14 *----------------------------------------------------------------------------- | |
15 */ | |
16 | |
17 #ifndef FAKESQL_H_INCLUDED | |
18 #define FAKESQL_H_INCLUDED | |
19 | |
20 #include <stddef.h> | |
21 | |
22 #ifndef MODULE_SCOPE | |
23 #define MODULE_SCOPE extern | |
24 #endif | |
25 | |
26 /* Limits */ | |
27 | |
28 #define SQL_MAX_DSN_LENGTH 32 | |
29 #define SQL_MAX_MESSAGE_LENGTH 512 | |
30 | |
31 /* Fundamental data types */ | |
32 | |
33 #ifndef _WIN32 | |
34 typedef int BOOL; | |
35 typedef unsigned int DWORD; | |
36 typedef void* HANDLE; | |
37 typedef HANDLE HWND; | |
38 typedef unsigned short WCHAR; | |
39 typedef char* LPSTR; | |
40 typedef WCHAR* LPWSTR; | |
41 typedef const char* LPCSTR; | |
42 typedef const WCHAR* LPCWSTR; | |
43 typedef unsigned short WORD; | |
44 #endif | |
45 typedef void* PVOID; | |
46 typedef short RETCODE; | |
47 typedef long SDWORD; | |
48 typedef short SWORD; | |
49 typedef unsigned short USHORT; | |
50 typedef USHORT UWORD; | |
51 | |
52 /* ODBC data types */ | |
53 | |
54 typedef Tcl_WideInt SQLBIGINT; | |
55 typedef unsigned char SQLCHAR; | |
56 typedef double SQLDOUBLE; | |
57 typedef void* SQLHANDLE; | |
58 typedef SDWORD SQLINTEGER; | |
59 typedef PVOID SQLPOINTER; | |
60 typedef SWORD SQLSMALLINT; | |
61 typedef Tcl_WideUInt SQLUBIGINT; | |
62 typedef unsigned char SQLUCHAR; | |
63 typedef unsigned int SQLUINTEGER; | |
64 typedef UWORD SQLUSMALLINT; | |
65 typedef WCHAR SQLWCHAR; | |
66 | |
67 typedef SQLSMALLINT SQLRETURN; | |
68 | |
69 /* TODO - Check how the SQLLEN and SQLULEN types are handled on | |
70 * 64-bit Unix. */ | |
71 | |
72 #if defined(_WIN64) | |
73 typedef Tcl_WideInt SQLLEN; | |
74 typedef Tcl_WideUInt SQLULEN; | |
75 #else | |
76 typedef SQLINTEGER SQLLEN; | |
77 typedef SQLUINTEGER SQLULEN; | |
78 #endif | |
79 | |
80 /* Handle types */ | |
81 | |
82 typedef SQLHANDLE SQLHENV; | |
83 typedef SQLHANDLE SQLHDBC; | |
84 typedef SQLHANDLE SQLHSTMT; | |
85 typedef HWND SQLHWND; | |
86 | |
87 #define SQL_HANDLE_DBC 2 | |
88 #define SQL_HANDLE_ENV 1 | |
89 #define SQL_HANDLE_STMT 3 | |
90 | |
91 /* Null handles */ | |
92 | |
93 #define SQL_NULL_HANDLE ((SQLHANDLE) 0) | |
94 #define SQL_NULL_HENV ((SQLHENV) 0) | |
95 #define SQL_NULL_HDBC ((SQLHDBC) 0) | |
96 #define SQL_NULL_HSTMT ((SQLHSTMT) 0) | |
97 | |
98 /* SQL data types */ | |
99 | |
100 enum _SQL_DATATYPE { | |
101 SQL_BIGINT = -5, | |
102 SQL_BINARY = -2, | |
103 SQL_BIT = -7, | |
104 SQL_CHAR = 1, | |
105 SQL_DATE = 9, | |
106 SQL_DECIMAL = 3, | |
107 SQL_DOUBLE = 8, | |
108 SQL_FLOAT = 6, | |
109 SQL_INTEGER = 4, | |
110 SQL_LONGVARBINARY = -4, | |
111 SQL_LONGVARCHAR = -1, | |
112 SQL_NUMERIC = 2, | |
113 SQL_REAL = 7, | |
114 SQL_SMALLINT = 5, | |
115 SQL_TIME = 10, | |
116 SQL_TIMESTAMP = 11, | |
117 SQL_TINYINT = -6, | |
118 SQL_VARBINARY = -3, | |
119 SQL_VARCHAR = 12, | |
120 SQL_WCHAR = -8, | |
121 SQL_WVARCHAR = -9, | |
122 SQL_WLONGVARCHAR = -10, | |
123 }; | |
124 | |
125 /* C data types */ | |
126 | |
127 #define SQL_SIGNED_OFFSET (-20) | |
128 | |
129 #define SQL_C_BINARY SQL_BINARY | |
130 #define SQL_C_CHAR SQL_CHAR | |
131 #define SQL_C_DOUBLE SQL_DOUBLE | |
132 #define SQL_C_LONG SQL_INTEGER | |
133 #define SQL_C_SBIGINT SQL_BIGINT + SQL_SIGNED_OFFSET | |
134 #define SQL_C_SLONG SQL_INTEGER + SQL_SIGNED_OFFSET | |
135 #define SQL_C_WCHAR SQL_WCHAR | |
136 | |
137 /* Parameter transmission diretions */ | |
138 | |
139 #define SQL_PARAM_INPUT 1 | |
140 | |
141 /* Status returns */ | |
142 | |
143 #define SQL_ERROR (-1) | |
144 #define SQL_NO_DATA 100 | |
145 #define SQL_NO_TOTAL (-4) | |
146 #define SQL_SUCCESS 0 | |
147 #define SQL_SUCCESS_WITH_INFO 1 | |
148 #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) | |
149 | |
150 /* Diagnostic fields */ | |
151 | |
152 enum _SQL_DIAG { | |
153 SQL_DIAG_NUMBER = 2, | |
154 SQL_DIAG_SQLSTATE = 4 | |
155 }; | |
156 | |
157 /* Transaction isolation levels */ | |
158 | |
159 #define SQL_TXN_READ_COMMITTED 2 | |
160 #define SQL_TXN_READ_UNCOMMITTED 1 | |
161 #define SQL_TXN_REPEATABLE_READ 4 | |
162 #define SQL_TXN_SERIALIZABLE 8 | |
163 | |
164 /* Access modes */ | |
165 | |
166 #define SQL_MODE_READ_ONLY 1UL | |
167 #define SQL_MODE_READ_WRITE 0UL | |
168 | |
169 /* ODBC properties */ | |
170 | |
171 #define SQL_ACCESS_MODE 101 | |
172 #define SQL_AUTOCOMMIT 102 | |
173 #define SQL_TXN_ISOLATION 108 | |
174 | |
175 /* ODBC attributes */ | |
176 | |
177 #define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE | |
178 #define SQL_ATTR_CONNECTION_TIMEOUT 113 | |
179 #define SQL_ATTR_ODBC_VERSION 200 | |
180 #define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION | |
181 #define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT | |
182 | |
183 /* Nullable? */ | |
184 | |
185 #define SQL_NULLABLE_UNKNOWN 2 | |
186 | |
187 /* Placeholder for length of missing data */ | |
188 | |
189 #define SQL_NULL_DATA (-1) | |
190 | |
191 /* ODBC versions */ | |
192 | |
193 #define SQL_OV_ODBC3 3UL | |
194 #define SQL_ODBC_VER 10 | |
195 | |
196 /* SQLDriverConnect flags */ | |
197 | |
198 #define SQL_DRIVER_COMPLETE_REQUIRED 3 | |
199 #define SQL_DRIVER_NOPROMPT 0 | |
200 | |
201 /* SQLGetTypeInfo flags */ | |
202 | |
203 #define SQL_ALL_TYPES 0 | |
204 | |
205 /* Transaction actions */ | |
206 | |
207 #define SQL_COMMIT 0 | |
208 #define SQL_ROLLBACK 1 | |
209 | |
210 /* Data source fetch flags */ | |
211 | |
212 #define SQL_FETCH_FIRST 2 | |
213 #define SQL_FETCH_FIRST_SYSTEM 32 | |
214 #define SQL_FETCH_FIRST_USER 31 | |
215 #define SQL_FETCH_NEXT 1 | |
216 | |
217 /* ODBCINST actions */ | |
218 | |
219 #define ODBC_ADD_DSN 1 | |
220 #define ODBC_CONFIG_DSN 2 | |
221 #define ODBC_REMOVE_DSN 3 | |
222 #define ODBC_ADD_SYS_DSN 4 | |
223 #define ODBC_CONFIG_SYS_DSN 5 | |
224 #define ODBC_REMOVE_SYS_DSN 6 | |
225 | |
226 /* ODBCINST errors */ | |
227 | |
228 #define ODBC_ERROR_GENERAL_ERR 1 | |
229 #define ODBC_ERROR_INVALID_BUFF_LEN 2 | |
230 #define ODBC_ERROR_INVALID_HWND 3 | |
231 #define ODBC_ERROR_INVALID_STR 4 | |
232 #define ODBC_ERROR_INVALID_REQUEST_TYPE 5 | |
233 #define ODBC_ERROR_COMPONENT_NOT_FOUND 6 | |
234 #define ODBC_ERROR_INVALID_NAME 7 | |
235 #define ODBC_ERROR_INVALID_KEYWORD_VALUE 8 | |
236 #define ODBC_ERROR_INVALID_DSN 9 | |
237 #define ODBC_ERROR_INVALID_INF 10 | |
238 #define ODBC_ERROR_REQUEST_FAILED 11 | |
239 #define ODBC_ERROR_INVALID_PATH 12 | |
240 #define ODBC_ERROR_LOAD_LIB_FAILED 13 | |
241 #define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14 | |
242 #define ODBC_ERROR_INVALID_LOG_FILE 15 | |
243 #define ODBC_ERROR_USER_CANCELED 16 | |
244 #define ODBC_ERROR_USAGE_UPDATE_FAILED 17 | |
245 #define ODBC_ERROR_CREATE_DSN_FAILED 18 | |
246 #define ODBC_ERROR_WRITING_SYSINFO_FAILED 19 | |
247 #define ODBC_ERROR_REMOVE_DSN_FAILED 20 | |
248 #define ODBC_ERROR_OUT_OF_MEM 21 | |
249 #define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22 | |
250 | |
251 /* ODBC client library entry points */ | |
252 | |
253 #ifdef _WIN32 | |
254 #define SQL_API __stdcall | |
255 #define INSTAPI __stdcall | |
256 #else | |
257 #define SQL_API /* nothing */ | |
258 #define INSTAPI /* nothing */ | |
259 #endif | |
260 | |
261 #include "odbcStubs.h" | |
262 MODULE_SCOPE const odbcStubDefs* odbcStubs; | |
263 | |
264 /* | |
265 * Additional entry points in ODBCINST - all of these are optional | |
266 * and resolved with Tcl_FindSymbol, not directly in Tcl_LoadLibrary. | |
267 */ | |
268 | |
269 MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSourceW)(HWND, WORD, LPCWSTR, | |
270 LPCWSTR); | |
271 MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR); | |
272 MODULE_SCOPE BOOL (INSTAPI* SQLInstallerErrorW)(WORD, DWORD*, LPWSTR, WORD, | |
273 WORD*); | |
274 MODULE_SCOPE BOOL (INSTAPI* SQLInstallerError)(WORD, DWORD*, LPSTR, WORD, | |
275 WORD*); | |
276 | |
277 /* | |
278 * Function that initialises the stubs | |
279 */ | |
280 | |
281 MODULE_SCOPE Tcl_LoadHandle OdbcInitStubs(Tcl_Interp*, Tcl_LoadHandle*); | |
282 | |
283 #endif |