X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e616b1050e4aaa4b8468d82ddf5b85d46412a3c..16d38102e8ad5534d185cc532b9aa8077a75e0a4:/src/iodbc/isql.h?ds=sidebyside diff --git a/src/iodbc/isql.h b/src/iodbc/isql.h index df5df0860f..9309ca6a89 100644 --- a/src/iodbc/isql.h +++ b/src/iodbc/isql.h @@ -1,192 +1,232 @@ -#ifndef _INTRINSIC_SQL_H -# define _INTRINSIC_SQL_H - -#ifndef OS2 -typedef unsigned char UCHAR; +/* + * isql.h + * + * $Id$ + * + * iODBC defines + * + * The iODBC driver manager. + * + * Copyright (C) 1995 by Ke Jin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef _ISQL_H +#define _ISQL_H + +#ifndef WIN16 +#ifdef WIN32 +#define SQL_API __stdcall +#else +#define FAR +#define EXPORT +#define CALLBACK +#define SQL_API EXPORT CALLBACK + +typedef void *HWND; #endif -typedef long int SDWORD; -typedef short int SWORD; -typedef unsigned long int UDWORD; -typedef unsigned short int UWORD; -typedef unsigned int UINT; - -#ifndef FAR -# define FAR #endif -#ifndef NEAR -# define NEAR -#endif -#ifndef HANDLE - typedef int HANDLE; - #endif -#ifndef HGLOBAL - typedef HANDLE HGLOBAL; - #endif -#ifndef SQL_INDEX_OTHER -#define SQL_INDEX_OTHER 3 - #endif - -# ifndef BOOL -# define BOOL int -# endif -# ifndef CHAR -# define CHAR char -# endif -# ifndef FALSE -# define FALSE (0 != 0) -# endif -# ifndef HWND -# define HWND int -# endif -# ifndef SQLHWND -# define SQLHWND int -# endif -# ifndef LONG -# define LONG long -# endif -# ifndef PASCAL -# define PASCAL -# endif -# ifndef SHORT -# define SHORT short -# endif -# ifndef SQL_API -# define SQL_API -# endif -# ifndef SQL_LOCAL_API -# define SQL_LOCAL_API -# endif -# ifndef TRUE -# define TRUE (0 == 0) -# endif - -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 +typedef void *SQLHWND; + +typedef unsigned char UCHAR; +typedef long int SDWORD; +typedef short int SWORD; +typedef unsigned long int UDWORD; +typedef unsigned short int UWORD; + +typedef void FAR *PTR; +typedef void FAR *HENV; +typedef void FAR *HDBC; +typedef void FAR *HSTMT; + +typedef signed short RETCODE; +#define SQLRETURN RETCODE + + +#define ODBCVER 0x0250 + +#define SQL_MAX_MESSAGE_LENGTH 512 +#define SQL_MAX_DSN_LENGTH 32 + +/* + * Function return codes + */ +#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 + */ +#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 + +/* + * NULL status constants. + */ +#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 + */ +#define SQL_CLOSE 0 +#define SQL_DROP 1 +#define SQL_UNBIND 2 +#define SQL_RESET_PARAMS 3 + +/* + * SQLTransact + */ +#define SQL_COMMIT 0 +#define SQL_ROLLBACK 1 + +/* + * SQLColAttributes + */ +#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 +#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 +#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT +#define SQL_COLUMN_DRIVER_START 1000 + +/* + * SQLColAttributes : SQL_COLUMN_UPDATABLE + */ +#define SQL_ATTR_READONLY 0 +#define SQL_ATTR_WRITE 1 +#define SQL_ATTR_READWRITE_UNKNOWN 2 + +/* + * SQLColAttributes : SQL_COLUMN_SEARCHABLE + */ +#define SQL_UNSEARCHABLE 0 +#define SQL_LIKE_ONLY 1 +#define SQL_ALL_EXCEPT_LIKE 2 +#define SQL_SEARCHABLE 3 + +/* + * NULL Handles + */ +#define SQL_NULL_HENV 0 +#define SQL_NULL_HDBC 0 +#define SQL_NULL_HSTMT 0 + + +/* + * Function Prototypes + */ +#ifdef __cplusplus +extern "C" { -SWORD year; -UWORD month; -UWORD day; -UWORD hour; -UWORD minute; -UWORD second; -UDWORD fraction; -} TIMESTAMP_STRUCT; - - - -typedef UCHAR FAR* PTR, - FAR* SQLPTR; - -typedef void FAR* HENV, - FAR* SQLHENV; -typedef void FAR* HDBC, - FAR* SQLHDBC; -typedef void FAR* HSTMT, - FAR* SQLHSTMT; -typedef SDWORD SQLINTEGER; -typedef signed short RETCODE; -typedef UCHAR SQLCHAR; -typedef UWORD SQLUSMALLINT; -typedef PTR SQLPOINTER; -typedef SWORD SQLSMALLINT; -typedef UDWORD SQLUINTEGER; - -# ifdef WIN32 -# define SQL_API __stdcall -# else -# define SQL_API /* giovanni EXPORT CALLBACK */ -# endif -# ifdef OS2 -# ifdef BCPP -# define _Optlink -# define _System _syscall -# endif -# undef SQL_API -# define SQL_API _System -# endif - - -#ifndef ODBCVER -# define ODBCVER 0x0200 #endif -# define SQL_MAX_MESSAGE_LENGTH 512 -# define SQL_MAX_DSN_LENGTH 32 - -/* return code */ -# 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 (agree with 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 to SQL datatype mapping */ -# 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 - -# define SQL_NO_NULLS 0 -# define SQL_NULLABLE 1 -# define SQL_NULLABLE_UNKNOWN 2 - -/* some special length values */ -# define SQL_NULL_DATA (-1) -# define SQL_DATA_AT_EXEC (-2) -# define SQL_NTS (-3) - -/* SQLFreeStmt flag values */ -# define SQL_CLOSE 0 -# define SQL_DROP 1 -# define SQL_UNBIND 2 -# define SQL_RESET_PARAMS 3 - -/* SQLTransact flag values */ -# define SQL_COMMIT 0 -# define SQL_ROLLBACK 1 - -/* SQLColAttributes flag values */ -# define SQL_COLUMN_COUNT 0 -# define SQL_COLUMN_LABEL 18 -# define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL -# define SQL_COLUMN_DRIVER_START 1000 - -# define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT - -/* Null handles */ -# define SQL_NULL_HENV 0 -# define SQL_NULL_HDBC 0 -# define SQL_NULL_HSTMT 0 - + 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); + +/* + * Depreciated ODBC 1.0 function - Use SQLBindParameter + */ + RETCODE SQL_API SQLSetParam (HSTMT hstmt, UWORD ipar, SWORD fCType, + SWORD fSqlType, UDWORD cbColDef, SWORD ibScale, PTR rgbValue, + SDWORD FAR * pcbValue); + +#ifdef __cplusplus +} #endif +#endif