]> granicus.if.org Git - postgresql/blob - src/interfaces/odbc/isql.h
Version 06-30-0248
[postgresql] / src / interfaces / odbc / isql.h
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.
3 */
4 #ifndef _INTRINSIC_SQL_H
5 # define _INTRINSIC_SQL_H
6
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;
12
13 typedef void FAR*               PTR;
14
15 typedef void FAR*               HENV;
16 typedef void FAR*               HDBC;
17 typedef void FAR*               HSTMT;
18
19 typedef signed short            RETCODE;
20
21 # ifdef WIN32
22 #   define SQL_API                      __stdcall
23 # else
24 #   define SQL_API                      EXPORT CALLBACK
25 # endif
26
27 # define ODBCVER                        0x0200
28
29 # define SQL_MAX_MESSAGE_LENGTH         512
30 # define SQL_MAX_DSN_LENGTH             32
31
32 /* return code */
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
38
39 /* standard SQL datatypes (agree with ANSI type numbering) */
40 # define SQL_CHAR                       1
41 # define SQL_NUMERIC                    2
42 # define SQL_DECIMAL                    3
43 # define SQL_INTEGER                    4
44 # define SQL_SMALLINT                   5
45 # define SQL_FLOAT                      6
46 # define SQL_REAL                       7
47 # define SQL_DOUBLE                     8
48 # define SQL_VARCHAR                    12
49
50 # define SQL_TYPE_MIN                   SQL_CHAR
51 # define SQL_TYPE_NULL                  0
52 # define SQL_TYPE_MAX                   SQL_VARCHAR
53
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
61
62 # define SQL_NO_NULLS                   0
63 # define SQL_NULLABLE                   1
64 # define SQL_NULLABLE_UNKNOWN           2
65
66 /* some special length values */
67 # define SQL_NULL_DATA                  (-1)
68 # define SQL_DATA_AT_EXEC               (-2)
69 # define SQL_NTS                        (-3)
70
71 /* SQLFreeStmt flag values */
72 # define SQL_CLOSE                      0
73 # define SQL_DROP                       1
74 # define SQL_UNBIND                     2
75 # define SQL_RESET_PARAMS               3
76
77 /* SQLTransact flag values */
78 # define SQL_COMMIT                     0
79 # define SQL_ROLLBACK                   1
80
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
86
87 # define SQL_COLATT_OPT_MIN             SQL_COLUMN_COUNT
88
89 /* Null handles */
90 # define SQL_NULL_HENV                  0
91 # define SQL_NULL_HDBC                  0
92 # define SQL_NULL_HSTMT                 0
93
94 /* All code below has been added to the original isql.h coming from iodbc */
95 typedef unsigned char   BYTE;
96
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
115
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
122
123 /* SQLColAttributes Updateable flags */
124 #define SQL_ATTR_READONLY               0
125 #define SQL_ATTR_WRITE                  1
126 #define SQL_ATTR_READWRITE_UNKNOWN      2
127
128 /*
129  *  function prototypes previously not contained in isql.h
130  */
131 #ifdef __cplusplus
132 extern "C"
133 {
134 #endif
135
136 RETCODE SQL_API SQLAllocConnect (HENV henv,
137         HDBC FAR * phdbc);
138 RETCODE SQL_API SQLAllocEnv (HENV FAR * phenv);
139 RETCODE SQL_API SQLAllocStmt (HDBC hdbc,
140         HSTMT FAR * phstmt);
141 RETCODE SQL_API SQLBindCol (HSTMT hstmt,
142         UWORD icol,
143         SWORD fCType,
144         PTR rgbValue,
145         SDWORD cbValueMax,
146         SDWORD FAR * pcbValue);
147
148 RETCODE SQL_API SQLCancel (HSTMT hstmt);
149
150 RETCODE SQL_API SQLColAttributes (HSTMT hstmt,
151         UWORD icol,
152         UWORD fDescType,
153         PTR rgbDesc,
154         SWORD cbDescMax,
155         SWORD FAR * pcbDesc,
156         SDWORD FAR * pfDesc);
157
158 RETCODE SQL_API SQLConnect (HDBC hdbc,
159         UCHAR FAR * szDSN,
160         SWORD cbDSN,
161         UCHAR FAR * szUID,
162         SWORD cbUID,
163         UCHAR FAR * szAuthStr,
164         SWORD cbAuthStr);
165
166 RETCODE SQL_API SQLDescribeCol (HSTMT hstmt,
167         UWORD icol,
168         UCHAR FAR * szColName,
169         SWORD cbColNameMax,
170         SWORD FAR * pcbColName,
171         SWORD FAR * pfSqlType,
172         UDWORD FAR * pcbColDef,
173         SWORD FAR * pibScale,
174         SWORD FAR * pfNullable);
175
176 RETCODE SQL_API SQLDisconnect (HDBC hdbc);
177
178 RETCODE SQL_API SQLError (HENV henv,
179         HDBC hdbc,
180         HSTMT hstmt,
181         UCHAR FAR * szSqlState,
182         SDWORD FAR * pfNativeError,
183         UCHAR FAR * szErrorMsg,
184         SWORD cbErrorMsgMax,
185         SWORD FAR * pcbErrorMsg);
186
187 RETCODE SQL_API SQLExecDirect (HSTMT hstmt,
188         UCHAR FAR * szSqlStr,
189         SDWORD cbSqlStr);
190
191 RETCODE SQL_API SQLExecute (HSTMT hstmt);
192
193 RETCODE SQL_API SQLFetch (HSTMT hstmt);
194
195 RETCODE SQL_API SQLFreeConnect (HDBC hdbc);
196
197 RETCODE SQL_API SQLFreeEnv (HENV henv);
198
199 RETCODE SQL_API SQLFreeStmt (HSTMT hstmt,
200         UWORD fOption);
201
202 RETCODE SQL_API SQLGetCursorName (HSTMT hstmt,
203         UCHAR FAR * szCursor,
204         SWORD cbCursorMax,
205         SWORD FAR * pcbCursor);
206
207 RETCODE SQL_API SQLNumResultCols (HSTMT hstmt,
208         SWORD FAR * pccol);
209
210 RETCODE SQL_API SQLPrepare (HSTMT hstmt,
211         UCHAR FAR * szSqlStr,
212         SDWORD cbSqlStr);
213
214 RETCODE SQL_API SQLRowCount (HSTMT hstmt,
215         SDWORD FAR * pcrow);
216
217 RETCODE SQL_API SQLSetCursorName (HSTMT hstmt,
218         UCHAR FAR * szCursor,
219         SWORD cbCursor);
220
221 RETCODE SQL_API SQLTransact (HENV henv,
222         HDBC hdbc,
223         UWORD fType);
224
225 RETCODE SQL_API SQLSetParam (HSTMT hstmt,
226         UWORD ipar,
227         SWORD fCType,
228         SWORD fSqlType,
229         UDWORD cbColDef,
230         SWORD ibScale,
231         PTR rgbValue,
232         SDWORD FAR * pcbValue);
233
234 #ifdef __cplusplus
235 }
236 #endif
237 #endif