NT4/public/sdk/inc/mfc42/sqltypes.h
2020-09-30 17:12:29 +02:00

139 lines
3.4 KiB
C

/*********************************************************************
** SQLTYPES.H - This file defines the types used in ODBC
**
** (C) Copyright 1995 By Microsoft Corp.
**
** Created 4/10/95 for 2.50 specification
*********************************************************************/
#ifndef __SQLTYPES
#define __SQLTYPES
/* if ODBCVER is not defined, assume version 2.50 */
#ifndef ODBCVER
#define ODBCVER 0x0250
#endif
/* environment specific definitions */
#ifndef EXPORT
#define EXPORT _export
#endif
/* define WINDOWS */
/* _WINDOWS_ is defined in windows.h for 32 bit */
/* _INC_WINDOWS is defined in windows.h for 16 bit */
#if (defined(_WINDOWS_) || defined(_INC_WINDOWS)) && !defined(WINDOWS)
#define WINDOWS
#endif
#ifdef WIN32
#define SQL_API __stdcall
#elif defined(WINDOWS)
#define SQL_API EXPORT CALLBACK
#else
#define SQL_API
#endif
#ifndef RC_INVOKED
#if !defined(WINDOWS) && !defined(FAR)
#define FAR
#endif
/* SQL portable types for C */
typedef unsigned char UCHAR;
typedef signed char SCHAR;
typedef long int SDWORD;
typedef short int SWORD;
typedef unsigned long int UDWORD;
typedef unsigned short int UWORD;
#if (ODBCVER >= 0x0200)
typedef signed long SLONG;
typedef signed short SSHORT;
typedef unsigned long ULONG;
typedef unsigned short USHORT;
#endif /* ODBCVER >= 0x0200 */
typedef double SDOUBLE;
#if defined(WIN32)
typedef double LDOUBLE; /* long double == short double in Win32 */
#elif defined(WINDOWS)
typedef long double LDOUBLE;
#else
typedef double LDOUBLE;
#endif
typedef float SFLOAT;
typedef void FAR * PTR;
typedef void FAR * HENV;
typedef void FAR * HDBC;
typedef void FAR * HSTMT;
typedef signed short RETCODE;
typedef UCHAR SQLCHAR;
typedef SCHAR SQLSCHAR;
typedef SDWORD SQLINTEGER;
typedef SWORD SQLSMALLINT;
typedef UDWORD SQLUINTEGER;
typedef UWORD SQLUSMALLINT;
typedef void FAR * SQLPOINTER;
#if defined(WINDOWS) || defined(WIN32)
typedef HENV SQLHENV;
typedef HDBC SQLHDBC;
typedef HSTMT SQLHSTMT;
#else
typedef SQLINTEGER SQLHENV;
typedef SQLINTEGER SQLHDBC;
typedef SQLINTEGER SQLHSTMT;
#endif
typedef SQLSMALLINT SQLRETURN;
#if defined(WINDOWS) || defined(WIN32) || defined(OS2)
typedef HWND SQLHWND;
#elif defined (UNIX)
typedef Widget SQLHWND;
#else
/* placehold for future O/S GUI window handle definition */
typedef SQLPOINTER SQLHWND;
#endif
/* transfer types for DATE, TIME, TIMESTAMP */
typedef struct tagDATE_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
} DATE_STRUCT;
typedef struct tagTIME_STRUCT
{
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
} TIME_STRUCT;
typedef struct tagTIMESTAMP_STRUCT
{
SQLSMALLINT year;
SQLUSMALLINT month;
SQLUSMALLINT day;
SQLUSMALLINT hour;
SQLUSMALLINT minute;
SQLUSMALLINT second;
SQLUINTEGER fraction;
} TIMESTAMP_STRUCT;
#if (ODBCVER >= 0x0200)
typedef unsigned long int BOOKMARK;
#endif /* ODBCVER >= 0x0200 */
#endif
#endif /* #ifndef __SQLTYPES */