|  | /* | 
|  | * 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; | 
|  | #ifdef WINE_UNICODE_NATIVE | 
|  | typedef wchar_t         SQLWCHAR; | 
|  | #else | 
|  | typedef unsigned short  SQLWCHAR; | 
|  | #endif | 
|  | #ifndef UNICODE | 
|  | typedef SQLCHAR         SQLTCHAR; | 
|  | #else | 
|  | typedef SQLWCHAR        SQLTCHAR; | 
|  | #endif | 
|  |  | 
|  | #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 |