Merge commit 'origin/master'
[versaplex.git] / vxodbc / pgapifunc.h
blob3de6696046efae3d521fa244c9b8eb495249ad59
1 /*-------
2 * Module: pgapifunc.h
4 *-------
5 */
6 #ifndef _PG_API_FUNC_H__
7 #define _PG_API_FUNC_H__
9 #include "psqlodbc.h"
10 #include <stdio.h>
11 #include <string.h>
13 #ifdef __cplusplus
14 extern "C" {
15 #endif /* __cplusplus */
16 /* Internal flags for catalog functions */
17 #define PODBC_NOT_SEARCH_PATTERN 1L
18 #define PODBC_SEARCH_PUBLIC_SCHEMA (1L << 1)
19 #define PODBC_SEARCH_BY_IDS (1L << 2)
20 /* Internal flags for PGAPI_Exec... functions */
21 #define PODBC_WITH_HOLD 1L
22 #define PODBC_PER_STATEMENT_ROLLBACK (1L << 1)
23 /* Flags for the error handling */
24 #define PODBC_ALLOW_PARTIAL_EXTRACT 1L
25 #define PODBC_ERROR_CLEAR (1L << 1)
27 RETCODE SQL_API PGAPI_AllocConnect(HENV EnvironmentHandle,
28 HDBC FAR * ConnectionHandle);
29 RETCODE SQL_API PGAPI_AllocEnv(HENV FAR * EnvironmentHandle);
30 RETCODE SQL_API PGAPI_AllocStmt(HDBC ConnectionHandle,
31 HSTMT *StatementHandle);
32 RETCODE SQL_API PGAPI_BindCol(HSTMT StatementHandle,
33 SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
34 PTR TargetValue, SQLLEN BufferLength,
35 SQLLEN *StrLen_or_Ind);
36 RETCODE SQL_API PGAPI_Cancel(HSTMT StatementHandle);
37 RETCODE SQL_API PGAPI_Columns(HSTMT StatementHandle,
38 const SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
39 const SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
40 const SQLCHAR *TableName, SQLSMALLINT NameLength3,
41 const SQLCHAR *ColumnName, SQLSMALLINT NameLength4,
42 UWORD flag,
43 OID reloid,
44 Int2 attnum);
45 RETCODE SQL_API PGAPI_Connect(HDBC ConnectionHandle,
46 const SQLCHAR *ServerName, SQLSMALLINT NameLength1,
47 const SQLCHAR *UserName, SQLSMALLINT NameLength2,
48 const SQLCHAR *Authentication, SQLSMALLINT NameLength3);
49 RETCODE SQL_API PGAPI_DriverConnect(HDBC hdbc, HWND hwnd,
50 const SQLCHAR FAR * szConnStrIn, SQLSMALLINT cbConnStrIn,
51 SQLCHAR FAR * szConnStrOut, SQLSMALLINT cbConnStrOutMax,
52 SQLSMALLINT FAR * pcbConnStrOut, SQLUSMALLINT fDriverCompletion);
53 RETCODE SQL_API PGAPI_BrowseConnect(HDBC hdbc,
54 const SQLCHAR *szConnStrIn, SQLSMALLINT cbConnStrIn,
55 SQLCHAR *szConnStrOut, SQLSMALLINT cbConnStrOutMax,
56 SQLSMALLINT *pcbConnStrOut);
57 RETCODE SQL_API PGAPI_DataSources(HENV EnvironmentHandle,
58 SQLUSMALLINT Direction, const SQLCHAR *ServerName,
59 SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1,
60 const SQLCHAR *Description, SQLSMALLINT BufferLength2,
61 SQLSMALLINT *NameLength2);
62 RETCODE SQL_API PGAPI_DescribeCol(HSTMT StatementHandle,
63 SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName,
64 SQLSMALLINT BufferLength, SQLSMALLINT *NameLength,
65 SQLSMALLINT *DataType, SQLULEN *ColumnSize,
66 SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable);
67 RETCODE SQL_API PGAPI_Disconnect(HDBC ConnectionHandle);
68 RETCODE SQL_API PGAPI_Error(HENV EnvironmentHandle,
69 HDBC ConnectionHandle, HSTMT StatementHandle,
70 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
71 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
72 SQLSMALLINT *TextLength);
73 /* Helper functions for Error handling */
74 RETCODE SQL_API PGAPI_EnvError(HENV EnvironmentHandle, SQLSMALLINT RecNumber,
75 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
76 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
77 SQLSMALLINT *TextLength, UWORD flag);
78 RETCODE SQL_API PGAPI_ConnectError(HDBC ConnectionHandle, SQLSMALLINT RecNumber,
79 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
80 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
81 SQLSMALLINT *TextLength, UWORD flag);
82 RETCODE SQL_API PGAPI_StmtError(HSTMT StatementHandle, SQLSMALLINT RecNumber,
83 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
84 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
85 SQLSMALLINT *TextLength, UWORD flag);
87 RETCODE SQL_API PGAPI_ExecDirect(HSTMT StatementHandle,
88 const SQLCHAR *StatementText, SQLINTEGER TextLength, UWORD flag);
89 RETCODE SQL_API PGAPI_ExecDirect_Vx(HSTMT StatementHandle,
90 const SQLCHAR *StatementText, SQLINTEGER TextLength, UWORD flag);
91 RETCODE SQL_API PGAPI_Execute(HSTMT StatementHandle, UWORD flag);
92 RETCODE SQL_API PGAPI_Execute_Vx(HSTMT StatementHandle, UWORD flag);
93 RETCODE SQL_API PGAPI_Fetch(HSTMT StatementHandle);
94 RETCODE SQL_API PGAPI_FreeConnect(HDBC ConnectionHandle);
95 RETCODE SQL_API PGAPI_FreeEnv(HENV EnvironmentHandle);
96 RETCODE SQL_API PGAPI_FreeStmt(HSTMT StatementHandle,
97 SQLUSMALLINT Option);
98 RETCODE SQL_API PGAPI_GetConnectOption(HDBC ConnectionHandle,
99 SQLUSMALLINT Option, PTR Value,
100 SQLINTEGER *StringLength, SQLINTEGER BufferLength);
101 RETCODE SQL_API PGAPI_GetCursorName(HSTMT StatementHandle,
102 SQLCHAR *CursorName, SQLSMALLINT BufferLength,
103 SQLSMALLINT *NameLength);
104 RETCODE SQL_API PGAPI_GetData(HSTMT StatementHandle,
105 SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
106 PTR TargetValue, SQLLEN BufferLength,
107 SQLLEN *StrLen_or_Ind);
108 RETCODE SQL_API PGAPI_GetFunctions(HDBC ConnectionHandle,
109 SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported);
110 RETCODE SQL_API PGAPI_GetFunctions30(HDBC ConnectionHandle,
111 SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported);
112 RETCODE SQL_API PGAPI_GetInfo(HDBC ConnectionHandle,
113 SQLUSMALLINT InfoType, PTR InfoValue,
114 SQLSMALLINT BufferLength, SQLSMALLINT *StringLength);
115 RETCODE SQL_API PGAPI_GetInfo30(HDBC ConnectionHandle,
116 SQLUSMALLINT InfoType, PTR InfoValue,
117 SQLSMALLINT BufferLength, SQLSMALLINT *StringLength);
118 RETCODE SQL_API PGAPI_GetStmtOption(HSTMT StatementHandle,
119 SQLUSMALLINT Option, PTR Value,
120 SQLINTEGER *StringLength, SQLINTEGER BufferLength);
121 RETCODE SQL_API PGAPI_GetTypeInfo(HSTMT StatementHandle,
122 SQLSMALLINT DataType);
123 RETCODE SQL_API PGAPI_NumResultCols(HSTMT StatementHandle,
124 SQLSMALLINT *ColumnCount);
125 RETCODE SQL_API PGAPI_ParamData(HSTMT StatementHandle,
126 PTR *Value);
127 RETCODE SQL_API PGAPI_Prepare(HSTMT StatementHandle,
128 const SQLCHAR *StatementText, SQLINTEGER TextLength);
129 RETCODE SQL_API PGAPI_PutData(HSTMT StatementHandle,
130 PTR Data, SQLLEN StrLen_or_Ind);
131 RETCODE SQL_API PGAPI_RowCount(HSTMT StatementHandle,
132 SQLLEN *RowCount);
133 RETCODE SQL_API PGAPI_SetConnectOption(HDBC ConnectionHandle,
134 SQLUSMALLINT Option, SQLULEN Value);
135 RETCODE SQL_API PGAPI_SetCursorName(HSTMT StatementHandle,
136 const SQLCHAR *CursorName, SQLSMALLINT NameLength);
137 RETCODE SQL_API PGAPI_SetParam(HSTMT StatementHandle,
138 SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
139 SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
140 SQLSMALLINT ParameterScale, PTR ParameterValue,
141 SQLLEN *StrLen_or_Ind);
142 RETCODE SQL_API PGAPI_SetStmtOption(HSTMT StatementHandle,
143 SQLUSMALLINT Option, SQLULEN Value);
144 RETCODE SQL_API PGAPI_SpecialColumns(HSTMT StatementHandle,
145 SQLUSMALLINT IdentifierType, const SQLCHAR *CatalogName,
146 SQLSMALLINT NameLength1, const SQLCHAR *SchemaName,
147 SQLSMALLINT NameLength2, const SQLCHAR *TableName,
148 SQLSMALLINT NameLength3, SQLUSMALLINT Scope,
149 SQLUSMALLINT Nullable);
150 RETCODE SQL_API PGAPI_Statistics(HSTMT StatementHandle,
151 const SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
152 const SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
153 const SQLCHAR *TableName, SQLSMALLINT NameLength3,
154 SQLUSMALLINT Unique, SQLUSMALLINT Reserved);
155 RETCODE SQL_API PGAPI_Tables(HSTMT StatementHandle,
156 const SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
157 const SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
158 const SQLCHAR *TableName, SQLSMALLINT NameLength3,
159 const SQLCHAR *TableType, SQLSMALLINT NameLength4,
160 UWORD flag);
161 RETCODE SQL_API PGAPI_Transact(HENV EnvironmentHandle,
162 HDBC ConnectionHandle, SQLUSMALLINT CompletionType);
163 RETCODE SQL_API PGAPI_ColAttributes(
164 HSTMT hstmt,
165 SQLUSMALLINT icol,
166 SQLUSMALLINT fDescType,
167 PTR rgbDesc,
168 SQLSMALLINT cbDescMax,
169 SQLSMALLINT *pcbDesc,
170 SQLLEN *pfDesc);
171 RETCODE SQL_API PGAPI_ColumnPrivileges(
172 HSTMT hstmt,
173 const SQLCHAR *szCatalogName,
174 SQLSMALLINT cbCatalogName,
175 const SQLCHAR *szSchemaName,
176 SQLSMALLINT cbSchemaName,
177 const SQLCHAR *szTableName,
178 SQLSMALLINT cbTableName,
179 const SQLCHAR *szColumnName,
180 SQLSMALLINT cbColumnName,
181 UWORD flag);
182 RETCODE SQL_API PGAPI_DescribeParam(
183 HSTMT hstmt,
184 SQLUSMALLINT ipar,
185 SQLSMALLINT *pfSqlType,
186 SQLULEN *pcbParamDef,
187 SQLSMALLINT *pibScale,
188 SQLSMALLINT *pfNullable);
189 RETCODE SQL_API PGAPI_ExtendedFetch(
190 HSTMT hstmt,
191 SQLUSMALLINT fFetchType,
192 SQLLEN irow,
193 SQLULEN *pcrow,
194 SQLUSMALLINT *rgfRowStatus,
195 SQLLEN FetchOffset,
196 SQLLEN rowsetSize);
197 RETCODE SQL_API PGAPI_ForeignKeys(
198 HSTMT hstmt,
199 const SQLCHAR *szPkCatalogName,
200 SQLSMALLINT cbPkCatalogName,
201 const SQLCHAR *szPkSchemaName,
202 SQLSMALLINT cbPkSchemaName,
203 const SQLCHAR *szPkTableName,
204 SQLSMALLINT cbPkTableName,
205 const SQLCHAR *szFkCatalogName,
206 SQLSMALLINT cbFkCatalogName,
207 const SQLCHAR *szFkSchemaName,
208 SQLSMALLINT cbFkSchemaName,
209 const SQLCHAR *szFkTableName,
210 SQLSMALLINT cbFkTableName);
211 RETCODE SQL_API PGAPI_MoreResults(
212 HSTMT hstmt);
213 RETCODE SQL_API PGAPI_NativeSql(
214 HDBC hdbc,
215 const SQLCHAR *szSqlStrIn,
216 SQLINTEGER cbSqlStrIn,
217 SQLCHAR *szSqlStr,
218 SQLINTEGER cbSqlStrMax,
219 SQLINTEGER *pcbSqlStr);
220 RETCODE SQL_API PGAPI_NumParams(
221 HSTMT hstmt,
222 SQLSMALLINT *pcpar);
223 RETCODE SQL_API PGAPI_ParamOptions(
224 HSTMT hstmt,
225 SQLULEN crow,
226 SQLULEN *pirow);
227 RETCODE SQL_API PGAPI_PrimaryKeys(
228 HSTMT hstmt,
229 const SQLCHAR *szCatalogName,
230 SQLSMALLINT cbCatalogName,
231 const SQLCHAR *szSchemaName,
232 SQLSMALLINT cbSchemaName,
233 const SQLCHAR *szTableName,
234 SQLSMALLINT cbTableName);
235 RETCODE SQL_API PGAPI_ProcedureColumns(
236 HSTMT hstmt,
237 const SQLCHAR *szCatalogName,
238 SQLSMALLINT cbCatalogName,
239 const SQLCHAR *szSchemaName,
240 SQLSMALLINT cbSchemaName,
241 const SQLCHAR *szProcName,
242 SQLSMALLINT cbProcName,
243 const SQLCHAR *szColumnName,
244 SQLSMALLINT cbColumnName,
245 UWORD flag);
246 RETCODE SQL_API PGAPI_Procedures(
247 HSTMT hstmt,
248 const SQLCHAR *szCatalogName,
249 SQLSMALLINT cbCatalogName,
250 const SQLCHAR *szSchemaName,
251 SQLSMALLINT cbSchemaName,
252 const SQLCHAR *szProcName,
253 SQLSMALLINT cbProcName,
254 UWORD flag);
255 RETCODE SQL_API PGAPI_SetPos(
256 HSTMT hstmt,
257 SQLSETPOSIROW irow,
258 SQLUSMALLINT fOption,
259 SQLUSMALLINT fLock);
260 RETCODE SQL_API PGAPI_TablePrivileges(
261 HSTMT hstmt,
262 const SQLCHAR *szCatalogName,
263 SQLSMALLINT cbCatalogName,
264 const SQLCHAR *szSchemaName,
265 SQLSMALLINT cbSchemaName,
266 const SQLCHAR *szTableName,
267 SQLSMALLINT cbTableName,
268 UWORD flag);
269 RETCODE SQL_API PGAPI_BindParameter(
270 HSTMT hstmt,
271 SQLUSMALLINT ipar,
272 SQLSMALLINT fParamType,
273 SQLSMALLINT fCType,
274 SQLSMALLINT fSqlType,
275 SQLULEN cbColDef,
276 SQLSMALLINT ibScale,
277 PTR rgbValue,
278 SQLLEN cbValueMax,
279 SQLLEN *pcbValue);
280 RETCODE SQL_API PGAPI_SetScrollOptions(
281 HSTMT hstmt,
282 SQLUSMALLINT fConcurrency,
283 SQLLEN crowKeyset,
284 SQLUSMALLINT crowRowset);
286 RETCODE SQL_API PGAPI_GetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
287 SQLSMALLINT RecNumber, SQLCHAR *Sqlstate,
288 SQLINTEGER *NativeError, SQLCHAR *MessageText,
289 SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
290 RETCODE SQL_API PGAPI_GetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle,
291 SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier,
292 PTR DiagInfoPtr, SQLSMALLINT BufferLength,
293 SQLSMALLINT *StringLengthPtr);
294 RETCODE SQL_API PGAPI_GetConnectAttr(HDBC ConnectionHandle,
295 SQLINTEGER Attribute, PTR Value,
296 SQLINTEGER BufferLength, SQLINTEGER *StringLength);
297 RETCODE SQL_API PGAPI_GetStmtAttr(HSTMT StatementHandle,
298 SQLINTEGER Attribute, PTR Value,
299 SQLINTEGER BufferLength, SQLINTEGER *StringLength);
300 RETCODE SQL_API PGAPI_SetConnectAttr(HDBC ConnectionHandle,
301 SQLINTEGER Attribute, PTR Value,
302 SQLINTEGER StringLength);
303 RETCODE SQL_API PGAPI_SetStmtAttr(HSTMT StatementHandle,
304 SQLINTEGER Attribute, PTR Value,
305 SQLINTEGER StringLength);
306 RETCODE SQL_API PGAPI_BulkOperations(HSTMT StatementHandle,
307 SQLSMALLINT operation);
308 RETCODE SQL_API PGAPI_AllocDesc(HDBC ConnectionHandle,
309 SQLHDESC *DescriptorHandle);
310 RETCODE SQL_API PGAPI_FreeDesc(SQLHDESC DescriptorHandle);
311 RETCODE SQL_API PGAPI_CopyDesc(SQLHDESC SourceDescHandle,
312 SQLHDESC TargetDescHandle);
313 RETCODE SQL_API PGAPI_SetDescField(SQLHDESC DescriptorHandle,
314 SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
315 PTR Value, SQLINTEGER BufferLength);
316 RETCODE SQL_API PGAPI_GetDescField(SQLHDESC DescriptorHandle,
317 SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
318 PTR Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength);
319 RETCODE SQL_API PGAPI_DescError(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber,
320 SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
321 SQLCHAR *MessageText, SQLSMALLINT BufferLength,
322 SQLSMALLINT *TextLength, UWORD flag);
324 #ifdef __cplusplus
326 #endif /* __cplusplus */
327 #endif /* define_PG_API_FUNC_H__ */