Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

320 lines
8.3 KiB

/*****************************************************************
** SQL.H - This is the the main include for ODBC Core functions.
**
** preconditions:
** #include "windows.h"
**
** (C) Copyright 1990 - 1994 By Microsoft Corp.
**
** Updated 5/12/93 for 2.00 specification
** Updated 5/23/94 for 2.01 specification
*********************************************************************/
#ifndef __SQL
#define __SQL
/*
* ODBCVER ODBC version number (0x0200). To exclude
* definitions introduced in version 2.0 (or above)
* #define ODBCVER 0x0100 before #including <sql.h>
*/
/* If ODBCVER is not defined, assume version 2.01 */
#ifndef ODBCVER
#define ODBCVER 0x0201
#endif
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
/* generally useful constants */
#if (ODBCVER >= 0x0200)
#define SQL_SPEC_MAJOR 2 /* Major version of specification */
#define SQL_SPEC_MINOR 1 /* Minor version of specification */
#define SQL_SPEC_STRING "02.01" /* String constant for version */
#endif /* ODBCVER >= 0x0200 */
#define SQL_SQLSTATE_SIZE 5 /* size of SQLSTATE */
#define SQL_MAX_MESSAGE_LENGTH 512 /* message buffer size */
#define SQL_MAX_DSN_LENGTH 32 /* maximum data source name size */
/* RETCODEs */
#define SQL_INVALID_HANDLE (-2)
#define SQL_ERROR (-1)
#define SQL_SUCCESS 0
#define SQL_SUCCESS_WITH_INFO 1
#define SQL_NO_DATA_FOUND 100
/* Standard SQL datatypes, using ANSI type numbering */
#define SQL_CHAR 1
#define SQL_NUMERIC 2
#define SQL_DECIMAL 3
#define SQL_INTEGER 4
#define SQL_SMALLINT 5
#define SQL_FLOAT 6
#define SQL_REAL 7
#define SQL_DOUBLE 8
#define SQL_VARCHAR 12
#define SQL_TYPE_MIN SQL_CHAR
#define SQL_TYPE_NULL 0
#define SQL_TYPE_MAX SQL_VARCHAR
/* C datatype to SQL datatype mapping SQL types
------------------- */
#define SQL_C_CHAR SQL_CHAR /* CHAR, VARCHAR, DECIMAL, NUMERIC */
#define SQL_C_LONG SQL_INTEGER /* INTEGER */
#define SQL_C_SHORT SQL_SMALLINT /* SMALLINT */
#define SQL_C_FLOAT SQL_REAL /* REAL */
#define SQL_C_DOUBLE SQL_DOUBLE /* FLOAT, DOUBLE */
#define SQL_C_DEFAULT 99
/* NULL status constants. These are used in SQLColumns, SQLColAttributes,
SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the
nullablity of a column in a table. */
#define SQL_NO_NULLS 0
#define SQL_NULLABLE 1
#define SQL_NULLABLE_UNKNOWN 2
/* Special length values */
#define SQL_NULL_DATA (-1)
#define SQL_DATA_AT_EXEC (-2)
#define SQL_NTS (-3)
/* SQLFreeStmt defines */
#define SQL_CLOSE 0
#define SQL_DROP 1
#define SQL_UNBIND 2
#define SQL_RESET_PARAMS 3
/* SQLTransact defines */
#define SQL_COMMIT 0
#define SQL_ROLLBACK 1
/* SQLColAttributes defines */
#define SQL_COLUMN_COUNT 0
#define SQL_COLUMN_NAME 1
#define SQL_COLUMN_TYPE 2
#define SQL_COLUMN_LENGTH 3
#define SQL_COLUMN_PRECISION 4
#define SQL_COLUMN_SCALE 5
#define SQL_COLUMN_DISPLAY_SIZE 6
#define SQL_COLUMN_NULLABLE 7
#define SQL_COLUMN_UNSIGNED 8
#define SQL_COLUMN_MONEY 9
#define SQL_COLUMN_UPDATABLE 10
#define SQL_COLUMN_AUTO_INCREMENT 11
#define SQL_COLUMN_CASE_SENSITIVE 12
#define SQL_COLUMN_SEARCHABLE 13
#define SQL_COLUMN_TYPE_NAME 14
#if (ODBCVER >= 0x0200)
#define SQL_COLUMN_TABLE_NAME 15
#define SQL_COLUMN_OWNER_NAME 16
#define SQL_COLUMN_QUALIFIER_NAME 17
#define SQL_COLUMN_LABEL 18
#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
#else
#define SQL_COLATT_OPT_MAX SQL_COLUMN_TYPE_NAME
#endif /* ODBCVER >= 0x0200 */
#define SQL_COLUMN_DRIVER_START 1000
#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
/* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
#define SQL_ATTR_READONLY 0
#define SQL_ATTR_WRITE 1
#define SQL_ATTR_READWRITE_UNKNOWN 2
/* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
/* These are also used by SQLGetInfo */
#define SQL_UNSEARCHABLE 0
#define SQL_LIKE_ONLY 1
#define SQL_ALL_EXCEPT_LIKE 2
#define SQL_SEARCHABLE 3
/* SQLError defines */
#define SQL_NULL_HENV 0
#define SQL_NULL_HDBC 0
#define SQL_NULL_HSTMT 0
/* environment specific definitions */
#ifndef EXPORT
#define EXPORT _export
#endif
#ifdef WIN32
#define SQL_API __stdcall
#else
#define SQL_API EXPORT CALLBACK
#endif
#ifndef RC_INVOKED
/* 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;
#ifdef WIN32
typedef double LDOUBLE; /* long double == short double in Win32 */
#else
typedef long 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;
/* Core Function Prototypes */
RETCODE SQL_API SQLAllocConnect(
HENV henv,
HDBC FAR *phdbc);
RETCODE SQL_API SQLAllocEnv(
HENV FAR *phenv);
RETCODE SQL_API SQLAllocStmt(
HDBC hdbc,
HSTMT FAR *phstmt);
RETCODE SQL_API SQLBindCol(
HSTMT hstmt,
UWORD icol,
SWORD fCType,
PTR rgbValue,
SDWORD cbValueMax,
SDWORD FAR *pcbValue);
RETCODE SQL_API SQLCancel(
HSTMT hstmt);
RETCODE SQL_API SQLColAttributes(
HSTMT hstmt,
UWORD icol,
UWORD fDescType,
PTR rgbDesc,
SWORD cbDescMax,
SWORD FAR *pcbDesc,
SDWORD FAR *pfDesc);
RETCODE SQL_API SQLConnect(
HDBC hdbc,
UCHAR FAR *szDSN,
SWORD cbDSN,
UCHAR FAR *szUID,
SWORD cbUID,
UCHAR FAR *szAuthStr,
SWORD cbAuthStr);
RETCODE SQL_API SQLDescribeCol(
HSTMT hstmt,
UWORD icol,
UCHAR FAR *szColName,
SWORD cbColNameMax,
SWORD FAR *pcbColName,
SWORD FAR *pfSqlType,
UDWORD FAR *pcbColDef,
SWORD FAR *pibScale,
SWORD FAR *pfNullable);
RETCODE SQL_API SQLDisconnect(
HDBC hdbc);
RETCODE SQL_API SQLError(
HENV henv,
HDBC hdbc,
HSTMT hstmt,
UCHAR FAR *szSqlState,
SDWORD FAR *pfNativeError,
UCHAR FAR *szErrorMsg,
SWORD cbErrorMsgMax,
SWORD FAR *pcbErrorMsg);
RETCODE SQL_API SQLExecDirect(
HSTMT hstmt,
UCHAR FAR *szSqlStr,
SDWORD cbSqlStr);
RETCODE SQL_API SQLExecute(
HSTMT hstmt);
RETCODE SQL_API SQLFetch(
HSTMT hstmt);
RETCODE SQL_API SQLFreeConnect(
HDBC hdbc);
RETCODE SQL_API SQLFreeEnv(
HENV henv);
RETCODE SQL_API SQLFreeStmt(
HSTMT hstmt,
UWORD fOption);
RETCODE SQL_API SQLGetCursorName(
HSTMT hstmt,
UCHAR FAR *szCursor,
SWORD cbCursorMax,
SWORD FAR *pcbCursor);
RETCODE SQL_API SQLNumResultCols(
HSTMT hstmt,
SWORD FAR *pccol);
RETCODE SQL_API SQLPrepare(
HSTMT hstmt,
UCHAR FAR *szSqlStr,
SDWORD cbSqlStr);
RETCODE SQL_API SQLRowCount(
HSTMT hstmt,
SDWORD FAR *pcrow);
RETCODE SQL_API SQLSetCursorName(
HSTMT hstmt,
UCHAR FAR *szCursor,
SWORD cbCursor);
RETCODE SQL_API SQLTransact(
HENV henv,
HDBC hdbc,
UWORD fType);
#endif /* RC_INVOKED */
/* Deprecrated functions from prior versions of ODBC */
#ifndef RC_INVOKED
RETCODE SQL_API SQLSetParam( /* Use SQLBindParameter */
HSTMT hstmt,
UWORD ipar,
SWORD fCType,
SWORD fSqlType,
UDWORD cbColDef,
SWORD ibScale,
PTR rgbValue,
SDWORD FAR *pcbValue);
#endif /* RC_INVOKED */
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#endif /* #ifndef __SQL */