| /* | |
| * Copyright (C) 1999 Xiang Li | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| #ifndef __SQLTYPES_H | |
| #define __SQLTYPES_H | |
| #ifndef ODBCVER | |
| #define ODBCVER 0x0351 | |
| #endif | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef unsigned char SQLCHAR; | |
| #if (ODBCVER >= 0x0300) | |
| typedef unsigned char SQLDATE; | |
| typedef unsigned char SQLDECIMAL; | |
| typedef double SQLDOUBLE; | |
| typedef double SQLFLOAT; | |
| #endif | |
| typedef long SQLINTEGER; | |
| #if (ODBCVER >= 0x0300) | |
| typedef unsigned char SQLNUMERIC; | |
| #endif | |
| typedef void * SQLPOINTER; | |
| #if (ODBCVER >= 0x0300) | |
| typedef float SQLREAL; | |
| #endif | |
| typedef signed short int SQLSMALLINT; | |
| typedef unsigned short SQLUSMALLINT; | |
| #if (ODBCVER >= 0x0300) | |
| typedef unsigned char SQLTIME; | |
| typedef unsigned char SQLTIMESTAMP; | |
| typedef unsigned char SQLVARCHAR; | |
| #endif | |
| typedef SQLSMALLINT SQLRETURN; | |
| /* typedef void * SQLHANDLE; */ | |
| typedef SQLINTEGER SQLHANDLE; | |
| #if (ODBCVER >= 0x0300) | |
| typedef SQLHANDLE SQLHENV; | |
| typedef SQLHANDLE SQLHDBC; | |
| typedef SQLHANDLE SQLHSTMT; | |
| typedef SQLHANDLE SQLHDESC; | |
| #else | |
| typedef SQLINTEGER SQLHENV; | |
| typedef SQLINTEGER SQLHDBC; | |
| typedef SQLINTEGER SQLHSTMT; | |
| #endif | |
| typedef signed char SCHAR; | |
| typedef SCHAR SQLSCHAR; | |
| typedef long int SDWORD; | |
| typedef signed short int SWORD; | |
| typedef unsigned long int UDWORD; | |
| typedef unsigned short int UWORD; | |
| typedef UDWORD SQLUINTEGER; | |
| typedef signed long SLONG; | |
| typedef signed short SSHORT; | |
| typedef double SDOUBLE; | |
| typedef double LDOUBLE; | |
| typedef float SFLOAT; | |
| typedef void* PTR; | |
| typedef signed short RETCODE; | |
| typedef void* SQLHWND; | |
| typedef SQLHANDLE HENV; | |
| typedef SQLHANDLE HDBC; | |
| typedef SQLHANDLE HSTMT; | |
| #ifndef __SQLDATE | |
| #define __SQLDATE | |
| typedef struct tagDATE_STRUCT | |
| { | |
| SQLSMALLINT year; | |
| SQLUSMALLINT month; | |
| SQLUSMALLINT day; | |
| } DATE_STRUCT; | |
| #if (ODBCVER >= 0x0300) | |
| typedef DATE_STRUCT SQL_DATE_STRUCT; | |
| #endif | |
| typedef struct tagTIME_STRUCT | |
| { | |
| SQLUSMALLINT hour; | |
| SQLUSMALLINT minute; | |
| SQLUSMALLINT second; | |
| } TIME_STRUCT; | |
| #if (ODBCVER >= 0x0300) | |
| typedef TIME_STRUCT SQL_TIME_STRUCT; | |
| #endif | |
| typedef struct tagTIMESTAMP_STRUCT | |
| { | |
| SQLSMALLINT year; | |
| SQLUSMALLINT month; | |
| SQLUSMALLINT day; | |
| SQLUSMALLINT hour; | |
| SQLUSMALLINT minute; | |
| SQLUSMALLINT second; | |
| SQLUINTEGER fraction; | |
| } TIMESTAMP_STRUCT; | |
| #if (ODBCVER >= 0x0300) | |
| typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; | |
| #endif | |
| #if (ODBCVER >= 0x0300) | |
| typedef enum | |
| { | |
| SQL_IS_YEAR = 1, | |
| SQL_IS_MONTH = 2, | |
| SQL_IS_DAY = 3, | |
| SQL_IS_HOUR = 4, | |
| SQL_IS_MINUTE = 5, | |
| SQL_IS_SECOND = 6, | |
| SQL_IS_YEAR_TO_MONTH = 7, | |
| SQL_IS_DAY_TO_HOUR = 8, | |
| SQL_IS_DAY_TO_MINUTE = 9, | |
| SQL_IS_DAY_TO_SECOND = 10, | |
| SQL_IS_HOUR_TO_MINUTE = 11, | |
| SQL_IS_HOUR_TO_SECOND = 12, | |
| SQL_IS_MINUTE_TO_SECOND = 13 | |
| } SQLINTERVAL; | |
| #endif | |
| #if (ODBCVER >= 0x0300) | |
| typedef struct tagSQL_YEAR_MONTH | |
| { | |
| SQLUINTEGER year; | |
| SQLUINTEGER month; | |
| } SQL_YEAR_MONTH_STRUCT; | |
| typedef struct tagSQL_DAY_SECOND | |
| { | |
| SQLUINTEGER day; | |
| SQLUINTEGER hour; | |
| SQLUINTEGER minute; | |
| SQLUINTEGER second; | |
| SQLUINTEGER fraction; | |
| } SQL_DAY_SECOND_STRUCT; | |
| typedef struct tagSQL_INTERVAL_STRUCT | |
| { | |
| SQLINTERVAL interval_type; | |
| SQLSMALLINT interval_sign; | |
| union { | |
| SQL_YEAR_MONTH_STRUCT year_month; | |
| SQL_DAY_SECOND_STRUCT day_second; | |
| } intval; | |
| } SQL_INTERVAL_STRUCT; | |
| #endif | |
| #endif | |
| #if (ODBCVER >= 0x0300) | |
| #define ODBCINT64 long | |
| #ifdef ODBCINT64 | |
| typedef ODBCINT64 SQLBIGINT; | |
| typedef unsigned ODBCINT64 SQLUBIGINT; | |
| #endif | |
| #endif | |
| #if (ODBCVER >= 0x0300) | |
| #define SQL_MAX_NUMERIC_LEN 16 | |
| typedef struct tagSQL_NUMERIC_STRUCT | |
| { | |
| SQLCHAR precision; | |
| SQLSCHAR scale; | |
| SQLCHAR sign; /* 1=pos 0=neg */ | |
| SQLCHAR val[SQL_MAX_NUMERIC_LEN]; | |
| } SQL_NUMERIC_STRUCT; | |
| #endif | |
| #if (ODBCVER >= 0x0350) | |
| #ifdef GUID_DEFINED | |
| typedef GUID SQLGUID; | |
| #else | |
| typedef struct tagSQLGUID | |
| { | |
| DWORD Data1; | |
| WORD Data2; | |
| WORD Data3; | |
| BYTE Data4[ 8 ]; | |
| } SQLGUID; | |
| #endif | |
| #endif | |
| typedef unsigned long int BOOKMARK; | |
| #define SQL_WCHAR (-8) | |
| #define SQL_C_WCHAR SQL_WCHAR | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |