00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __SQLTYPES
00024
00025 #define __SQLTYPES
00026
00027
00028
00029
00030
00031 #ifndef ODBCVER
00032
00033 #define ODBCVER 0x0351
00034
00035 #endif
00036
00037
00038
00039 #ifdef __cplusplus
00040
00041 extern "C" {
00042
00043 #endif
00044
00045
00046
00047
00048
00049 #ifndef EXPORT
00050
00051 #define EXPORT
00052
00053 #endif
00054
00055
00056
00057 #ifdef WIN32
00058
00059 #define SQL_API __stdcall
00060
00061 #else
00062
00063 #define SQL_API
00064
00065 #endif
00066
00067
00068
00069 #ifndef RC_INVOKED
00070
00071
00072
00073
00074
00075 typedef unsigned char SQLCHAR;
00076
00077 #if (ODBCVER >= 0x0300)
00078
00079 typedef signed char SQLSCHAR;
00080
00081 typedef unsigned char SQLDATE;
00082
00083 typedef unsigned char SQLDECIMAL;
00084
00085 typedef double SQLDOUBLE;
00086
00087 typedef double SQLFLOAT;
00088
00089 #endif
00090
00091 typedef long SQLINTEGER;
00092
00093 typedef unsigned long SQLUINTEGER;
00094
00095
00096
00097 #ifdef _WIN64
00098
00099 typedef INT64 SQLLEN;
00100
00101 typedef UINT64 SQLULEN;
00102
00103 typedef UINT64 SQLSETPOSIROW;
00104
00105 #else
00106
00107 #define SQLLEN SQLINTEGER
00108
00109 #define SQLULEN SQLUINTEGER
00110
00111 #define SQLSETPOSIROW SQLUSMALLINT
00112
00113 #endif
00114
00115
00116
00117
00118
00119 #ifdef WIN32
00120
00121 typedef SQLULEN SQLROWCOUNT;
00122
00123 typedef SQLULEN SQLROWSETSIZE;
00124
00125 typedef SQLULEN SQLTRANSID;
00126
00127 typedef SQLLEN SQLROWOFFSET;
00128
00129 #endif
00130
00131
00132
00133 #if (ODBCVER >= 0x0300)
00134
00135 typedef unsigned char SQLNUMERIC;
00136
00137 #endif
00138
00139 typedef void * SQLPOINTER;
00140
00141 #if (ODBCVER >= 0x0300)
00142
00143 typedef float SQLREAL;
00144
00145 #endif
00146
00147 typedef short SQLSMALLINT;
00148
00149 typedef unsigned short SQLUSMALLINT;
00150
00151 #if (ODBCVER >= 0x0300)
00152
00153 typedef unsigned char SQLTIME;
00154
00155 typedef unsigned char SQLTIMESTAMP;
00156
00157 typedef unsigned char SQLVARCHAR;
00158
00159 #endif
00160
00161
00162
00163
00164
00165 typedef SQLSMALLINT SQLRETURN;
00166
00167
00168
00169
00170
00171 #if (ODBCVER >= 0x0300)
00172
00173 #if defined(WIN32) || defined(_WIN64)
00174
00175 typedef void* SQLHANDLE;
00176
00177 #else
00178
00179 typedef SQLINTEGER SQLHANDLE;
00180
00181 #endif
00182
00183 typedef SQLHANDLE SQLHENV;
00184
00185 typedef SQLHANDLE SQLHDBC;
00186
00187 typedef SQLHANDLE SQLHSTMT;
00188
00189 typedef SQLHANDLE SQLHDESC;
00190
00191 #else //ODBCVER < 0x0300
00192
00193 #if defined(WIN32) || defined(_WIN64)
00194
00195 typedef void* SQLHENV;
00196
00197 typedef void* SQLHDBC;
00198
00199 typedef void* SQLHSTMT;
00200
00201 #else
00202
00203 typedef SQLINTEGER SQLHENV;
00204
00205 typedef SQLINTEGER SQLHDBC;
00206
00207 typedef SQLINTEGER SQLHSTMT;
00208
00209 #endif
00210
00211 #endif
00212
00213
00214
00215
00216
00217 typedef unsigned char UCHAR;
00218
00219 typedef signed char SCHAR;
00220
00221 typedef SCHAR SQLSCHAR;
00222
00223 typedef long int SDWORD;
00224
00225 typedef short int SWORD;
00226
00227 typedef unsigned long int UDWORD;
00228
00229 typedef unsigned short int UWORD;
00230
00231 #ifndef _WIN64
00232
00233 typedef UDWORD SQLUINTEGER;
00234
00235 #endif
00236
00237
00238
00239 typedef signed long SLONG;
00240
00241 typedef signed short SSHORT;
00242
00243 typedef unsigned long ULONG;
00244
00245 typedef unsigned short USHORT;
00246
00247 typedef double SDOUBLE;
00248
00249 typedef double LDOUBLE;
00250
00251 typedef float SFLOAT;
00252
00253
00254
00255 typedef void* PTR;
00256
00257
00258
00259 typedef void* HENV;
00260
00261 typedef void* HDBC;
00262
00263 typedef void* HSTMT;
00264
00265
00266
00267 typedef signed short RETCODE;
00268
00269
00270
00271 #if defined(WIN32) || defined(OS2)
00272
00273 typedef HWND SQLHWND;
00274
00275 #elif defined (UNIX)
00276
00277 typedef Widget SQLHWND;
00278
00279 #else
00280
00281
00282
00283 typedef SQLPOINTER SQLHWND;
00284
00285 #endif
00286
00287
00288
00289 #ifndef __SQLDATE
00290
00291 #define __SQLDATE
00292
00293
00294
00295 typedef struct tagDATE_STRUCT
00296
00297 {
00298
00299 SQLSMALLINT year;
00300
00301 SQLUSMALLINT month;
00302
00303 SQLUSMALLINT day;
00304
00305 } DATE_STRUCT;
00306
00307
00308
00309 #if (ODBCVER >= 0x0300)
00310
00311 typedef DATE_STRUCT SQL_DATE_STRUCT;
00312
00313 #endif
00314
00315
00316
00317 typedef struct tagTIME_STRUCT
00318
00319 {
00320
00321 SQLUSMALLINT hour;
00322
00323 SQLUSMALLINT minute;
00324
00325 SQLUSMALLINT second;
00326
00327 } TIME_STRUCT;
00328
00329
00330
00331 #if (ODBCVER >= 0x0300)
00332
00333 typedef TIME_STRUCT SQL_TIME_STRUCT;
00334
00335 #endif
00336
00337
00338
00339 typedef struct tagTIMESTAMP_STRUCT
00340
00341 {
00342
00343 SQLSMALLINT year;
00344
00345 SQLUSMALLINT month;
00346
00347 SQLUSMALLINT day;
00348
00349 SQLUSMALLINT hour;
00350
00351 SQLUSMALLINT minute;
00352
00353 SQLUSMALLINT second;
00354
00355 SQLUINTEGER fraction;
00356
00357 } TIMESTAMP_STRUCT;
00358
00359
00360
00361 #if (ODBCVER >= 0x0300)
00362
00363 typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
00364
00365 #endif
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381 #if (ODBCVER >= 0x0300)
00382
00383 typedef enum
00384
00385 {
00386
00387 SQL_IS_YEAR = 1,
00388
00389 SQL_IS_MONTH = 2,
00390
00391 SQL_IS_DAY = 3,
00392
00393 SQL_IS_HOUR = 4,
00394
00395 SQL_IS_MINUTE = 5,
00396
00397 SQL_IS_SECOND = 6,
00398
00399 SQL_IS_YEAR_TO_MONTH = 7,
00400
00401 SQL_IS_DAY_TO_HOUR = 8,
00402
00403 SQL_IS_DAY_TO_MINUTE = 9,
00404
00405 SQL_IS_DAY_TO_SECOND = 10,
00406
00407 SQL_IS_HOUR_TO_MINUTE = 11,
00408
00409 SQL_IS_HOUR_TO_SECOND = 12,
00410
00411 SQL_IS_MINUTE_TO_SECOND = 13
00412
00413 } SQLINTERVAL;
00414
00415
00416
00417 #endif
00418
00419
00420
00421 #if (ODBCVER >= 0x0300)
00422
00423 typedef struct tagSQL_YEAR_MONTH
00424
00425 {
00426
00427 SQLUINTEGER year;
00428
00429 SQLUINTEGER month;
00430
00431 } SQL_YEAR_MONTH_STRUCT;
00432
00433
00434
00435 typedef struct tagSQL_DAY_SECOND
00436
00437 {
00438
00439 SQLUINTEGER day;
00440
00441 SQLUINTEGER hour;
00442
00443 SQLUINTEGER minute;
00444
00445 SQLUINTEGER second;
00446
00447 SQLUINTEGER fraction;
00448
00449 } SQL_DAY_SECOND_STRUCT;
00450
00451
00452
00453 typedef struct tagSQL_INTERVAL_STRUCT
00454
00455 {
00456
00457 SQLINTERVAL interval_type;
00458
00459 SQLSMALLINT interval_sign;
00460
00461 union {
00462
00463 SQL_YEAR_MONTH_STRUCT year_month;
00464
00465 SQL_DAY_SECOND_STRUCT day_second;
00466
00467 } intval;
00468
00469
00470
00471 } SQL_INTERVAL_STRUCT;
00472
00473
00474
00475 #endif
00476
00477
00478
00479 #endif
00480
00481
00482
00483
00484
00485 #if (ODBCVER >= 0x0300)
00486
00487 #if (_MSC_VER >= 900)
00488
00489 #define ODBCINT64 __int64
00490
00491 #endif
00492
00493
00494
00495
00496
00497
00498
00499 #ifdef ODBCINT64
00500
00501 typedef ODBCINT64 SQLBIGINT;
00502
00503 typedef unsigned ODBCINT64 SQLUBIGINT;
00504
00505 #endif
00506
00507 #endif
00508
00509
00510
00511
00512
00513 #if (ODBCVER >= 0x0300)
00514
00515 #define SQL_MAX_NUMERIC_LEN 16
00516
00517 typedef struct tagSQL_NUMERIC_STRUCT
00518
00519 {
00520
00521 SQLCHAR precision;
00522
00523 SQLSCHAR scale;
00524
00525 SQLCHAR sign;
00526
00527 SQLCHAR val[SQL_MAX_NUMERIC_LEN];
00528
00529 } SQL_NUMERIC_STRUCT;
00530
00531 #endif
00532
00533
00534
00535 #if (ODBCVER >= 0x0350)
00536
00537 #ifdef GUID_DEFINED
00538
00539 typedef GUID SQLGUID;
00540
00541 #else
00542
00543
00544
00545 typedef struct tagSQLGUID
00546
00547 {
00548
00549 DWORD Data1;
00550
00551 WORD Data2;
00552
00553 WORD Data3;
00554
00555 BYTE Data4[ 8 ];
00556
00557 } SQLGUID;
00558
00559 #endif
00560
00561 #endif
00562
00563
00564
00565 typedef SQLULEN BOOKMARK;
00566
00567
00568
00569 #ifdef _WCHAR_T_DEFINED
00570
00571 typedef wchar_t SQLWCHAR;
00572
00573 #else
00574
00575 typedef unsigned short SQLWCHAR;
00576
00577 #endif
00578
00579
00580
00581 #ifdef UNICODE
00582
00583 typedef SQLWCHAR SQLTCHAR;
00584
00585 #else
00586
00587 typedef SQLCHAR SQLTCHAR;
00588
00589 #endif
00590
00591
00592
00593
00594
00595 #endif
00596
00597
00598
00599
00600
00601 #ifdef __cplusplus
00602
00603 }
00604
00605 #endif
00606
00607
00608
00609 #endif
00610