1 /* Modified isql.h file from iodbc. This file should be placed in the
2 * include path to be used to create ODBC compliant applications.
4 #ifndef _INTRINSIC_SQL_H
5 # define _INTRINSIC_SQL_H
7 typedef unsigned char UCHAR;
8 typedef long int SDWORD;
9 typedef short int SWORD;
10 typedef unsigned long int UDWORD;
11 typedef unsigned short int UWORD;
13 typedef void FAR* PTR;
15 typedef void FAR* HENV;
16 typedef void FAR* HDBC;
17 typedef void FAR* HSTMT;
19 typedef signed short RETCODE;
22 # define SQL_API __stdcall
24 # define SQL_API EXPORT CALLBACK
27 # define ODBCVER 0x0200
29 # define SQL_MAX_MESSAGE_LENGTH 512
30 # define SQL_MAX_DSN_LENGTH 32
33 # define SQL_INVALID_HANDLE (-2)
34 # define SQL_ERROR (-1)
35 # define SQL_SUCCESS 0
36 # define SQL_SUCCESS_WITH_INFO 1
37 # define SQL_NO_DATA_FOUND 100
39 /* standard SQL datatypes (agree with ANSI type numbering) */
41 # define SQL_NUMERIC 2
42 # define SQL_DECIMAL 3
43 # define SQL_INTEGER 4
44 # define SQL_SMALLINT 5
48 # define SQL_VARCHAR 12
50 # define SQL_TYPE_MIN SQL_CHAR
51 # define SQL_TYPE_NULL 0
52 # define SQL_TYPE_MAX SQL_VARCHAR
54 /* C to SQL datatype mapping */
55 # define SQL_C_CHAR SQL_CHAR
56 # define SQL_C_LONG SQL_INTEGER
57 # define SQL_C_SHORT SQL_SMALLINT
58 # define SQL_C_FLOAT SQL_REAL
59 # define SQL_C_DOUBLE SQL_DOUBLE
60 # define SQL_C_DEFAULT 99
62 # define SQL_NO_NULLS 0
63 # define SQL_NULLABLE 1
64 # define SQL_NULLABLE_UNKNOWN 2
66 /* some special length values */
67 # define SQL_NULL_DATA (-1)
68 # define SQL_DATA_AT_EXEC (-2)
71 /* SQLFreeStmt flag values */
75 # define SQL_RESET_PARAMS 3
77 /* SQLTransact flag values */
79 # define SQL_ROLLBACK 1
81 /* SQLColAttributes flag values */
82 # define SQL_COLUMN_COUNT 0
83 # define SQL_COLUMN_LABEL 18
84 # define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL
85 # define SQL_COLUMN_DRIVER_START 1000
87 # define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT
90 # define SQL_NULL_HENV 0
91 # define SQL_NULL_HDBC 0
92 # define SQL_NULL_HSTMT 0
94 /* All code below has been added to the original isql.h coming from iodbc */
95 typedef unsigned char BYTE;
97 /* More SQLColAttributes flag values */
98 #define SQL_COLUMN_NAME 1
99 #define SQL_COLUMN_TYPE 2
100 #define SQL_COLUMN_LENGTH 3
101 #define SQL_COLUMN_PRECISION 4
102 #define SQL_COLUMN_SCALE 5
103 #define SQL_COLUMN_DISPLAY_SIZE 6
104 #define SQL_COLUMN_NULLABLE 7
105 #define SQL_COLUMN_UNSIGNED 8
106 #define SQL_COLUMN_MONEY 9
107 #define SQL_COLUMN_UPDATABLE 10
108 #define SQL_COLUMN_AUTO_INCREMENT 11
109 #define SQL_COLUMN_CASE_SENSITIVE 12
110 #define SQL_COLUMN_SEARCHABLE 13
111 #define SQL_COLUMN_TYPE_NAME 14
112 #define SQL_COLUMN_TABLE_NAME 15
113 #define SQL_COLUMN_OWNER_NAME 16
114 #define SQL_COLUMN_QUALIFIER_NAME 17
116 /* SQLColAttributes Searchable flags */
117 #define SQL_UNSEARCHABLE 0
118 #define SQL_LIKE_ONLY 1
119 #define SQL_ALL_EXCEPT_LIKE 2
120 #define SQL_SEARCHABLE 3
121 #define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
123 /* SQLColAttributes Updateable flags */
124 #define SQL_ATTR_READONLY 0
125 #define SQL_ATTR_WRITE 1
126 #define SQL_ATTR_READWRITE_UNKNOWN 2
129 * function prototypes previously not contained in isql.h
136 RETCODE SQL_API SQLAllocConnect (HENV henv,
138 RETCODE SQL_API SQLAllocEnv (HENV FAR * phenv);
139 RETCODE SQL_API SQLAllocStmt (HDBC hdbc,
141 RETCODE SQL_API SQLBindCol (HSTMT hstmt,
146 SDWORD FAR * pcbValue);
148 RETCODE SQL_API SQLCancel (HSTMT hstmt);
150 RETCODE SQL_API SQLColAttributes (HSTMT hstmt,
156 SDWORD FAR * pfDesc);
158 RETCODE SQL_API SQLConnect (HDBC hdbc,
163 UCHAR FAR * szAuthStr,
166 RETCODE SQL_API SQLDescribeCol (HSTMT hstmt,
168 UCHAR FAR * szColName,
170 SWORD FAR * pcbColName,
171 SWORD FAR * pfSqlType,
172 UDWORD FAR * pcbColDef,
173 SWORD FAR * pibScale,
174 SWORD FAR * pfNullable);
176 RETCODE SQL_API SQLDisconnect (HDBC hdbc);
178 RETCODE SQL_API SQLError (HENV henv,
181 UCHAR FAR * szSqlState,
182 SDWORD FAR * pfNativeError,
183 UCHAR FAR * szErrorMsg,
185 SWORD FAR * pcbErrorMsg);
187 RETCODE SQL_API SQLExecDirect (HSTMT hstmt,
188 UCHAR FAR * szSqlStr,
191 RETCODE SQL_API SQLExecute (HSTMT hstmt);
193 RETCODE SQL_API SQLFetch (HSTMT hstmt);
195 RETCODE SQL_API SQLFreeConnect (HDBC hdbc);
197 RETCODE SQL_API SQLFreeEnv (HENV henv);
199 RETCODE SQL_API SQLFreeStmt (HSTMT hstmt,
202 RETCODE SQL_API SQLGetCursorName (HSTMT hstmt,
203 UCHAR FAR * szCursor,
205 SWORD FAR * pcbCursor);
207 RETCODE SQL_API SQLNumResultCols (HSTMT hstmt,
210 RETCODE SQL_API SQLPrepare (HSTMT hstmt,
211 UCHAR FAR * szSqlStr,
214 RETCODE SQL_API SQLRowCount (HSTMT hstmt,
217 RETCODE SQL_API SQLSetCursorName (HSTMT hstmt,
218 UCHAR FAR * szCursor,
221 RETCODE SQL_API SQLTransact (HENV henv,
225 RETCODE SQL_API SQLSetParam (HSTMT hstmt,
232 SDWORD FAR * pcbValue);