master
  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 __ODBCSS
  7#define __ODBCSS
  8
  9#include <_mingw_unicode.h>
 10
 11#ifdef __cplusplus
 12extern "C" {
 13#endif
 14
 15#define SQL_MAX_SQLSERVERNAME 128
 16
 17#define SQL_COPT_SS_BASE 1200
 18#define SQL_COPT_SS_REMOTE_PWD (SQL_COPT_SS_BASE+1)
 19#define SQL_COPT_SS_USE_PROC_FOR_PREP (SQL_COPT_SS_BASE+2)
 20#define SQL_COPT_SS_INTEGRATED_SECURITY (SQL_COPT_SS_BASE+3)
 21#define SQL_COPT_SS_PRESERVE_CURSORS (SQL_COPT_SS_BASE+4)
 22#define SQL_COPT_SS_USER_DATA (SQL_COPT_SS_BASE+5)
 23#define SQL_COPT_SS_ENLIST_IN_DTC SQL_ATTR_ENLIST_IN_DTC
 24#define SQL_COPT_SS_ENLIST_IN_XA SQL_ATTR_ENLIST_IN_XA
 25
 26#define SQL_COPT_SS_FALLBACK_CONNECT (SQL_COPT_SS_BASE+10)
 27#define SQL_COPT_SS_PERF_DATA (SQL_COPT_SS_BASE+11)
 28#define SQL_COPT_SS_PERF_DATA_LOG (SQL_COPT_SS_BASE+12)
 29#define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13)
 30#define SQL_COPT_SS_PERF_QUERY_LOG (SQL_COPT_SS_BASE+14)
 31#define SQL_COPT_SS_PERF_QUERY (SQL_COPT_SS_BASE+15)
 32#define SQL_COPT_SS_PERF_DATA_LOG_NOW (SQL_COPT_SS_BASE+16)
 33#define SQL_COPT_SS_QUOTED_IDENT (SQL_COPT_SS_BASE+17)
 34#define SQL_COPT_SS_ANSI_NPW (SQL_COPT_SS_BASE+18)
 35#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19)
 36#define SQL_COPT_SS_TRANSLATE (SQL_COPT_SS_BASE+20)
 37#define SQL_COPT_SS_ATTACHDBFILENAME (SQL_COPT_SS_BASE+21)
 38#define SQL_COPT_SS_CONCAT_NULL (SQL_COPT_SS_BASE+22)
 39#define SQL_COPT_SS_ENCRYPT (SQL_COPT_SS_BASE+23)
 40
 41#define SQL_COPT_SS_MAX_USED SQL_COPT_SS_ENCRYPT
 42
 43#define SQL_SOPT_SS_BASE 1225
 44#define SQL_SOPT_SS_TEXTPTR_LOGGING (SQL_SOPT_SS_BASE+0)
 45#define SQL_SOPT_SS_CURRENT_COMMAND (SQL_SOPT_SS_BASE+1)
 46#define SQL_SOPT_SS_HIDDEN_COLUMNS (SQL_SOPT_SS_BASE+2)
 47#define SQL_SOPT_SS_NOBROWSETABLE (SQL_SOPT_SS_BASE+3)
 48#define SQL_SOPT_SS_REGIONALIZE (SQL_SOPT_SS_BASE+4)
 49#define SQL_SOPT_SS_CURSOR_OPTIONS (SQL_SOPT_SS_BASE+5)
 50#define SQL_SOPT_SS_NOCOUNT_STATUS (SQL_SOPT_SS_BASE+6)
 51#define SQL_SOPT_SS_DEFER_PREPARE (SQL_SOPT_SS_BASE+7)
 52
 53#define SQL_SOPT_SS_MAX_USED SQL_SOPT_SS_DEFER_PREPARE
 54
 55#define SQL_COPT_SS_BASE_EX 1240
 56#define SQL_COPT_SS_BROWSE_CONNECT (SQL_COPT_SS_BASE_EX+1)
 57#define SQL_COPT_SS_BROWSE_SERVER (SQL_COPT_SS_BASE_EX+2)
 58#define SQL_COPT_SS_WARN_ON_CP_ERROR (SQL_COPT_SS_BASE_EX+3)
 59
 60#define SQL_COPT_SS_CONNECTION_DEAD (SQL_COPT_SS_BASE_EX+4)
 61
 62#define SQL_COPT_SS_BROWSE_CACHE_DATA (SQL_COPT_SS_BASE_EX+5)
 63
 64#define SQL_COPT_SS_RESET_CONNECTION (SQL_COPT_SS_BASE_EX+6)
 65
 66#define SQL_COPT_SS_EX_MAX_USED SQL_COPT_SS_RESET_CONNECTION
 67
 68#define SQL_UP_OFF __MSABI_LONG(0)
 69#define SQL_UP_ON __MSABI_LONG(1)
 70#define SQL_UP_ON_DROP __MSABI_LONG(2)
 71#define SQL_UP_DEFAULT SQL_UP_ON
 72
 73#define SQL_IS_OFF __MSABI_LONG(0)
 74#define SQL_IS_ON __MSABI_LONG(1)
 75#define SQL_IS_DEFAULT SQL_IS_OFF
 76
 77#define SQL_PC_OFF __MSABI_LONG(0)
 78#define SQL_PC_ON __MSABI_LONG(1)
 79#define SQL_PC_DEFAULT SQL_PC_OFF
 80
 81#define SQL_UD_NOTSET NULL
 82
 83#define SQL_XL_OFF __MSABI_LONG(0)
 84#define SQL_XL_ON __MSABI_LONG(1)
 85#define SQL_XL_DEFAULT SQL_XL_ON
 86
 87#define SQL_FB_OFF __MSABI_LONG(0)
 88#define SQL_FB_ON __MSABI_LONG(1)
 89#define SQL_FB_DEFAULT SQL_FB_OFF
 90
 91#define SQL_BCP_OFF __MSABI_LONG(0)
 92#define SQL_BCP_ON __MSABI_LONG(1)
 93#define SQL_BCP_DEFAULT SQL_BCP_OFF
 94
 95#define SQL_QI_OFF __MSABI_LONG(0)
 96#define SQL_QI_ON __MSABI_LONG(1)
 97#define SQL_QI_DEFAULT SQL_QI_ON
 98
 99#define SQL_AD_OFF __MSABI_LONG(0)
100#define SQL_AD_ON __MSABI_LONG(1)
101#define SQL_AD_DEFAULT SQL_AD_ON
102
103#define SQL_CN_OFF __MSABI_LONG(0)
104#define SQL_CN_ON __MSABI_LONG(1)
105#define SQL_CN_DEFAULT SQL_CN_ON
106
107#define SQL_TL_OFF __MSABI_LONG(0)
108#define SQL_TL_ON __MSABI_LONG(1)
109#define SQL_TL_DEFAULT SQL_TL_ON
110
111#define SQL_HC_OFF __MSABI_LONG(0)
112#define SQL_HC_ON __MSABI_LONG(1)
113#define SQL_HC_DEFAULT SQL_HC_OFF
114
115#define SQL_NB_OFF __MSABI_LONG(0)
116#define SQL_NB_ON __MSABI_LONG(1)
117#define SQL_NB_DEFAULT SQL_NB_OFF
118
119#define SQL_RE_OFF __MSABI_LONG(0)
120#define SQL_RE_ON __MSABI_LONG(1)
121#define SQL_RE_DEFAULT SQL_RE_OFF
122
123#define SQL_CO_OFF __MSABI_LONG(0)
124#define SQL_CO_FFO __MSABI_LONG(1)
125#define SQL_CO_AF __MSABI_LONG(2)
126#define SQL_CO_FFO_AF (SQL_CO_FFO|SQL_CO_AF)
127#define SQL_CO_FIREHOSE_AF __MSABI_LONG(4)
128#define SQL_CO_DEFAULT SQL_CO_OFF
129
130#define SQL_NC_OFF __MSABI_LONG(0)
131#define SQL_NC_ON __MSABI_LONG(1)
132
133#define SQL_DP_OFF __MSABI_LONG(0)
134#define SQL_DP_ON __MSABI_LONG(1)
135
136#define SQL_EN_OFF __MSABI_LONG(0)
137#define SQL_EN_ON __MSABI_LONG(1)
138
139#define SQL_MORE_INFO_NO __MSABI_LONG(0)
140#define SQL_MORE_INFO_YES __MSABI_LONG(1)
141
142#define SQL_CACHE_DATA_NO __MSABI_LONG(0)
143#define SQL_CACHE_DATA_YES __MSABI_LONG(1)
144
145#define SQL_RESET_YES __MSABI_LONG(1)
146
147#define SQL_WARN_NO __MSABI_LONG(0)
148#define SQL_WARN_YES __MSABI_LONG(1)
149
150#define SQL_CURSOR_FAST_FORWARD_ONLY 8
151
152#define SQL_CA_SS_BASE 1200
153#define SQL_CA_SS_COLUMN_SSTYPE (SQL_CA_SS_BASE+0)
154#define SQL_CA_SS_COLUMN_UTYPE (SQL_CA_SS_BASE+1)
155#define SQL_CA_SS_NUM_ORDERS (SQL_CA_SS_BASE+2)
156#define SQL_CA_SS_COLUMN_ORDER (SQL_CA_SS_BASE+3)
157#define SQL_CA_SS_COLUMN_VARYLEN (SQL_CA_SS_BASE+4)
158#define SQL_CA_SS_NUM_COMPUTES (SQL_CA_SS_BASE+5)
159#define SQL_CA_SS_COMPUTE_ID (SQL_CA_SS_BASE+6)
160#define SQL_CA_SS_COMPUTE_BYLIST (SQL_CA_SS_BASE+7)
161#define SQL_CA_SS_COLUMN_ID (SQL_CA_SS_BASE+8)
162#define SQL_CA_SS_COLUMN_OP (SQL_CA_SS_BASE+9)
163#define SQL_CA_SS_COLUMN_SIZE (SQL_CA_SS_BASE+10)
164#define SQL_CA_SS_COLUMN_HIDDEN (SQL_CA_SS_BASE+11)
165#define SQL_CA_SS_COLUMN_KEY (SQL_CA_SS_BASE+12)
166
167#define SQL_CA_SS_COLUMN_COLLATION (SQL_CA_SS_BASE+14)
168#define SQL_CA_SS_VARIANT_TYPE (SQL_CA_SS_BASE+15)
169#define SQL_CA_SS_VARIANT_SQL_TYPE (SQL_CA_SS_BASE+16)
170#define SQL_CA_SS_VARIANT_SERVER_TYPE (SQL_CA_SS_BASE+17)
171#define SQL_CA_SS_MAX_USED (SQL_CA_SS_BASE+18)
172
173#define SQLTEXT 0x23
174#define SQLVARBINARY 0x25
175#define SQLINTN 0x26
176#define SQLVARCHAR 0x27
177#define SQLBINARY 0x2d
178#define SQLIMAGE 0x22
179#define SQLCHARACTER 0x2f
180#define SQLINT1 0x30
181#define SQLBIT 0x32
182#define SQLINT2 0x34
183#define SQLINT4 0x38
184#define SQLMONEY 0x3c
185#define SQLDATETIME 0x3d
186#define SQLFLT8 0x3e
187#define SQLFLTN 0x6d
188#define SQLMONEYN 0x6e
189#define SQLDATETIMN 0x6f
190#define SQLFLT4 0x3b
191#define SQLMONEY4 0x7a
192#define SQLDATETIM4 0x3a
193
194#define SQLDECIMAL 0x6a
195#define SQLNUMERIC 0x6c
196
197#define SQLUNIQUEID 0x24
198#define SQLBIGCHAR 0xaf
199#define SQLBIGVARCHAR 0xa7
200#define SQLBIGBINARY 0xad
201#define SQLBIGVARBINARY 0xa5
202#define SQLBITN 0x68
203#define SQLNCHAR 0xef
204#define SQLNVARCHAR 0xe7
205#define SQLNTEXT 0x63
206
207#define SQLINT8 0x7f
208#define SQLVARIANT 0x62
209
210#define SQLudtBINARY 3
211#define SQLudtBIT 16
212#define SQLudtBITN 0
213#define SQLudtCHAR 1
214#define SQLudtDATETIM4 22
215#define SQLudtDATETIME 12
216#define SQLudtDATETIMN 15
217#define SQLudtDECML 24
218#define SQLudtDECMLN 26
219#define SQLudtFLT4 23
220#define SQLudtFLT8 8
221#define SQLudtFLTN 14
222#define SQLudtIMAGE 20
223#define SQLudtINT1 5
224#define SQLudtINT2 6
225#define SQLudtINT4 7
226#define SQLudtINTN 13
227#define SQLudtMONEY 11
228#define SQLudtMONEY4 21
229#define SQLudtMONEYN 17
230#define SQLudtNUM 10
231#define SQLudtNUMN 25
232#define SQLudtSYSNAME 18
233#define SQLudtTEXT 19
234#define SQLudtTIMESTAMP 80
235#define SQLudtUNIQUEIDENTIFIER 0
236#define SQLudtVARBINARY 4
237#define SQLudtVARCHAR 2
238#define MIN_USER_DATATYPE 256
239
240#define SQLAOPSTDEV 0x30
241#define SQLAOPSTDEVP 0x31
242#define SQLAOPVAR 0x32
243#define SQLAOPVARP 0x33
244#define SQLAOPCNT 0x4b
245#define SQLAOPSUM 0x4d
246#define SQLAOPAVG 0x4f
247#define SQLAOPMIN 0x51
248#define SQLAOPMAX 0x52
249#define SQLAOPANY 0x53
250#define SQLAOPNOOP 0x56
251
252#define SQL_INFO_SS_FIRST 1199
253#define SQL_INFO_SS_NETLIB_NAMEW (SQL_INFO_SS_FIRST+0)
254#define SQL_INFO_SS_NETLIB_NAMEA (SQL_INFO_SS_FIRST+1)
255#define SQL_INFO_SS_MAX_USED SQL_INFO_SS_NETLIB_NAMEA
256
257#define SQL_INFO_SS_NETLIB_NAME __MINGW_NAME_AW(SQL_INFO_SS_NETLIB_NAME)
258
259#define SQL_SS_VARIANT -150
260
261#define SQL_DIAG_SS_BASE (-1150)
262#define SQL_DIAG_SS_MSGSTATE (SQL_DIAG_SS_BASE)
263#define SQL_DIAG_SS_SEVERITY (SQL_DIAG_SS_BASE-1)
264#define SQL_DIAG_SS_SRVNAME (SQL_DIAG_SS_BASE-2)
265#define SQL_DIAG_SS_PROCNAME (SQL_DIAG_SS_BASE-3)
266#define SQL_DIAG_SS_LINE (SQL_DIAG_SS_BASE-4)
267
268#define SQL_DIAG_DFC_SS_BASE (-200)
269#define SQL_DIAG_DFC_SS_ALTER_DATABASE (SQL_DIAG_DFC_SS_BASE-0)
270#define SQL_DIAG_DFC_SS_CHECKPOINT (SQL_DIAG_DFC_SS_BASE-1)
271#define SQL_DIAG_DFC_SS_CONDITION (SQL_DIAG_DFC_SS_BASE-2)
272#define SQL_DIAG_DFC_SS_CREATE_DATABASE (SQL_DIAG_DFC_SS_BASE-3)
273#define SQL_DIAG_DFC_SS_CREATE_DEFAULT (SQL_DIAG_DFC_SS_BASE-4)
274#define SQL_DIAG_DFC_SS_CREATE_PROCEDURE (SQL_DIAG_DFC_SS_BASE-5)
275#define SQL_DIAG_DFC_SS_CREATE_RULE (SQL_DIAG_DFC_SS_BASE-6)
276#define SQL_DIAG_DFC_SS_CREATE_TRIGGER (SQL_DIAG_DFC_SS_BASE-7)
277#define SQL_DIAG_DFC_SS_CURSOR_DECLARE (SQL_DIAG_DFC_SS_BASE-8)
278#define SQL_DIAG_DFC_SS_CURSOR_OPEN (SQL_DIAG_DFC_SS_BASE-9)
279#define SQL_DIAG_DFC_SS_CURSOR_FETCH (SQL_DIAG_DFC_SS_BASE-10)
280#define SQL_DIAG_DFC_SS_CURSOR_CLOSE (SQL_DIAG_DFC_SS_BASE-11)
281#define SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR (SQL_DIAG_DFC_SS_BASE-12)
282#define SQL_DIAG_DFC_SS_DBCC (SQL_DIAG_DFC_SS_BASE-13)
283#define SQL_DIAG_DFC_SS_DISK (SQL_DIAG_DFC_SS_BASE-14)
284#define SQL_DIAG_DFC_SS_DROP_DATABASE (SQL_DIAG_DFC_SS_BASE-15)
285#define SQL_DIAG_DFC_SS_DROP_DEFAULT (SQL_DIAG_DFC_SS_BASE-16)
286#define SQL_DIAG_DFC_SS_DROP_PROCEDURE (SQL_DIAG_DFC_SS_BASE-17)
287#define SQL_DIAG_DFC_SS_DROP_RULE (SQL_DIAG_DFC_SS_BASE-18)
288#define SQL_DIAG_DFC_SS_DROP_TRIGGER (SQL_DIAG_DFC_SS_BASE-19)
289#define SQL_DIAG_DFC_SS_DUMP_DATABASE (SQL_DIAG_DFC_SS_BASE-20)
290#define SQL_DIAG_DFC_SS_DUMP_TABLE (SQL_DIAG_DFC_SS_BASE-21)
291#define SQL_DIAG_DFC_SS_DUMP_TRANSACTION (SQL_DIAG_DFC_SS_BASE-22)
292#define SQL_DIAG_DFC_SS_GOTO (SQL_DIAG_DFC_SS_BASE-23)
293#define SQL_DIAG_DFC_SS_INSERT_BULK (SQL_DIAG_DFC_SS_BASE-24)
294#define SQL_DIAG_DFC_SS_KILL (SQL_DIAG_DFC_SS_BASE-25)
295#define SQL_DIAG_DFC_SS_LOAD_DATABASE (SQL_DIAG_DFC_SS_BASE-26)
296#define SQL_DIAG_DFC_SS_LOAD_HEADERONLY (SQL_DIAG_DFC_SS_BASE-27)
297#define SQL_DIAG_DFC_SS_LOAD_TABLE (SQL_DIAG_DFC_SS_BASE-28)
298#define SQL_DIAG_DFC_SS_LOAD_TRANSACTION (SQL_DIAG_DFC_SS_BASE-29)
299#define SQL_DIAG_DFC_SS_PRINT (SQL_DIAG_DFC_SS_BASE-30)
300#define SQL_DIAG_DFC_SS_RAISERROR (SQL_DIAG_DFC_SS_BASE-31)
301#define SQL_DIAG_DFC_SS_READTEXT (SQL_DIAG_DFC_SS_BASE-32)
302#define SQL_DIAG_DFC_SS_RECONFIGURE (SQL_DIAG_DFC_SS_BASE-33)
303#define SQL_DIAG_DFC_SS_RETURN (SQL_DIAG_DFC_SS_BASE-34)
304#define SQL_DIAG_DFC_SS_SELECT_INTO (SQL_DIAG_DFC_SS_BASE-35)
305#define SQL_DIAG_DFC_SS_SET (SQL_DIAG_DFC_SS_BASE-36)
306#define SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT (SQL_DIAG_DFC_SS_BASE-37)
307#define SQL_DIAG_DFC_SS_SET_ROW_COUNT (SQL_DIAG_DFC_SS_BASE-38)
308#define SQL_DIAG_DFC_SS_SET_STATISTICS (SQL_DIAG_DFC_SS_BASE-39)
309#define SQL_DIAG_DFC_SS_SET_TEXTSIZE (SQL_DIAG_DFC_SS_BASE-40)
310#define SQL_DIAG_DFC_SS_SETUSER (SQL_DIAG_DFC_SS_BASE-41)
311#define SQL_DIAG_DFC_SS_SHUTDOWN (SQL_DIAG_DFC_SS_BASE-42)
312#define SQL_DIAG_DFC_SS_TRANS_BEGIN (SQL_DIAG_DFC_SS_BASE-43)
313#define SQL_DIAG_DFC_SS_TRANS_COMMIT (SQL_DIAG_DFC_SS_BASE-44)
314#define SQL_DIAG_DFC_SS_TRANS_PREPARE (SQL_DIAG_DFC_SS_BASE-45)
315#define SQL_DIAG_DFC_SS_TRANS_ROLLBACK (SQL_DIAG_DFC_SS_BASE-46)
316#define SQL_DIAG_DFC_SS_TRANS_SAVE (SQL_DIAG_DFC_SS_BASE-47)
317#define SQL_DIAG_DFC_SS_TRUNCATE_TABLE (SQL_DIAG_DFC_SS_BASE-48)
318#define SQL_DIAG_DFC_SS_UPDATE_STATISTICS (SQL_DIAG_DFC_SS_BASE-49)
319#define SQL_DIAG_DFC_SS_UPDATETEXT (SQL_DIAG_DFC_SS_BASE-50)
320#define SQL_DIAG_DFC_SS_USE (SQL_DIAG_DFC_SS_BASE-51)
321#define SQL_DIAG_DFC_SS_WAITFOR (SQL_DIAG_DFC_SS_BASE-52)
322#define SQL_DIAG_DFC_SS_WRITETEXT (SQL_DIAG_DFC_SS_BASE-53)
323#define SQL_DIAG_DFC_SS_DENY (SQL_DIAG_DFC_SS_BASE-54)
324#define SQL_DIAG_DFC_SS_SET_XCTLVL (SQL_DIAG_DFC_SS_BASE-55)
325
326#define EX_ANY 0
327#define EX_INFO 10
328#define EX_MAXISEVERITY EX_INFO
329#define EX_MISSING 11
330#define EX_TYPE 12
331#define EX_DEADLOCK 13
332#define EX_PERMIT 14
333#define EX_SYNTAX 15
334#define EX_USER 16
335#define EX_RESOURCE 17
336#define EX_INTOK 18
337#define MAXUSEVERITY EX_INTOK
338#define EX_LIMIT 19
339#define EX_CMDFATAL 20
340#define MINFATALERR EX_CMDFATAL
341#define EX_DBFATAL 21
342#define EX_TABCORRUPT 22
343#define EX_DBCORRUPT 23
344#define EX_HARDWARE 24
345#define EX_CONTROL 25
346
347#ifndef MAXNUMERICLEN
348
349#define DBMAXCHAR (8000+1)
350#define MAXNAME (SQL_MAX_SQLSERVERNAME+1)
351
352#if defined(UNICODE)
353  typedef wchar_t DBCHAR;
354#else
355  typedef char DBCHAR;
356#endif
357  typedef unsigned char DBBINARY;
358  typedef unsigned char DBTINYINT;
359  typedef short DBSMALLINT;
360  typedef unsigned short DBUSMALLINT;
361  typedef double DBFLT8;
362  typedef unsigned char DBBIT;
363  typedef unsigned char DBBOOL;
364  typedef float DBFLT4;
365  typedef DBFLT4 DBREAL;
366  typedef UINT DBUBOOL;
367
368  typedef struct dbvarychar {
369    DBSMALLINT len;
370    DBCHAR str[DBMAXCHAR];
371  } DBVARYCHAR;
372
373  typedef struct dbvarybin {
374    DBSMALLINT len;
375    BYTE array[DBMAXCHAR];
376  } DBVARYBIN;
377
378  typedef struct dbmoney {
379    LONG mnyhigh;
380    ULONG mnylow;
381  } DBMONEY;
382
383  typedef struct dbdatetime {
384    LONG dtdays;
385    ULONG dttime;
386  } DBDATETIME;
387
388  typedef struct dbdatetime4 {
389    USHORT numdays;
390    USHORT nummins;
391  } DBDATETIM4;
392
393  typedef LONG DBMONEY4;
394
395#define DBNUM_PREC_TYPE BYTE
396#define DBNUM_SCALE_TYPE BYTE
397#define DBNUM_VAL_TYPE BYTE
398
399#if (ODBCVER < 0x0300)
400#define MAXNUMERICLEN 16
401
402  typedef struct dbnumeric {
403    DBNUM_PREC_TYPE precision;
404    DBNUM_SCALE_TYPE scale;
405    BYTE sign;
406    DBNUM_VAL_TYPE val[MAXNUMERICLEN];
407  } DBNUMERIC;
408  typedef DBNUMERIC DBDECIMAL;
409#else
410#define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
411  typedef SQL_NUMERIC_STRUCT DBNUMERIC;
412  typedef SQL_NUMERIC_STRUCT DBDECIMAL;
413#endif
414#endif
415
416#ifndef INT
417  typedef int INT;
418  typedef __LONG32 DBINT;
419#ifndef _LPCBYTE_DEFINED
420#define _LPCBYTE_DEFINED
421  typedef const LPBYTE LPCBYTE;
422#endif
423  typedef DBINT *LPDBINT;
424#endif
425
426  typedef struct sqlperf {
427    DWORD TimerResolution;
428    DWORD SQLidu;
429    DWORD SQLiduRows;
430    DWORD SQLSelects;
431    DWORD SQLSelectRows;
432    DWORD Transactions;
433    DWORD SQLPrepares;
434    DWORD ExecDirects;
435    DWORD SQLExecutes;
436    DWORD CursorOpens;
437    DWORD CursorSize;
438    DWORD CursorUsed;
439    LDOUBLE PercentCursorUsed;
440    LDOUBLE AvgFetchTime;
441    LDOUBLE AvgCursorSize;
442    LDOUBLE AvgCursorUsed;
443    DWORD SQLFetchTime;
444    DWORD SQLFetchCount;
445    DWORD CurrentStmtCount;
446    DWORD MaxOpenStmt;
447    DWORD SumOpenStmt;
448    DWORD CurrentConnectionCount;
449    DWORD MaxConnectionsOpened;
450    DWORD SumConnectionsOpened;
451    DWORD SumConnectiontime;
452    LDOUBLE AvgTimeOpened;
453    DWORD ServerRndTrips;
454    DWORD BuffersSent;
455    DWORD BuffersRec;
456    DWORD BytesSent;
457    DWORD BytesRec;
458    DWORD msExecutionTime;
459    DWORD msNetWorkServerTime;
460  } SQLPERF;
461
462#define SQL_PERF_START 1
463#define SQL_PERF_STOP 2
464
465#define SQL_SS_DL_DEFAULT TEXT("STATS.LOG")
466#define SQL_SS_QL_DEFAULT TEXT("QUERY.LOG")
467#define SQL_SS_QI_DEFAULT 30000
468
469#define SUCCEED 1
470#define FAIL 0
471#define SUCCEED_ABORT 2
472#define SUCCEED_ASYNC 3
473
474#define DB_IN 1
475#define DB_OUT 2
476
477#define BCPMAXERRS 1
478#define BCPFIRST 2
479#define BCPLAST 3
480#define BCPBATCH 4
481#define BCPKEEPNULLS 5
482#define BCPABORT 6
483#define BCPODBC 7
484#define BCPKEEPIDENTITY 8
485#define BCP6xFILEFMT 9
486#define BCPHINTSA 10
487#define BCPHINTSW 11
488#define BCPFILECP 12
489#define BCPUNICODEFILE 13
490#define BCPTEXTFILE 14
491#define BCPFILEFMT 15
492
493#define BCPFILECP_ACP 0
494#define BCPFILECP_OEMCP 1
495#define BCPFILECP_RAW (-1)
496
497#define SQL_VARLEN_DATA (-10)
498
499  DBINT SQL_API bcp_batch(HDBC);
500  RETCODE SQL_API bcp_bind(HDBC,LPCBYTE,INT,DBINT,LPCBYTE,INT,INT,INT);
501  RETCODE SQL_API bcp_colfmt(HDBC,INT,BYTE,INT,DBINT,LPCBYTE,INT,INT);
502  RETCODE SQL_API bcp_collen(HDBC,DBINT,INT);
503  RETCODE SQL_API bcp_colptr(HDBC,LPCBYTE,INT);
504  RETCODE SQL_API bcp_columns(HDBC,INT);
505  RETCODE SQL_API bcp_control(HDBC,INT,void *);
506  DBINT SQL_API bcp_done(HDBC);
507  RETCODE SQL_API bcp_exec(HDBC,LPDBINT);
508  RETCODE SQL_API bcp_getcolfmt(HDBC,INT,INT,void *,INT,INT *);
509  RETCODE SQL_API bcp_initA(HDBC,LPCSTR,LPCSTR,LPCSTR,INT);
510  RETCODE SQL_API bcp_initW(HDBC,LPCWSTR,LPCWSTR,LPCWSTR,INT);
511  RETCODE SQL_API bcp_moretext(HDBC,DBINT,LPCBYTE);
512  RETCODE SQL_API bcp_readfmtA(HDBC,LPCSTR);
513  RETCODE SQL_API bcp_readfmtW(HDBC,LPCWSTR);
514  RETCODE SQL_API bcp_sendrow(HDBC);
515  RETCODE SQL_API bcp_setcolfmt(HDBC,INT,INT,void *,INT);
516  RETCODE SQL_API bcp_writefmtA(HDBC,LPCSTR);
517  RETCODE SQL_API bcp_writefmtW(HDBC,LPCWSTR);
518  CHAR *SQL_API dbprtypeA(INT);
519  WCHAR *SQL_API dbprtypeW(INT);
520
521#define bcp_init __MINGW_NAME_AW(bcp_init)
522#define bcp_readfmt __MINGW_NAME_AW(bcp_readfmt)
523#define bcp_writefmt __MINGW_NAME_AW(bcp_writefmt)
524#define dbprtype __MINGW_NAME_AW(dbprtype)
525#define BCPHINTS __MINGW_NAME_AW(BCPHINTS)
526
527  SQLRETURN SQL_API SQLLinkedServers(SQLHSTMT);
528  SQLRETURN SQL_API SQLLinkedCatalogsA(SQLHSTMT,LPCSTR,SWORD);
529  SQLRETURN SQL_API SQLLinkedCatalogsW(SQLHSTMT,LPCWSTR,SWORD);
530  HANDLE SQL_API SQLInitEnumServers(WCHAR *pwchServerName,WCHAR *pwchInstanceName);
531  RETCODE SQL_API SQLGetNextEnumeration(HANDLE hEnumHandle,BYTE *prgEnumData,INT *piEnumLength);
532  RETCODE SQL_API SQLCloseEnumServers(HANDLE hEnumHandle);
533
534#define SQLLinkedCatalogs __MINGW_NAME_AW(SQLLinkedCatalogs)
535
536#define BCP_FMT_TYPE 0x01
537#define BCP_FMT_INDICATOR_LEN 0x02
538#define BCP_FMT_DATA_LEN 0x03
539#define BCP_FMT_TERMINATOR 0x04
540#define BCP_FMT_SERVER_COL 0x05
541#define BCP_FMT_COLLATION 0x06
542#define BCP_FMT_COLLATION_ID 0x07
543
544#define SQL_FAST_CONNECT (SQL_COPT_SS_BASE+0)
545
546#define SQL_FC_OFF __MSABI_LONG(0)
547#define SQL_FC_ON __MSABI_LONG(1)
548#define SQL_FC_DEFAULT SQL_FC_OFF
549#define SQL_COPT_SS_ANSI_OEM (SQL_COPT_SS_BASE+6)
550#define SQL_AO_OFF __MSABI_LONG(0)
551#define SQL_AO_ON __MSABI_LONG(1)
552#define SQL_AO_DEFAULT SQL_AO_OFF
553
554#define SQL_REMOTE_PWD SQL_COPT_SS_REMOTE_PWD
555#define SQL_USE_PROCEDURE_FOR_PREPARE SQL_COPT_SS_USE_PROC_FOR_PREP
556#define SQL_INTEGRATED_SECURITY SQL_COPT_SS_INTEGRATED_SECURITY
557#define SQL_PRESERVE_CURSORS SQL_COPT_SS_PRESERVE_CURSORS
558#define SQL_TEXTPTR_LOGGING SQL_SOPT_SS_TEXTPTR_LOGGING
559#define SQL_CA_SS_BASE_COLUMN_NAME SQL_DESC_BASE_COLUMN_NAME
560#define SQLDECIMALN 0x6a
561#define SQLNUMERICN 0x6c
562
563#ifdef __cplusplus
564}
565#endif
566#endif