home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 October
/
Chip_1997-10_cd.bin
/
tema
/
sybase
/
powerj
/
hpp.z
/
odbc.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-06-04
|
45KB
|
1,666 lines
/****************************************************************
* Copyright (C) 1988-1993, by WATCOM International Corp. *
* All rights reserved. No part of this software may be *
* reproduced in any form or by any means - graphic, *
* electronic or mechanical, including photocopying, *
* recording, taping or information storage and retrieval *
* systems - except with the written permission of *
* WATCOM International Corp. *
****************************************************************/
#ifndef __ODBC_H_INCLUDED
#define __ODBC_H_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
/* ODBC.H
Definitions for using ODBC functions
*/
/* Platform-specific definitions */
#ifndef ODBC_DOS
#ifndef ODBC_DOS32
#ifndef ODBC_MAC
#ifndef ODBC_OS2
#ifndef ODBC_OS216
#ifndef ODBC_QNX
#ifndef ODBC_WINNT
#ifndef ODBC_WIN32
#ifndef ODBC_WIN
/* Default platform is Microsoft Windows */
#ifdef __WINDOWS_386__
// Must be WATCOM C 32 bit Windows
#define ODBC_WIN32
#else
#define ODBC_WIN
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#ifdef ODBC_DOS
#define ODBC_API
#define ODBCFAR
#endif
#ifdef ODBC_DOS32
#define ODBC_API
#define ODBCFAR
#endif
#ifdef ODBC_MAC
#define ODBC_API pascal
#define ODBCFAR
#endif
#ifdef ODBC_OS2
#ifdef __BORLANDC__
#define ODBC_API __syscall
#else
#define ODBC_API _System
#endif
#define ODBCFAR
#endif
#ifdef ODBC_QNX
#define ODBC_API
#define ODBCFAR
#endif
#ifdef ODBC_WINNT
#define ODBC_API __stdcall
#define ODBCFAR
#endif
#ifdef ODBC_WIN32
#define ODBC_API
#define ODBCFAR
#endif
#ifdef ODBC_WIN
#define ODBC_API far pascal
#define ODBCFAR far
#endif
#ifndef ODBCVER
#define ODBCVER 0x0201
#endif
/* RETCODES */
#if !defined( __SQL )
enum enumRETCODE {
SQL_SUCCESS = 0,
SQL_SUCCESS_WITH_INFO,
SQL_STILL_EXECUTING,
SQL_NEED_DATA = 99,
SQL_NO_DATA_FOUND,
SQL_ERROR = -1,
SQL_INVALID_HANDLE = -2
};
typedef signed short RETCODE;
/* SQL Types */
enum enumSQLTYPE {
SQL_TYPE_NULL = 0,
/* ANSI numbering */
SQL_CHAR,
SQL_NUMERIC,
SQL_DECIMAL,
SQL_INTEGER,
SQL_SMALLINT,
SQL_FLOAT,
SQL_REAL,
SQL_DOUBLE,
SQL_DATE,
SQL_TIME,
SQL_TIMESTAMP,
SQL_VARCHAR,
/* ODBC extensions */
SQL_BIT = -7,
SQL_TINYINT,
SQL_BIGINT,
SQL_LONGVARBINARY,
SQL_VARBINARY,
SQL_BINARY,
SQL_LONGVARCHAR
};
#define SQL_TYPE_DRIVER_START (-80)
#define SQL_TYPE_MIN SQL_BIT
#define SQL_TYPE_MAX SQL_VARCHAR
#define SQL_ALL_TYPES SQL_TYPE_NULL
#if (ODBCVER >= 0x0200)
#define SQL_SIGNED_OFFSET (-20)
#define SQL_UNSIGNED_OFFSET (-22)
#endif
/* C types -- defined in terms of corresponding SQL types */
#define SQL_C_CHAR SQL_CHAR
#define SQL_C_LONG SQL_INTEGER
#define SQL_C_SHORT SQL_SMALLINT
#define SQL_C_FLOAT SQL_REAL
#define SQL_C_DOUBLE SQL_DOUBLE
#define SQL_C_DEFAULT 99
#endif /* !defined( __SQL ) */
#if !defined( __SQLEXT )
#define SQL_C_DATE SQL_DATE
#define SQL_C_TIME SQL_TIME
#define SQL_C_TIMESTAMP SQL_TIMESTAMP
#define SQL_C_BINARY SQL_BINARY
#define SQL_C_BIT SQL_BIT
#define SQL_C_TINYINT SQL_TINYINT
#if (ODBCVER >= 0x0200)
#define SQL_C_SLONG SQL_C_LONG+SQL_SIGNED_OFFSET
#define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET
#define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET
#define SQL_C_ULONG SQL_C_LONG+SQL_UNSIGNED_OFFSET
#define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET
#define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET
#define SQL_C_BOOKMARK SQL_C_ULONG
#endif
#endif /* !defined( __SQLEXT ) */
/* Portable C data types */
#if !defined( __SQL )
#if !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
typedef unsigned char UCHAR;
#endif
typedef signed char SCHAR;
typedef unsigned short UWORD;
typedef signed short SWORD;
typedef unsigned long UDWORD;
typedef signed long SDWORD;
typedef double SDOUBLE;
typedef long double LDOUBLE;
typedef float SFLOAT;
typedef void ODBCFAR * PTR;
/* Define some common things often found in WINDOWS.H */
#if defined( MAC )
#if defined( MACODBC ) && MACODBC
// ODBC 2.0 Driver Manager and SDK
// BOOL is now defined in "win2mac.h" from ODBC 2.0 SDK
#elif defined( USE_ODBC_DRIVER )
typedef unsigned short BOOL;
#else
typedef int BOOL;
#endif
#elif !defined(_INC_WINDOWS) && !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
typedef int BOOL;
#endif
/* Handle types */
#if defined( MAC ) && defined( USE_ODBC_DRIVER )
typedef struct ENV ** HENV;
typedef struct DBC ** HDBC;
typedef struct STMT ** HSTMT;
#else
typedef void ODBCFAR * HENV;
typedef void ODBCFAR * HDBC;
typedef void ODBCFAR * HSTMT;
#endif
#define SQL_NULL_HENV 0
#define SQL_NULL_HDBC 0
#define SQL_NULL_HSTMT 0
/* Special length values */
enum enumLENGTH {
SQL_IGNORE = (-6),
SQL_DEFAULT_PARAM,
SQL_NO_TOTAL,
SQL_NTS,
SQL_DATA_AT_EXEC,
SQL_NULL_DATA
};
/* Miscellaneous constants */
#if (ODBCVER >= 0x0200)
#define SQL_SPEC_MAJOR 2
#define SQL_SPEC_MINOR 1
#define SQL_SPEC_STRING "02.01"
#endif /* ODBCVER >= 0x0200 */
#define SQLSTATE_SIZE 5
#define SQL_MAX_MESSAGE_LENGTH 512
#define SQL_MAX_DSN_LENGTH 32
#define SQL_MAX_OPTION_STRING_LENGTH 256
#endif /* !defined( __SQL ) */
/* Define some common things often found in WINDOWS.H */
#if !defined( _WSQLODBC_H )
#if defined( MAC )
#if defined( MACODBC ) && MACODBC
// HWND is now defined in "win2mac.h" from Mac ODBC SDK
#else
typedef struct GrafPort * HWND;
#endif
#elif !defined(_INC_WINDOWS) && !defined(OS2DEF_INCLUDED) && !defined(_WINDEF_)
// HWND is now defined in wdef.hpp
#endif
#endif
#if !defined(TRUE)
#define TRUE 1
#endif
#if !defined(FALSE)
#define FALSE 0
#endif
/* C structures */
#if !defined( __SQLEXT )
typedef struct tagDATE_STRUCT {
SWORD year;
UWORD month;
UWORD day;
} DATE_STRUCT;
typedef struct tagTIME_STRUCT {
UWORD hour;
UWORD minute;
UWORD second;
} TIME_STRUCT;
typedef struct tagTIMESTAMP_STRUCT {
SWORD year;
UWORD month;
UWORD day;
UWORD hour;
UWORD minute;
UWORD second;
UDWORD fraction;
} TIMESTAMP_STRUCT;
#if (ODBCVER >= 0x0200)
typedef unsigned long int BOOKMARK;
#endif
#endif /* !defined( __SQLEXT ) */
/* Values that may be defined elsewhere */
#ifndef NULL
#define NULL 0
#endif
#if !defined( __SQL )
/* API functions -- environment */
RETCODE ODBC_API SQLAllocEnv( /* CORE */
HENV ODBCFAR * phenv );
RETCODE ODBC_API SQLError( /* CORE */
HENV henv,
HDBC hdbc,
HSTMT hstmt,
UCHAR ODBCFAR * szSqlState, /* Always SQLSTATE_SIZE+1 bytes */
SDWORD ODBCFAR * pfNativeError,
UCHAR ODBCFAR * szErrorMsg,
SWORD cbErrorMsgMax,
SWORD ODBCFAR * pcbErrorMsg );
RETCODE ODBC_API SQLDataSources( /* Level 2 */
HENV henv,
UWORD fDirection, /* enumSQLFetchType */
UCHAR ODBCFAR * szDSN,
SWORD cbDSNMax,
SWORD ODBCFAR * pcbDSN,
UCHAR ODBCFAR * szDescription,
SWORD cbDescriptionMax,
SWORD ODBCFAR * pcbDescription );
RETCODE ODBC_API SQLFreeEnv( /* CORE */
HENV henv );
/* API functions -- connections */
RETCODE ODBC_API SQLAllocConnect( /* CORE */
HENV henv,
HDBC ODBCFAR * phdbc );
RETCODE ODBC_API SQLConnect( /* CORE */
HDBC hdbc,
UCHAR ODBCFAR * szDSN,
SWORD cbDSN,
UCHAR ODBCFAR * szUID,
SWORD cbUID,
UCHAR ODBCFAR * szAuthStr,
SWORD cbAuthStr );
enum enumSQLMode {
SQL_MODE_READ_WRITE,
SQL_MODE_READ_ONLY
};
enum enumSQLDriverConnect {
SQL_DRIVER_NOPROMPT,
SQL_DRIVER_COMPLETE,
SQL_DRIVER_PROMPT,
SQL_DRIVER_COMPLETE_REQUIRED
};
RETCODE ODBC_API SQLDriverConnect( /* Level 1 */
HDBC hdbc,
HWND hwnd,
UCHAR ODBCFAR * szConnStrIn, /* input connection string */
SWORD cbConnStrIn,
UCHAR ODBCFAR * szConnStrOut,
SWORD cbConnStrOutMax,
SWORD ODBCFAR * pcbConnStrOut,
UWORD fDriverCompletion ); /* enumSQLDriverConnect */
RETCODE ODBC_API SQLBrowseConnect( /* Level 2 */
HDBC hdbc,
UCHAR ODBCFAR * szConnStrIn, /* input connection string */
SWORD cbConnStrIn,
UCHAR ODBCFAR * szConnStrOut,
SWORD cbConnStrOutMax,
SWORD ODBCFAR * pcbConnStrOut );
#if (ODBCVER >= 0x0200)
RETCODE ODBC_API SQLDrivers(
HENV henv,
UWORD fDirection,
UCHAR ODBCFAR * *szDriverDesc,
SWORD cbDriverDescMax,
SWORD ODBCFAR * *pcbDriverDesc,
UCHAR ODBCFAR * *szDriverAttributes,
SWORD cbDrvrAttrMax,
SWORD ODBCFAR * *pcbDrvrAttr );
#endif
enum enumSQLOption {
/* Statement options (can also be used with connections) */
SQL_QUERY_TIMEOUT,
SQL_MAX_ROWS,
SQL_NOSCAN,
SQL_MAX_LENGTH,
SQL_ASYNC_ENABLE,
SQL_BIND_TYPE,
#if (ODBCVER >= 0x0200)
SQL_CURSOR_TYPE,
SQL_CONCURRENCY,
SQL_KEYSET_SIZE,
SQL_ROWSET_SIZE,
SQL_SIMULATE_CURSOR,
SQL_RETRIEVE_DATA,
SQL_USE_BOOKMARKS,
SQL_GET_BOOKMARK,
SQL_ROW_NUMBER,
#endif
/* Connect options */
SQL_ACCESS_MODE = 101,
SQL_AUTOCOMMIT,
SQL_LOGIN_TIMEOUT,
SQL_OPT_TRACE,
SQL_OPT_TRACEFILE,
SQL_TRANSLATE_DLL,
SQL_TRANSLATE_OPTION,
SQL_TXN_ISOLATION, /* enumSQLIsolation */
SQL_CURRENT_QUALIFIER,
#if (ODBCVER >= 0x0200)
SQL_ODBC_CURSORS,
SQL_QUIET_MODE,
SQL_PACKET_SIZE,
#endif
/* Driver specific options */
SQL_CONNECT_OPT_DRVR_START = 1000
};
enum enumSQLIsolation {
SQL_TXN_READ_UNCOMMITTED = 1,
SQL_TXN_READ_COMMITTED = 2,
SQL_TXN_REPEATABLE_READ = 4,
SQL_TXN_SERIALIZABLE = 8,
SQL_TXN_VERSIONING = 16
};
enum enumNoScanOps {
SQL_NOSCAN_OFF,
SQL_NOSCAN_ON
};
enum enumAsyncEnable {
SQL_ASYNC_ENABLE_OFF,
SQL_ASYNC_ENABLE_ON
};
enum enumAutoCommit {
SQL_AUTOCOMMIT_OFF,
SQL_AUTOCOMMIT_ON
};
enum enumTraceOpt {
SQL_OPT_TRACE_OFF,
SQL_OPT_TRACE_ON
};
#if (ODBCVER >= 0x0200)
enum enumODBCCursors {
SQL_CUR_USE_IF_NEEDED,
SQL_CUR_USE_ODBC,
SQL_CUR_USE_DRIVER
};
#define SQL_CUR_USE_DEFAULT SQL_CUR_USE_DRIVER
#endif
/* Special values for certain options */
#define SQL_QUERY_TIMEOUT_DEFAULT 0UL
#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF
#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF
#define SQL_MAX_ROWS_DEFAULT 0UL
#define SQL_MAX_LENGTH_DEFAULT 0UL
#define SQL_BIND_BY_COLUMN 0UL
#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE
#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON
#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL
#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF
#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG"
RETCODE ODBC_API SQLGetConnectOption( /* Level 1 */
HDBC hdbc,
UWORD fOption, /* enumSQLOption */
PTR pvParam );
RETCODE ODBC_API SQLSetConnectOption( /* Level 1 */
HDBC hdbc,
UWORD fOption, /* enumSQLOption */
UDWORD vParam );
RETCODE ODBC_API SQLNativeSql( /* Level 2 */
HDBC hdbc,
UCHAR ODBCFAR * szSqlStrIn,
SDWORD cbSqlStrIn,
UCHAR ODBCFAR * szSqlStr,
SDWORD cbSqlStrMax,
SDWORD ODBCFAR * pcbSqlStr );
enum enumSQLTransact {
SQL_COMMIT,
SQL_ROLLBACK
};
RETCODE ODBC_API SQLTransact( /* CORE */
HENV henv,
HDBC hdbc,
UWORD fType ); /* enumSQLTransact */
RETCODE ODBC_API SQLDisconnect( /* CORE */
HDBC hdbc );
RETCODE ODBC_API SQLFreeConnect( /* CORE */
HDBC hdbc );
/* API functions -- driver information */
enum enumSQLFunctions {
/* CORE functions */
SQL_API_SQLALLOCCONNECT = 1,
SQL_API_SQLALLOCENV,
SQL_API_SQLALLOCSTMT,
SQL_API_SQLBINDCOL,
SQL_API_SQLCANCEL,
SQL_API_SQLCOLATTRIBUTES,
SQL_API_SQLCONNECT,
SQL_API_SQLDESCRIBECOL,
SQL_API_SQLDISCONNECT,
SQL_API_SQLERROR,
SQL_API_SQLEXECDIRECT,
SQL_API_SQLEXECUTE,
SQL_API_SQLFETCH,
SQL_API_SQLFREECONNECT,
SQL_API_SQLFREEENV,
SQL_API_SQLFREESTMT,
SQL_API_SQLGETCURSORNAME,
SQL_API_SQLNUMRESULTCOLS,
SQL_API_SQLPREPARE,
SQL_API_SQLROWCOUNT,
SQL_API_SQLSETCURSORNAME,
SQL_API_SQLSETPARAM,
SQL_API_SQLTRANSACT,
SQL_API_END_OF_CORE,
/* Level 1 functions */
SQL_API_SQLCOLUMNS = 40,
SQL_API_SQLDRIVERCONNECT,
SQL_API_SQLGETCONNECTOPTION,
SQL_API_SQLGETDATA,
SQL_API_SQLGETFUNCTIONS,
SQL_API_SQLGETINFO,
SQL_API_SQLGETSTMTOPTION,
SQL_API_SQLGETTYPEINFO,
SQL_API_SQLPARAMDATA,
SQL_API_SQLPUTDATA,
SQL_API_SQLSETCONNECTOPTION,
SQL_API_SQLSETSTMTOPTION,
SQL_API_SQLSPECIALCOLUMNS,
SQL_API_SQLSTATISTICS,
SQL_API_SQLTABLES,
/* Level 2 functions */
SQL_API_SQLBROWSECONNECT,
SQL_API_SQLCOLUMNPRIVILEGES,
SQL_API_SQLDATASOURCES,
SQL_API_SQLDESCRIBEPARAM,
SQL_API_SQLEXTENDEDFETCH,
SQL_API_SQLFOREIGNKEYS,
SQL_API_SQLMORERESULTS,
SQL_API_SQLNATIVESQL,
SQL_API_SQLNUMPARAMS,
SQL_API_SQLPARAMOPTIONS,
SQL_API_SQLPRIMARYKEYS,
SQL_API_SQLPROCEDURECOLUMNS,
SQL_API_SQLPROCEDURES,
SQL_API_SQLSETPOS,
SQL_API_SQLSETSCROLLOPTIONS,
SQL_API_SQLTABLEPRIVILEGES,
#if (ODBCVER >= 0x0200)
SQL_API_SQLDRIVERS,
SQL_API_SQLBINDPARAMETER,
#endif
SQL_API_END_OF_FUNCTIONS
};
#define SQL_NUM_FUNCTIONS (SQL_API_END_OF_CORE - 1)
#define SQL_EXT_API_START SQL_API_SQLCOLUMNS
#define SQL_EXT_API_LAST (SQL_API_END_OF_FUNCTIONS - 1)
#define SQL_NUM_EXTENSIONS (SQL_API_END_OF_FUNCTIONS-SQL_EXT_API_START)
#define SQL_API_ALL_FUNCTIONS 0
RETCODE ODBC_API SQLGetFunctions( /* Level 1 */
HDBC hdbc,
UWORD fFunction, /* enumSQLFunctions */
UWORD ODBCFAR * pfExists ); /* TRUE or FALSE */
enum enumSQLFetchDirection {
SQL_FD_FETCH_NEXT = 1,
SQL_FD_FETCH_FIRST = 2,
SQL_FD_FETCH_LAST = 4,
SQL_FD_FETCH_PRIOR = 8,
SQL_FD_FETCH_ABSOLUTE = 16,
SQL_FD_FETCH_RELATIVE = 32,
SQL_FD_FETCH_RESUME = 64
#if (ODBCVER >= 0x0200)
,
SQL_FD_FETCH_BOOKMARK = 128
#endif
};
#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR
enum enumSQLConcurMask {
SQL_SCCO_READ_ONLY = 1,
SQL_SCCO_LOCK = 2,
SQL_SCCO_OPT_ROWVER = 4,
SQL_SCCO_OPT_VALUES = 8
};
#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER
enum enumSQLScrollOptions {
SQL_SO_FORWARD_ONLY = 1,
SQL_SO_KEYSET_DRIVEN = 2,
SQL_SO_DYNAMIC = 4,
SQL_SO_MIXED = 8
#if (ODBCVER >= 0x0200)
,
SQL_SO_STATIC = 16
#endif
};
enum enumODBCAPIConform {
SQL_OAC_NONE = 0x0000,
SQL_OAC_LEVEL1 = 0x0001,
SQL_OAC_LEVEL2 = 0x0002
};
enum enumCliSagConform {
SQL_OSCC_NOT_COMPLIANT = 0x0000,
SQL_OSCC_COMPLIANT = 0x0001
};
enum enumODBCSQLConform {
SQL_OSC_MINIMUM = 0x0000,
SQL_OSC_CORE = 0x0001,
SQL_OSC_EXTENDED = 0x0002
};
enum enumConcatNullBehavior {
SQL_CB_NULL = 0x0000,
SQL_CB_NON_NULL = 0x0001
};
enum enumCursorCommitBehavior {
SQL_CB_DELETE = 0x0000,
SQL_CB_CLOSE = 0x0001,
SQL_CB_PRESERVE = 0x0002
};
#define SQL_CC_DELETE SQL_CB_DELETE
#define SQL_CR_DELETE SQL_CB_DELETE
#define SQL_CC_CLOSE SQL_CB_CLOSE
#define SQL_CR_CLOSE SQL_CB_CLOSE
#define SQL_CC_PRESERVE SQL_CB_PRESERVE
#define SQL_CR_PRESERVE SQL_CB_PRESERVE
enum enumIDCase {
SQL_IC_UPPER = 0x0001,
SQL_IC_LOWER = 0x0002,
SQL_IC_SENSITIVE = 0x0003,
SQL_IC_MIXED = 0x0004
};
enum enumTxnValues {
SQL_TC_NONE = 0x0000,
SQL_TC_DML = 0x0001,
SQL_TC_ALL = 0x0002
#if (ODBCVER >= 0x0200)
,
SQL_TC_DDL_COMMIT = 0x0003,
SQL_TC_DDL_IGNORE = 0x0004
#endif
};
enum enumCorrelationName {
SQL_CN_NONE = 0x0000,
SQL_CN_DIFFERENT = 0x0001,
SQL_CN_ANY = 0x0002
};
enum enumNonNullableCol {
SQL_NNC_NULL = 0x0000,
SQL_NNC_NON_NULL = 0x0001
};
#if (ODBCVER >= 0x0200)
enum enumNullCollation {
SQL_NC_HIGH = 0x0000,
SQL_NC_LOW = 0x0001,
SQL_NC_START = 0x0002,
SQL_NC_END = 0x0004
};
enum enumFileUsage {
SQL_FILE_NOT_SUPPORTED = 0x0000,
SQL_FILE_TABLE = 0x0001,
SQL_FILE_QUALIFIER = 0x0002
};
enum enumGetDataExtensions {
SQL_GD_ANY_COLUMN = 0x00000000L,
SQL_GD_ANY_ORDER = 0x00000001L,
SQL_GD_BLOCK = 0x00000002L,
SQL_GD_BOUND = 0x00000004L
};
enum enumAlterTable {
SQL_AT_ADD_COLUMN = 0x00000001L,
SQL_AT_DROP_COLUMN = 0x00000002L
};
enum enumPosStmts {
SQL_PS_POSITIONED_DELETE = 0x00000001L,
SQL_PS_POSITIONED_UPDATE = 0x00000002L,
SQL_PS_SELECT_FOR_UPDATE = 0x00000004L
};
enum enumGroupBy {
SQL_GB_NOT_SUPPORTED = 0x00000001L,
SQL_GB_GROUP_BY_EQUALS_SELECT = 0x00000002L,
SQL_GB_GROUP_BY_CONTAINS_SELECT = 0x00000004L,
SQL_GB_NO_RELATION = 0x00000008L
};
enum enumOwnerUsage {
SQL_OU_DML_STATEMENTS = 0x00000001L,
SQL_OU_PROCEDURE_INVOCATION = 0x00000002L,
SQL_OU_TABLE_DEFINITION = 0x00000004L,
SQL_OU_INDEX_DEFINITION = 0x00000008L,
SQL_OU_PRIVILEGE_DEFINITION = 0x00000010L
};
enum enumQualifierUsage {
SQL_QU_DML_STATEMENTS = 0x00000001L,
SQL_QU_PROCEDURE_INVOCATION = 0x00000002L,
SQL_QU_TABLE_DEFINITION = 0x00000004L,
SQL_QU_INDEX_DEFINITION = 0x00000008L,
SQL_QU_PRIVILEGE_DEFINITION = 0x00000010L
};
enum enumSubqueries {
SQL_SQ_COMPARISON = 0x00000001L,
SQL_SQ_EXISTS = 0x00000002L,
SQL_SQ_IN = 0x00000004L,
SQL_SQ_QUANTIFIED = 0x00000008L,
SQL_SQ_CORRELATED_SUBQUERIES = 0x00000010L
};
enum enumUnion {
SQL_U_UNION = 0x00000001L,
SQL_U_UNION_ALL = 0x00000002L
};
enum enumBookmark {
SQL_BP_CLOSE = 0x00000001L,
SQL_BP_DELETE = 0x00000002L,
SQL_BP_DROP = 0x00000004L,
SQL_BP_TRANSACTION = 0x00000008L,
SQL_BP_UPDATE = 0x00000010L,
SQL_BP_OTHER_HSTMT = 0x00000020L,
SQL_BP_SCROLL = 0x00000040L
};
enum enumStaticSensitivity {
SQL_SS_ADDITIONS = 0x00000001L,
SQL_SS_DELETIONS = 0x00000002L,
SQL_SS_UPDATES = 0x00000004L
};
enum enumLockTypes {
SQL_LCK_NO_CHANGE = 0x00000001L,
SQL_LCK_EXCLUSIVE = 0x00000002L,
SQL_LCK_UNLOCK = 0x00000004L
};
enum enumPosOps {
SQL_POS_POSITION = 0x00000001L,
SQL_POS_REFRESH = 0x00000002L,
SQL_POS_UPDATE = 0x00000004L,
SQL_POS_DELETE = 0x00000008L,
SQL_POS_ADD = 0x00000010L
};
enum enumQualifierLocal {
SQL_QL_START = 0x0001L,
SQL_QL_END = 0x0002L
};
#if (ODBCVER >= 0x0201)
enum enumOJCapabilities {
SQL_OJ_LEFT = 0x00000001L,
SQL_OJ_RIGHT = 0x00000002L,
SQL_OJ_FULL = 0x00000004L,
SQL_OJ_NESTED = 0x00000008L,
SQL_OJ_NOT_ORDERED = 0x00000010L,
SQL_OJ_INNER = 0x00000020L,
SQL_OJ_ALL_COMPARISON_OPS = 0x00000040L
};
#endif /* (ODBCVER >= 0x0201) */
#endif /* (ODBCVER >= 0x0200) */
enum enumSQLConvertFunctions {
SQL_FN_CVT_CONVERT = 1
};
enum enumSQLNumericFunctions {
SQL_FN_NUM_ABS = 0x00000001L,
SQL_FN_NUM_ACOS = 0x00000002L,
SQL_FN_NUM_ASIN = 0x00000004L,
SQL_FN_NUM_ATAN = 0x00000008L,
SQL_FN_NUM_ATAN2 = 0x00000010L,
SQL_FN_NUM_CEILING = 0x00000020L,
SQL_FN_NUM_COS = 0x00000040L,
SQL_FN_NUM_COT = 0x00000080L,
SQL_FN_NUM_EXP = 0x00000100L,
SQL_FN_NUM_FLOOR = 0x00000200L,
SQL_FN_NUM_LOG = 0x00000400L,
SQL_FN_NUM_MOD = 0x00000800L,
SQL_FN_NUM_SIGN = 0x00001000L,
SQL_FN_NUM_SIN = 0x00002000L,
SQL_FN_NUM_SQRT = 0x00004000L
/* Enums must be of type int, so the rest cannot be enums
with 16 bit compilers */
/*
SQL_FN_NUM_TAN = 0x00008000L,
SQL_FN_NUM_PI = 0x00010000L,
SQL_FN_NUM_RAND = 0x00020000L
*/
#define SQL_FN_NUM_TAN 0x00008000L
#define SQL_FN_NUM_PI 0x00010000L
#define SQL_FN_NUM_RAND 0x00020000L
#if (ODBCVER >= 0x0200)
#define SQL_FN_NUM_DEGREES 0x00040000L
#define SQL_FN_NUM_LOG10 0x00080000L
#define SQL_FN_NUM_POWER 0x00100000L
#define SQL_FN_NUM_RADIANS 0x00200000L
#define SQL_FN_NUM_ROUND 0x00400000L
#define SQL_FN_NUM_TRUNCATE 0x00800000L
#endif
};
enum enumSQLStringFunctions {
SQL_FN_STR_CONCAT = 0x00000001L,
SQL_FN_STR_INSERT = 0x00000002L,
SQL_FN_STR_LEFT = 0x00000004L,
SQL_FN_STR_LTRIM = 0x00000008L,
SQL_FN_STR_LENGTH = 0x00000010L,
SQL_FN_STR_LOCATE = 0x00000020L,
SQL_FN_STR_LCASE = 0x00000040L,
SQL_FN_STR_REPEAT = 0x00000080L,
SQL_FN_STR_REPLACE = 0x00000100L,
SQL_FN_STR_RIGHT = 0x00000200L,
SQL_FN_STR_RTRIM = 0x00000400L,
SQL_FN_STR_SUBSTRING = 0x00000800L,
SQL_FN_STR_UCASE = 0x00001000L,
SQL_FN_STR_ASCII = 0x00002000L,
SQL_FN_STR_CHAR = 0x00004000L
#if (ODBCVER >= 0x0200)
/* Enums must be of type int, so the rest cannot be enums
with 16 bit compilers */
#define SQL_FN_STR_DIFFERENCE 0x00008000L
#define SQL_FN_STR_LOCATE_2 0x00010000L
#define SQL_FN_STR_SOUNDEX 0x00020000L
#define SQL_FN_STR_SPACE 0x00040000L
#endif
};
enum enumSQLSystemFunctions {
SQL_FN_SYS_USERNAME = 0x00000001L,
SQL_FN_SYS_DBNAME = 0x00000002L,
SQL_FN_SYS_IFNULL = 0x00000004L
};
enum enumSQLTimedateFunctions {
SQL_FN_TD_NOW = 0x00000001L,
SQL_FN_TD_CURDATE = 0x00000002L,
SQL_FN_TD_DAYOFMONTH = 0x00000004L,
SQL_FN_TD_DAYOFWEEK = 0x00000008L,
SQL_FN_TD_DAYOFYEAR = 0x00000010L,
SQL_FN_TD_MONTH = 0x00000020L,
SQL_FN_TD_QUARTER = 0x00000040L,
SQL_FN_TD_WEEK = 0x00000080L,
SQL_FN_TD_YEAR = 0x00000100L,
SQL_FN_TD_CURTIME = 0x00000200L,
SQL_FN_TD_HOUR = 0x00000400L,
SQL_FN_TD_MINUTE = 0x00000800L,
SQL_FN_TD_SECOND = 0x00001000L
#if (ODBCVER >= 0x0200)
,
SQL_FN_TD_TIMESTAMPADD = 0x00002000L,
SQL_FN_TD_TIMESTAMPDIFF = 0x00004000L
/* Enums must be of type int, so the rest cannot be enums
with 16 bit compilers */
#define SQL_FN_TD_DAYNAME 0x00008000L
#define SQL_FN_TD_MONTHNAME 0x00010000L
#endif
};
enum enumSQLTSI {
SQL_FN_TSI_FRAC_SECOND = 0x00000001L,
SQL_FN_TSI_SECOND = 0x00000002L,
SQL_FN_TSI_MINUTE = 0x00000004L,
SQL_FN_TSI_HOUR = 0x00000008L,
SQL_FN_TSI_DAY = 0x00000010L,
SQL_FN_TSI_WEEK = 0x00000020L,
SQL_FN_TSI_MONTH = 0x00000040L,
SQL_FN_TSI_QUARTER = 0x00000080L,
SQL_FN_TSI_YEAR = 0x00000100L
};
enum enumSQLConvert {
SQL_CVT_CHAR = 0x00000001L,
SQL_CVT_NUMERIC = 0x00000002L,
SQL_CVT_DECIMAL = 0x00000004L,
SQL_CVT_INTEGER = 0x00000008L,
SQL_CVT_SMALLINT = 0x00000010L,
SQL_CVT_FLOAT = 0x00000020L,
SQL_CVT_REAL = 0x00000040L,
SQL_CVT_DOUBLE = 0x00000080L,
SQL_CVT_VARCHAR = 0x00000100L,
SQL_CVT_LONGVARCHAR = 0x00000200L,
SQL_CVT_BINARY = 0x00000400L,
SQL_CVT_VARBINARY = 0x00000800L,
SQL_CVT_BIT = 0x00001000L,
SQL_CVT_TINYINT = 0x00002000L,
SQL_CVT_BIGINT = 0x00004000L
/* Enums must be of type int, so the rest cannot be enums
with 16 bit compilers */
/*
SQL_CVT_DATE = 0x00008000L,
SQL_CVT_TIME = 0x00010000L,
SQL_CVT_TIMESTAMP = 0x00020000L,
SQL_CVT_LONGVARBINARY = 0x00040000L
*/
#define SQL_CVT_DATE 0x00008000L
#define SQL_CVT_TIME 0x00010000L
#define SQL_CVT_TIMESTAMP 0x00020000L
#define SQL_CVT_LONGVARBINARY 0x00040000L
};
enum enumSQLGetInfo { /* Types of information available */
/* Driver information */
SQL_INFO_FIRST, /* first GetInfo type */
SQL_ACTIVE_CONNECTIONS = 0, /* returns short */
SQL_ACTIVE_STATEMENTS, /* returns short */
SQL_DATA_SOURCE_NAME, /* returns string */
SQL_DRIVER_HDBC, /* returns HDBC */
SQL_DRIVER_HENV, /* returns HENV */
SQL_DRIVER_HSTMT, /* returns HSTMT */
SQL_DRIVER_NAME, /* returns string */
SQL_DRIVER_VER, /* returns string */
SQL_FETCH_DIRECTION, /* returns mask of enumSQLFetchDirection */
SQL_ODBC_API_CONFORMANCE, /* returns integer 0, 1 or 2*/
SQL_ODBC_VER, /* returns string */
SQL_ROW_UPDATES, /* returns string "Y" or "N" */
SQL_ODBC_SAG_CLI_CONFORMANCE,/* returns short TRUE or FALSE */
SQL_SERVER_NAME, /* returns string */
SQL_SEARCH_PATTERN_ESCAPE, /* returns string */
SQL_ODBC_SQL_CONFORMANCE, /* returns short 0, 1 or 2 */
/* DBMS information */
SQL_DATABASE_NAME, /* returns string - Use SQLGetConnectOption */
SQL_DBMS_NAME, /* returns string */
SQL_DBMS_VER, /* returns string */
/* Data source capabilities */
SQL_ACCESSIBLE_TABLES, /* returns string "Y" or "N" */
SQL_ACCESSIBLE_PROCEDURES, /* returns string "Y" or "N" */
SQL_PROCEDURES, /* returns string "Y" or "N" */
SQL_CONCAT_NULL_BEHAVIOR, /* returns short 0=NULL 1=empty string */
SQL_CURSOR_COMMIT_BEHAVIOR, /* returns short 0=close/del 1=close 2=open */
SQL_CURSOR_ROLLBACK_BEHAVIOR,/* same as above */
SQL_DATA_SOURCE_READ_ONLY, /* returns string "Y" or "N" */
SQL_DEFAULT_TXN_ISOLATION, /* returns mask of enumSQLIsolation */
SQL_EXPRESSIONS_IN_ORDERBY, /* returns string "Y" or "N" */
SQL_IDENTIFIER_CASE, /* returns short 0=UPR 1=LWR 2=case sens 3=ins*/
SQL_IDENTIFIER_QUOTE_CHAR, /* returns string */
SQL_MAX_COLUMN_NAME_LEN, /* returns short */
SQL_MAX_CURSOR_NAME_LEN, /* returns short */
SQL_MAX_OWNER_NAME_LEN, /* returns short */
SQL_MAX_PROCEDURE_NAME_LEN, /* returns short */
SQL_MAX_QUALIFIER_NAME_LEN, /* returns short */
SQL_MAX_TABLE_NAME_LEN, /* returns short */
SQL_MULT_RESULT_SETS, /* returns string "Y" or "N" */
SQL_MULTIPLE_ACTIVE_TXN, /* returns string "Y" or "N" */
SQL_OUTER_JOINS, /* returns string "Y" or "N" */
SQL_OWNER_TERM, /* returns string */
SQL_PROCEDURE_TERM, /* returns string */
SQL_QUALIFIER_NAME_SEPARATOR, /* returns string */
SQL_QUALIFIER_TERM, /* returns string */
SQL_SCROLL_CONCURRENCY, /* returns mask of enumSQLConcurMask */
SQL_SCROLL_OPTIONS, /* returns mask of enumSQLScrollOptions */
SQL_TABLE_TERM, /* returns string */
SQL_TXN_CAPABLE, /* returns short 0=none 1=DML 2=DML&DDL */
SQL_USER_NAME, /* returns string */
/* Available functions */
SQL_CONVERT_FUNCTIONS, /* returns mask of enumSQLConvertFunctions */
SQL_NUMERIC_FUNCTIONS, /* returns mask of enumSQLNumericFunctions */
SQL_STRING_FUNCTIONS, /* returns mask of enumSQLStringFunctions */
SQL_SYSTEM_FUNCTIONS, /* returns mask of enumSQLSystemFunctions */
SQL_TIMEDATE_FUNCTIONS, /* returns mask of enumSQLTimedateFunctions */
/* Conversion capabilities -- all return mask of enumSQLConvert */
SQL_CONVERT_BIGINT,
SQL_CONVERT_BINARY,
SQL_CONVERT_BIT,
SQL_CONVERT_CHAR,
SQL_CONVERT_DATE,
SQL_CONVERT_DECIMAL,
SQL_CONVERT_DOUBLE,
SQL_CONVERT_FLOAT,
SQL_CONVERT_INTEGER,
SQL_CONVERT_LONGVARCHAR,
SQL_CONVERT_NUMERIC,
SQL_CONVERT_REAL,
SQL_CONVERT_SMALLINT,
SQL_CONVERT_TIME,
SQL_CONVERT_TIMESTAMP,
SQL_CONVERT_TINYINT,
SQL_CONVERT_VARBINARY,
SQL_CONVERT_VARCHAR,
SQL_CONVERT_LONGVARBINARY,
/* Afterthought -- should be in Data source capabilities */
SQL_TXN_ISOLATION_OPTION, /* returns enumSQLIsolation */
SQL_ODBC_SQL_OPT_IEF,
SQL_CORRELATION_NAME,
SQL_NON_NULLABLE_COLUMNS,
#if (ODBCVER >= 0x0200)
SQL_DRIVER_HLIB,
SQL_DRIVER_ODBC_VER,
SQL_LOCK_TYPES,
SQL_POS_OPERATIONS,
SQL_POSITIONED_STATEMENTS,
SQL_GETDATA_EXTENSIONS,
SQL_BOOKMARK_PERSISTENCE,
SQL_STATIC_SENSITIVITY,
SQL_FILE_USAGE,
SQL_NULL_COLLATION,
SQL_ALTER_TABLE,
SQL_COLUMN_ALIAS,
SQL_GROUP_BY,
SQL_KEYWORDS,
SQL_ORDER_BY_COLUMNS_IN_SELECT,
SQL_OWNER_USAGE,
SQL_QUALIFIER_USAGE,
SQL_QUOTED_IDENTIFIER_CASE,
SQL_SPECIAL_CHARACTERS,
SQL_SUBQUERIES,
SQL_UNION,
SQL_MAX_COLUMNS_IN_GROUP_BY,
SQL_MAX_COLUMNS_IN_INDEX,
SQL_MAX_COLUMNS_IN_ORDER_BY,
SQL_MAX_COLUMNS_IN_SELECT,
SQL_MAX_COLUMNS_IN_TABLE,
SQL_MAX_INDEX_SIZE,
SQL_MAX_ROW_SIZE_INCLUDES_LONG,
SQL_MAX_ROW_SIZE,
SQL_MAX_STATEMENT_LEN,
SQL_MAX_TABLES_IN_SELECT,
SQL_MAX_USER_NAME_LEN,
SQL_MAX_CHAR_LITERAL_LEN,
SQL_TIMEDATE_ADD_INTERVALS,
SQL_TIMEDATE_DIFF_INTERVALS,
SQL_NEED_LONG_DATA_LEN,
SQL_MAX_BINARY_LITERAL_LEN,
SQL_LIKE_ESCAPE_CLAUSE,
SQL_QUALIFIER_LOCATION,
#endif
SQL_END_OF_GETINFO
};
#define SQL_INFO_LAST (SQL_END_OF_GETINFO - 1)
#define SQL_INFO_DRIVER_START 1000
#if (ODBCVER >= 0x0201)
#define SQL_OJ_CAPABILITIES 65002 /* temp value until ODBC 3.0 */
#endif
RETCODE ODBC_API SQLGetInfo( /* Level 1 */
HDBC hdbc,
UWORD fInfoType, /* enumSQLGetInfo */
PTR rgbInfoValue,
SWORD cbInfoValueMax,
SWORD ODBCFAR * pcbInfoValue );
/* API functions -- statements */
RETCODE ODBC_API SQLAllocStmt( /* CORE */
HDBC hdbc,
HSTMT ODBCFAR * phstmt );
RETCODE ODBC_API SQLCancel( /* CORE */
HSTMT hstmt );
RETCODE ODBC_API SQLExecDirect( /* CORE */
HSTMT hstmt,
UCHAR ODBCFAR * szSqlStr,
SDWORD cbSqlStr );
RETCODE ODBC_API SQLPrepare( /* CORE */
HSTMT hstmt,
UCHAR ODBCFAR * szSqlStr,
SDWORD cbSqlStr );
RETCODE ODBC_API SQLExecute( /* CORE */
HSTMT hstmt );
RETCODE ODBC_API SQLGetStmtOption( /* Level 1 */
HSTMT hstmt,
UWORD fOption, /* enumSQLOption */
PTR pvParam );
RETCODE ODBC_API SQLSetStmtOption( /* Level 1 */
HSTMT hstmt,
UWORD fOption, /* enumSQLOption */
UDWORD vParam );
enum enumSQLFreeStmt {
SQL_CLOSE,
SQL_DROP,
SQL_UNBIND,
SQL_RESET_PARAMS
};
RETCODE ODBC_API SQLFreeStmt( /* CORE */
HSTMT hstmt,
UWORD fOption ); /* enumSQLFreeStmt */
/* Result related functions */
RETCODE ODBC_API SQLBindCol( /* CORE */
HSTMT hstmt,
UWORD icol, /* 1..n */
SWORD fCType, /* SQL_C_... */
PTR rgbValue,
SDWORD cbValueMax,
SDWORD ODBCFAR * pcbValue );
enum enumSQLColAttrType { /* SQLColAttributes fDescType values */
SQL_COLUMN_COUNT,
SQL_COLUMN_NAME,
SQL_COLUMN_TYPE,
SQL_COLUMN_LENGTH,
SQL_COLUMN_PRECISION,
SQL_COLUMN_SCALE,
SQL_COLUMN_DISPLAY_SIZE,
SQL_COLUMN_NULLABLE, /* returns enumSQLNullable */
SQL_COLUMN_UNSIGNED,
SQL_COLUMN_MONEY,
SQL_COLUMN_UPDATABLE, /* returns enumSQLUpdatable */
SQL_COLUMN_AUTO_INCREMENT,
SQL_COLUMN_CASE_SENSITIVE,
SQL_COLUMN_SEARCHABLE, /* returns enumSQLSearchable */
SQL_COLUMN_TYPE_NAME
#if (ODBCVER >= 0x0200)
,
SQL_COLUMN_TABLE_NAME,
SQL_COLUMN_OWNER_NAME,
SQL_COLUMN_QUALIFIER_NAME,
SQL_COLUMN_LABEL
#endif
};
#define SQL_COLUMN_DRIVER_START 1000
enum enumSQLNullable { /* Output from SQLColAttributes,
SQLDescribeCol and SQLSpecialColumns */
SQL_NO_NULLS,
SQL_NULLABLE,
SQL_NULLABLE_UNKNOWN
};
enum enumSQLUpdatable { /* Output from SQLColAttributes */
SQL_ATTR_READONLY,
SQL_ATTR_WRITE,
SQL_ATTR_READWRITE_UNKNOWN
};
enum enumSQLSearchable { /* Output from SQLColAttributes */
SQL_UNSEARCHABLE,
SQL_LIKE_ONLY,
SQL_ALL_EXCEPT_LIKE,
SQL_SEARCHABLE
};
RETCODE ODBC_API SQLColAttributes( /* CORE */
HSTMT hstmt,
UWORD icol, /* 1..n */
UWORD fDescType, /* enumSQLColAttrType */
PTR rgbDesc,
SWORD cbDescMax,
SWORD ODBCFAR * pcbDesc,
SDWORD ODBCFAR * pfDesc );
RETCODE ODBC_API SQLDescribeCol( /* CORE */
HSTMT hstmt,
UWORD icol, /* 1..n */
UCHAR ODBCFAR * szColName,
SWORD cbColNameMax,
SWORD ODBCFAR * pcbColName,
SWORD ODBCFAR * pfSqlType, /* enumSQLTYPE */
UDWORD ODBCFAR * pcbColDef,
SWORD ODBCFAR * pibScale,
SWORD ODBCFAR * pfNullable ); /* enumSQLNullable */
RETCODE ODBC_API SQLFetch( /* CORE */
HSTMT hstmt );
enum enumSQLFetchType {
SQL_FETCH_NEXT = 1,
SQL_FETCH_FIRST,
SQL_FETCH_LAST,
SQL_FETCH_PRIOR,
SQL_FETCH_ABSOLUTE,
SQL_FETCH_RELATIVE,
SQL_FETCH_RESUME, /* not supported by 2.0 drivers */
#if (ODBCVER >= 0x0200)
SQL_FETCH_BOOKMARK
#endif
};
#define SQL_FETCH_PREV SQL_FETCH_PRIOR
enum enumSQLRowStatus {
SQL_ROW_SUCCESS,
SQL_ROW_DELETED,
SQL_ROW_UPDATED,
SQL_ROW_NOROW
#if (ODBCVER >= 0x0200)
,
SQL_ROW_ADDED,
SQL_ROW_ERROR
#endif
};
RETCODE ODBC_API SQLExtendedFetch( /* Level 2 */
HSTMT hstmt,
UWORD fFetchType, /* enumSQLFetchType */
SDWORD irow,
UDWORD ODBCFAR * pcrow, /* number of rows actually fetched */
UWORD ODBCFAR * rgfRowStatus ); /* array of enumSQLRowStatus */
enum enumSetPosOps {
SQL_POSITION,
SQL_REFRESH
#if (ODBCVER >= 0x0200)
,
SQL_UPDATE,
SQL_DELETE,
SQL_ADD
#endif
};
enum enumSetPosLocks {
SQL_LOCK_NO_CHANGE,
SQL_LOCK_EXCLUSIVE
#if (ODBCVER >= 0x0200)
,
SQL_LOCK_UNLOCK
#endif
};
#define SQL_ENTIRE_ROWSET 0
#if (ODBCVER >= 0x0200)
#define SQL_POSITION_TO(hstmt,irow) \
SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
#define SQL_LOCK_RECORD(hstmt,irow,fLock) \
SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
#define SQL_REFRESH_RECORD(hstmt,irow,fLock) \
SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
#define SQL_UPDATE_RECORD(hstmt,irow) \
SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
#define SQL_DELETE_RECORD(hstmt,irow) \
SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
#define SQL_ADD_RECORD(hstmt,irow) \
SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
#define SQL_ODBC_KEYWORDS \
"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
"COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERABLE,"\
"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
"DISTINCT,DOMAIN,DOUBLE,DROP,"\
"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXECEPTION,EXEC,EXECUTE,"\
"EXISTS,EXTERNAL,EXTRACT,"\
"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
"INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERNAL,INTO,IS,ISOLATION,"\
"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\
"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
"REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\
"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\
"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
"SUBSTRING,SUM,SYSTEM_USER,"\
"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
"VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR"
#endif /* (ODBCVER >= 0x0200) */
RETCODE ODBC_API SQLSetPos( /* Level 2 */
HSTMT hstmt,
UWORD irow, /* 1..n */
UWORD fRefresh, /* TRUE or FALSE */
UWORD fLock ); /* TRUE or FALSE */
enum enumSQLConcurrency {
SQL_CONCUR_READ_ONLY = 1,
SQL_CONCUR_LOCK,
SQL_CONCUR_ROWVER,
SQL_CONCUR_VALUES
};
#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER
#if (ODBCVER >= 0x0200)
enum enumCursorType {
SQL_CURSOR_FORWARD_ONLY,
SQL_CURSOR_KEYSET_DRIVEN,
SQL_CURSOR_DYNAMIC,
SQL_CURSOR_STATIC
};
enum enumSimCursor {
SQL_SC_NON_UNIQUE,
SQL_SC_TRY_UNIQUE,
SQL_SC_UNIQUE
};
enum enumRetrieveData {
SQL_RD_OFF,
SQL_RD_ON
};
enum enumUseBookmarks {
SQL_UB_OFF,
SQL_UB_ON
};
/* Special values for certain options */
#define SQL_ROWSET_SIZE_DEFAULT 1UL
#define SQL_KEYSET_SIZE_DEFAULT 0UL
#define SQL_RD_DEFAULT SQL_RD_ON
#define SQL_UB_DEFAULT SQL_UB_OFF
#endif /* (ODBCVER >= 0x0200) */
enum enumSQLKeySet {
SQL_SCROLL_FORWARD_ONLY = 0, /* SQL_CURSOR_FORWARD_ONLY */
SQL_SCROLL_KEYSET_DRIVEN = -1, /* SQL_CURSOR_KEYSET_DRIVEN */
SQL_SCROLL_DYNAMIC = -2 /* SQL_CURSOR_DYNAMIC */
#if (ODBCVER >= 0x0200)
,
SQL_SCROLL_STATIC = -3 /* SQL_CURSOR_STATIC */
#endif
};
/* Use SQLSetStmtOption */
RETCODE ODBC_API SQLSetScrollOptions( /* Level 2 */
HSTMT hstmt,
UWORD fConcurrency, /* enumSQLConcurrency */
SDWORD crowKeySet, /* number or enumSQLKeySet */
UWORD crowRowSet ); /* number of rows */
RETCODE ODBC_API SQLGetCursorName( /* CORE */
HSTMT hstmt,
UCHAR ODBCFAR * szCursor,
SWORD cbCursorMax,
SWORD ODBCFAR * pcbCursor );
RETCODE ODBC_API SQLGetData( /* Level 1 */
HSTMT hstmt,
UWORD icol, /* 1..n */
SWORD fCType, /* SQL_C_... */
PTR rgbValue,
SDWORD cbValueMax,
SDWORD ODBCFAR * pcbValue );
RETCODE ODBC_API SQLNumResultCols( /* CORE */
HSTMT hstmt,
SWORD ODBCFAR * pccol );
RETCODE ODBC_API SQLRowCount( /* CORE */
HSTMT hstmt,
SDWORD ODBCFAR * pcrow );
RETCODE ODBC_API SQLSetCursorName( /* CORE */
HSTMT hstmt,
UCHAR ODBCFAR * szCursor,
SWORD cbCursor );
/* Parameters */
RETCODE ODBC_API SQLNumParams( /* Level 2 */
HSTMT hstmt,
SWORD ODBCFAR * pcpar );
RETCODE ODBC_API SQLDescribeParam( /* Level 2 */
HSTMT hstmt,
UWORD ipar, /* 1..n */
SWORD ODBCFAR * pfSqlType, /* enumSQLTYPE */
UDWORD ODBCFAR * pcbColDef,
SWORD ODBCFAR * pibScale,
SWORD ODBCFAR * pfNullable ); /* enumSQLNullable */
#if (ODBCVER >= 0x0200)
#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
#define SQL_LEN_DATA_AT_EXEC(length) \
(-length+SQL_LEN_DATA_AT_EXEC_OFFSET)
RETCODE ODBC_API SQLBindParameter(
HSTMT hstmt,
UWORD ipar,
SWORD fParamType,
SWORD fCType,
SWORD fSqlType,
UDWORD cbColDef,
SWORD ibScale,
PTR rgbValue,
SDWORD cbValueMax,
SDWORD ODBCFAR * pcbValue );
#endif
/* Use SQLBindParameter */
RETCODE ODBC_API SQLSetParam( /* CORE */
HSTMT hstmt,
UWORD ipar, /* 1..n */
SWORD fCType, /* SQL_C_... */
SWORD fSqlType, /* enumSQLTYPE */
UDWORD cbColDef, /* length of data type */
SWORD ibScale, /* # digits after decimal point */
PTR rgbValue,
SDWORD ODBCFAR * pcbValue );
RETCODE ODBC_API SQLParamData( /* Level 1 */
HSTMT hstmt,
PTR ODBCFAR * prgbValue ); /* returns rgbValue from SQLSetParam */
RETCODE ODBC_API SQLPutData( /* Level 1 */
HSTMT hstmt,
PTR rgbValue, /* Note: type set by SQLSetParam */
SDWORD cbValue );
RETCODE ODBC_API SQLMoreResults( /* Level 2 */
HSTMT hstmt );
RETCODE ODBC_API SQLParamOptions( /* Level 2 */
HSTMT hstmt,
UDWORD crow,
UDWORD ODBCFAR * pirow );
/* Catalog information */
RETCODE ODBC_API SQLColumnPrivileges( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName,
UCHAR ODBCFAR * szColumnName,
SWORD cbColumnName );
RETCODE ODBC_API SQLTablePrivileges( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName );
RETCODE ODBC_API SQLColumns( /* Level 1 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName,
UCHAR ODBCFAR * szColumnName,
SWORD cbColumnName );
enum enumSQLForeignKeyAction { /* in SQLForeignKeys result set */
SQL_CASCADE,
SQL_RESTRICT,
SQL_SET_NULL
};
RETCODE ODBC_API SQLForeignKeys( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szPkTableQualifier,
SWORD cbPkTableQualifier,
UCHAR ODBCFAR * szPkTableOwner,
SWORD cbPkTableOwner,
UCHAR ODBCFAR * szPkTableName,
SWORD cbPkTableName,
UCHAR ODBCFAR * szFkTableQualifier,
SWORD cbFkTableQualifier,
UCHAR ODBCFAR * szFkTableOwner,
SWORD cbFkTableOwner,
UCHAR ODBCFAR * szFkTableName,
SWORD cbFkTableName );
RETCODE ODBC_API SQLGetTypeInfo( /* Level 1 */
HSTMT hstmt,
SWORD fSqlType ); /* enumSQLTYPE or SQL_ALL_TYPES */
RETCODE ODBC_API SQLPrimaryKeys( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName );
enum enumSQLProcColUse { /* in SQLProcedureColumns result set */
SQL_PARAM_TYPE_UNKNOWN,
SQL_PARAM_INPUT,
SQL_PARAM_INPUT_OUTPUT,
SQL_RESULT_COL
#if (ODBCVER >= 0x0200)
,
SQL_PARAM_OUTPUT,
SQL_RETURN_VALUE
#endif
};
#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT
#define SQL_SETPARAM_VALUE_MAX (-1L)
RETCODE ODBC_API SQLProcedureColumns( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szProcQualifier,
SWORD cbProcQualifier,
UCHAR ODBCFAR * szProcOwner,
SWORD cbProcOwner,
UCHAR ODBCFAR * szProcName,
SWORD cbProcName,
UCHAR ODBCFAR * szColumnName,
SWORD cbColumnName );
RETCODE ODBC_API SQLProcedures( /* Level 2 */
HSTMT hstmt,
UCHAR ODBCFAR * szProcQualifier,
SWORD cbProcQualifier,
UCHAR ODBCFAR * szProcOwner,
SWORD cbProcOwner,
UCHAR ODBCFAR * szProcName,
SWORD cbProcName );
enum enumSQLSpecialType {
SQL_BEST_ROWID = 1,
SQL_ROWVER
};
enum enumSQLScope {
SQL_SCOPE_CURROW,
SQL_SCOPE_TRANSACTION,
SQL_SCOPE_SESSION
};
RETCODE ODBC_API SQLSpecialColumns( /* Level 1 */
HSTMT hstmt,
UWORD fColType, /* enumSQLSpecialType */
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName,
UWORD fScope, /* enumSQLScope */
UWORD fNullable ); /* enumSQLNullable */
enum enumSQLUnique {
SQL_INDEX_UNIQUE,
SQL_INDEX_ALL
};
enum enumSQLAccuracy {
SQL_QUICK,
SQL_ENSURE
};
enum enumSQLTableStat {
SQL_TABLE_STAT,
SQL_INDEX_CLUSTERED,
SQL_INDEX_HASHED,
SQL_INDEX_OTHER
};
#if (ODBCVER >= 0x0200)
enum enumProcType {
SQL_PT_UNKNOWN,
SQL_PT_PROCEDURE,
SQL_PT_FUNCTION
};
enum enumPseudoCol {
SQL_PC_UNKNOWN,
SQL_PC_NOT_PSEUDO,
SQL_PC_PSEUDO
};
#define SQL_PC_NON_PSEUDO SQL_PC_NOT_PSEUDO
#endif
RETCODE ODBC_API SQLStatistics( /* Level 1 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName,
UWORD fUnique, /* enumSQLUnique */
UWORD fAccuracy ); /* enumSQLAccuracy */
RETCODE ODBC_API SQLTables( /* Level 1 */
HSTMT hstmt,
UCHAR ODBCFAR * szTableQualifier,
SWORD cbTableQualifier,
UCHAR ODBCFAR * szTableOwner,
SWORD cbTableOwner,
UCHAR ODBCFAR * szTableName,
SWORD cbTableName,
UCHAR ODBCFAR * szTableType, /* string 'TABLE','VIEW' */
SWORD cbTableType );
#endif
#ifdef __cplusplus
};
#endif
#endif /* __ODBC_H_INCLUDED */