isql.h 6.31 KB
Newer Older
1 2 3 4 5
/*
 * Modified isql.h file from iodbc. This file should be placed in the
 * include path to be used to create ODBC compliant applications.
 */

Byron Nikolaidis's avatar
Byron Nikolaidis committed
6
#ifndef _INTRINSIC_SQL_H
7
#define _INTRINSIC_SQL_H
Byron Nikolaidis's avatar
Byron Nikolaidis committed
8

9 10 11 12 13
typedef unsigned char UCHAR;
typedef long int SDWORD;
typedef short int SWORD;
typedef unsigned long int UDWORD;
typedef unsigned short int UWORD;
Byron Nikolaidis's avatar
Byron Nikolaidis committed
14

15
typedef void FAR *PTR;
Byron Nikolaidis's avatar
Byron Nikolaidis committed
16

17 18 19
typedef void FAR *HENV;
typedef void FAR *HDBC;
typedef void FAR *HSTMT;
Byron Nikolaidis's avatar
Byron Nikolaidis committed
20

21
typedef signed short RETCODE;
Byron Nikolaidis's avatar
Byron Nikolaidis committed
22

23 24 25 26 27
#ifdef WIN32
#define SQL_API			 __stdcall
#else
#define SQL_API			 EXPORT CALLBACK
#endif
Byron Nikolaidis's avatar
Byron Nikolaidis committed
28

29
/*#define ODBCVER		0x0250 */
Byron Nikolaidis's avatar
Byron Nikolaidis committed
30

31 32
#define SQL_MAX_MESSAGE_LENGTH			512
#define SQL_MAX_DSN_LENGTH				32
Byron Nikolaidis's avatar
Byron Nikolaidis committed
33 34

/* return code */
35 36 37 38 39
#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
Byron Nikolaidis's avatar
Byron Nikolaidis committed
40 41

/* standard SQL datatypes (agree with ANSI type numbering) */
42 43 44 45 46 47 48 49 50 51 52 53 54
#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
Byron Nikolaidis's avatar
Byron Nikolaidis committed
55 56

/* C to SQL datatype mapping */
57 58 59 60 61 62
#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
Byron Nikolaidis's avatar
Byron Nikolaidis committed
63

64 65 66
#define SQL_NO_NULLS					0
#define SQL_NULLABLE					1
#define SQL_NULLABLE_UNKNOWN			2
Byron Nikolaidis's avatar
Byron Nikolaidis committed
67 68

/* some special length values */
69 70 71
#define SQL_NULL_DATA					(-1)
#define SQL_DATA_AT_EXEC				(-2)
#define SQL_NTS							(-3)
Byron Nikolaidis's avatar
Byron Nikolaidis committed
72 73

/* SQLFreeStmt flag values */
74 75 76 77
#define SQL_CLOSE						0
#define SQL_DROP						1
#define SQL_UNBIND						2
#define SQL_RESET_PARAMS				3
Byron Nikolaidis's avatar
Byron Nikolaidis committed
78 79

/* SQLTransact flag values */
80 81
#define SQL_COMMIT						0
#define SQL_ROLLBACK					1
Byron Nikolaidis's avatar
Byron Nikolaidis committed
82 83

/* SQLColAttributes flag values */
84 85 86 87
#define SQL_COLUMN_COUNT				0
#define SQL_COLUMN_LABEL				18
#define SQL_COLATT_OPT_MAX				SQL_COLUMN_LABEL
#define SQL_COLUMN_DRIVER_START			1000
Byron Nikolaidis's avatar
Byron Nikolaidis committed
88

89
#define SQL_COLATT_OPT_MIN				SQL_COLUMN_COUNT
Byron Nikolaidis's avatar
Byron Nikolaidis committed
90 91

/* Null handles */
92 93 94
#define SQL_NULL_HENV					0
#define SQL_NULL_HDBC					0
#define SQL_NULL_HSTMT					0
Byron Nikolaidis's avatar
Byron Nikolaidis committed
95 96

/* All code below has been added to the original isql.h coming from iodbc */
97
typedef unsigned char BYTE;
Byron Nikolaidis's avatar
Byron Nikolaidis committed
98 99

/* More SQLColAttributes flag values */
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
#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
Byron Nikolaidis's avatar
Byron Nikolaidis committed
117 118

/* SQLColAttributes Searchable flags */
119 120 121 122 123
#define SQL_UNSEARCHABLE				0
#define SQL_LIKE_ONLY					1
#define SQL_ALL_EXCEPT_LIKE				2
#define SQL_SEARCHABLE					3
#define SQL_PRED_SEARCHABLE				SQL_SEARCHABLE
Byron Nikolaidis's avatar
Byron Nikolaidis committed
124 125

/* SQLColAttributes Updateable flags */
126 127 128
#define SQL_ATTR_READONLY				0
#define SQL_ATTR_WRITE					1
#define SQL_ATTR_READWRITE_UNKNOWN		2
Byron Nikolaidis's avatar
Byron Nikolaidis committed
129 130

/*
131
 *	function prototypes previously not contained in isql.h
Byron Nikolaidis's avatar
Byron Nikolaidis committed
132 133
 */
#ifdef __cplusplus
134
extern		"C"
Byron Nikolaidis's avatar
Byron Nikolaidis committed
135 136 137
{
#endif

138
	RETCODE SQL_API SQLAllocConnect(HENV henv,
139 140
												HDBC FAR * phdbc);
	RETCODE SQL_API SQLAllocEnv(HENV FAR * phenv);
141
	RETCODE SQL_API SQLAllocStmt(HDBC hdbc,
142
											 HSTMT FAR * phstmt);
143 144 145 146 147
	RETCODE SQL_API SQLBindCol(HSTMT hstmt,
										   UWORD icol,
										   SWORD fCType,
										   PTR rgbValue,
										   SDWORD cbValueMax,
148
										   SDWORD FAR * pcbValue);
149 150 151 152 153 154 155 156

	RETCODE SQL_API SQLCancel(HSTMT hstmt);

	RETCODE SQL_API SQLColAttributes(HSTMT hstmt,
												 UWORD icol,
												 UWORD fDescType,
												 PTR rgbDesc,
												 SWORD cbDescMax,
157 158
												 SWORD FAR * pcbDesc,
												 SDWORD FAR * pfDesc);
159 160

	RETCODE SQL_API SQLConnect(HDBC hdbc,
161
										   UCHAR FAR * szDSN,
162
										   SWORD cbDSN,
163
										   UCHAR FAR * szUID,
164
										   SWORD cbUID,
165
										   UCHAR FAR * szAuthStr,
166 167 168 169
										   SWORD cbAuthStr);

	RETCODE SQL_API SQLDescribeCol(HSTMT hstmt,
											   UWORD icol,
170
											   UCHAR FAR * szColName,
171
											   SWORD cbColNameMax,
172 173 174 175 176
											   SWORD FAR * pcbColName,
											   SWORD FAR * pfSqlType,
											   UDWORD FAR * pcbColDef,
											   SWORD FAR * pibScale,
											   SWORD FAR * pfNullable);
177 178 179 180 181 182

	RETCODE SQL_API SQLDisconnect(HDBC hdbc);

	RETCODE SQL_API SQLError(HENV henv,
										 HDBC hdbc,
										 HSTMT hstmt,
183 184 185
										 UCHAR FAR * szSqlState,
										 SDWORD FAR * pfNativeError,
										 UCHAR FAR * szErrorMsg,
186
										 SWORD cbErrorMsgMax,
187
										 SWORD FAR * pcbErrorMsg);
188 189

	RETCODE SQL_API SQLExecDirect(HSTMT hstmt,
190
											  UCHAR FAR * szSqlStr,
191 192 193 194 195 196 197 198 199 200 201 202 203 204
											  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,
205
												 UCHAR FAR * szCursor,
206
												 SWORD cbCursorMax,
207
												 SWORD FAR * pcbCursor);
208 209

	RETCODE SQL_API SQLNumResultCols(HSTMT hstmt,
210
												 SWORD FAR * pccol);
211 212

	RETCODE SQL_API SQLPrepare(HSTMT hstmt,
213
										   UCHAR FAR * szSqlStr,
214 215 216
										   SDWORD cbSqlStr);

	RETCODE SQL_API SQLRowCount(HSTMT hstmt,
217
											SDWORD FAR * pcrow);
218 219

	RETCODE SQL_API SQLSetCursorName(HSTMT hstmt,
220
												 UCHAR FAR * szCursor,
221 222 223 224 225 226 227 228 229 230 231 232 233
												 SWORD cbCursor);

	RETCODE SQL_API SQLTransact(HENV henv,
											HDBC hdbc,
											UWORD fType);

	RETCODE SQL_API SQLSetParam(HSTMT hstmt,
											UWORD ipar,
											SWORD fCType,
											SWORD fSqlType,
											UDWORD cbColDef,
											SWORD ibScale,
											PTR rgbValue,
234
											SDWORD FAR * pcbValue);
Byron Nikolaidis's avatar
Byron Nikolaidis committed
235

Hiroshi Inoue's avatar
Hiroshi Inoue committed
236 237 238 239 240 241
	RETCODE SQL_API SQLDataSources(HENV henv,
                           UWORD Direction, UCHAR FAR *ServerName,
                           WORD BufferLength1, WORD *NameLength1,
                           UCHAR FAR *Description, WORD BufferLength2,
                           WORD *NameLength2);

Byron Nikolaidis's avatar
Byron Nikolaidis committed
242 243
#ifdef __cplusplus
}
244
#endif
245

Byron Nikolaidis's avatar
Byron Nikolaidis committed
246
#endif