1 | UNIT SQLAPREP;
|
---|
2 |
|
---|
3 | {***************************************************************************
|
---|
4 | *
|
---|
5 | Module Name = SQLAPREP.H *
|
---|
6 | *
|
---|
7 | Descriptive Name = External Include file for Precompiler Services *
|
---|
8 | *
|
---|
9 | Copyright = 5622-044 (C) Copyright IBM Corp. 1988, 1993 *
|
---|
10 | Licensed Material - Program Property of IBM *
|
---|
11 | Refer to Copyright Instructions Form Number G120-3083 *
|
---|
12 | *
|
---|
13 | Function = Include File defining *
|
---|
14 | Global equates and structures *
|
---|
15 | Precompiler and Runtime Command Interfaces *
|
---|
16 | *
|
---|
17 | ****************************************************************************}
|
---|
18 |
|
---|
19 | INTERFACE
|
---|
20 |
|
---|
21 | USES sql,sqlcodes,Os2Def;
|
---|
22 |
|
---|
23 |
|
---|
24 | TYPE
|
---|
25 | /* SQLDA: SQL Descriptor Area - Variable descriptor */
|
---|
26 | PSQLDA=^TSQLDA;
|
---|
27 | TSQLDA=RECORD
|
---|
28 | sqldaid:CSTRING[7]; /* Eye catcher = 'SQLDA ' */
|
---|
29 | sqldabc:LONG; /* SQLDA size in bytes=16+44*SQLN */
|
---|
30 | sqln:SHORT; /* Number of SQLVAR elements */
|
---|
31 | sqld:SHORT; /* # of used SQLVAR elements */
|
---|
32 | sqlvar:RECORD /* Variable Description */
|
---|
33 | sqltype:SHORT; /* Variable data type */
|
---|
34 | sqllen:SHORT; /* Variable data length */
|
---|
35 | sqldata:POINTER; /* Pointer to variable data value*/
|
---|
36 | sqlind:POINTER; /* Pointer to Null indicator */
|
---|
37 | sqlname:RECORD /* Variable Name */
|
---|
38 | alength:SHORT; /* Name length [1..30] */
|
---|
39 | data:CSTRING[29]; /* Variable or Column name */
|
---|
40 | END;
|
---|
41 | END;
|
---|
42 | END;
|
---|
43 |
|
---|
44 | /* macro for allocating SQLDA */
|
---|
45 | { SQLDASIZE(n) (sizeof(struct sqlda) + (n-1)*sizeof(struct sqlvar))}
|
---|
46 |
|
---|
47 |
|
---|
48 | /*
|
---|
49 | ** Macro used to calculate size of a precompiler option array, an input
|
---|
50 | ** parameter of SQLAINIT.
|
---|
51 | */
|
---|
52 |
|
---|
53 | { SQLA_NUM_OPTIONS(n) (sizeof(struct sqla_options_header) + \
|
---|
54 | (n)*sizeof(struct sqla_option) )}
|
---|
55 |
|
---|
56 | CONST
|
---|
57 | /*
|
---|
58 | ** Values used for option[n].type, an input parameter of SQLAINIT.
|
---|
59 | */
|
---|
60 |
|
---|
61 | SQLA_FORMAT = SQL_FRMT_OPT ;/* Option: date/time format */
|
---|
62 | SQLA_ACCESS_PLAN = 2 ;/* Option: access plan creation */
|
---|
63 | SQLA_BIND_FILE = 3 ;/* Option: bind file creation */
|
---|
64 | SQLA_ISOLATION = SQL_ISO_OPT ;/* Option: isolation level */
|
---|
65 | SQLA_BLOCK = SQL_BLOCK_OPT;/* Option: record blocking */
|
---|
66 | SQLA_STDS_LEVEL = 7 ;/* Option: standards compliance */
|
---|
67 |
|
---|
68 | /*
|
---|
69 | ** Values used for option[n].val when option[n].type is SQLA_FORMAT in
|
---|
70 | ** the Precompiler Option Array.
|
---|
71 | */
|
---|
72 |
|
---|
73 | SQLA_POA_DEF = 0;/* Default date/time format */
|
---|
74 | SQLA_POA_USA = 1;/* USA date/time format */
|
---|
75 | SQLA_POA_EUR = 2;/* European date/time format */
|
---|
76 | SQLA_POA_ISO = 3;/* International date/time format */
|
---|
77 | SQLA_POA_JIS = 4;/* Japanese date/time format */
|
---|
78 | SQLA_POA_LOC = 5;/* Local date/time format */
|
---|
79 |
|
---|
80 | /*
|
---|
81 | ** Values used for option[n].val when option[n].type is SQLA_ACCESS_PLAN in
|
---|
82 | ** the Precompiler Option Array.
|
---|
83 | */
|
---|
84 |
|
---|
85 | SQLA_CREATE_PLAN = 1;/* Create an access plan */
|
---|
86 | SQLA_NO_PLAN = 0;/* Do not create an access plan */
|
---|
87 |
|
---|
88 | /*
|
---|
89 | ** Values used for option[n].val when option[n].type is SQLA_BIND_FILE in
|
---|
90 | ** the Precompiler Option Array.
|
---|
91 | */
|
---|
92 |
|
---|
93 | SQLA_CREATE_BIND_FILE=1;/* Create a bind file */
|
---|
94 | SQLA_NO_BIND_FILE =0;/* Do not create a bind file */
|
---|
95 |
|
---|
96 | /*
|
---|
97 | ** Values used for option[n].val when option[n].type is SQLA_ISOLATION in
|
---|
98 | ** the Precompiler Option Array.
|
---|
99 | */
|
---|
100 |
|
---|
101 | SQLA_REPEATABLE_READ =SQL_REP_READ ;/* RR isolation level */
|
---|
102 | SQLA_CURSOR_STABILITY=SQL_CURSOR_STAB;/* CS Isolation level */
|
---|
103 | SQLA_UNCOMMITTED_READ=SQL_UNCOM_READ ;/* UR Isolation level */
|
---|
104 |
|
---|
105 | /*
|
---|
106 | ** Values used for option[n].val when option[n].type is SQLA_BLOCK in
|
---|
107 | ** the Precompiler Option Array.
|
---|
108 | */
|
---|
109 |
|
---|
110 | SQLA_BLOCK_UNAMBIG = SQL_BL_UNAMBIG;
|
---|
111 | SQLA_BLOCK_ALL = SQL_BL_ALL;
|
---|
112 | SQLA_NO_BLOCK = SQL_NO_BL;
|
---|
113 |
|
---|
114 | /*
|
---|
115 | ** Values used for option[n].val when option[n].type is SQLA_STDS_LEVEL in
|
---|
116 | ** the Precompiler Option Array.
|
---|
117 | */
|
---|
118 |
|
---|
119 | SQLA_STND_NONE = 0;/* No compliance required */
|
---|
120 | SQLA_STND_MIA = 1;/* Comply with MIA standard */
|
---|
121 |
|
---|
122 | /*
|
---|
123 | ** Values used for location, an input parameter of SQLAAHVR.
|
---|
124 | */
|
---|
125 |
|
---|
126 | SQLA_DECLARE_SECT = 0;/* Add host var found in a declare section */
|
---|
127 | SQLA_SQL_STMT = 1;/* Add host var found in an SQL statement */
|
---|
128 |
|
---|
129 | /*
|
---|
130 | ** Values assigned to task[n].func, an output parameter of SQLACMPL.
|
---|
131 | */
|
---|
132 |
|
---|
133 | SQLA_START = 0;/* Generate a call to sqlastrt */
|
---|
134 | SQLA_DECLARE = 1;/* Begin or end parsing hvar declarations */
|
---|
135 | SQLA_INCLUDE = 2;/* Generate code for an SQLCA or SQLDA */
|
---|
136 | SQLA_ALLOC_INPUT = 3;/* Allocate an input SQLDA using SQLAALOC */
|
---|
137 | SQLA_ALLOC_OUTPUT = 4;/* Allocate an output SQLDA using SQLAALOC */
|
---|
138 | SQLA_SETS = 5;/* Register a host variable using SQLASETS */
|
---|
139 | SQLA_USDA_INPUT = 6;/* Register an input user-defined SQLDA */
|
---|
140 | SQLA_USDA_OUTPUT = 7;/* Register an output user-defined SQLDA */
|
---|
141 | SQLA_CALL = 8;/* Generate a call to SQLACALL */
|
---|
142 | SQLA_DEALLOC = 9;/* Generate a call to SQLADLOC */
|
---|
143 | SQLA_STOP =10;/* Generate a call to SQLASTOP */
|
---|
144 | SQLA_SQLERROR =11;/* Generate code for WHENEVER SQLERROR */
|
---|
145 | SQLA_SQLWARNING =12;/* Generate code for WHENEVER SQLWARNING */
|
---|
146 | SQLA_NOT_FOUND =13;/* Generate code for WHENEVER NOT_FOUND */
|
---|
147 | SQLA_CONNECT_EXCL =14;/* Generate code for an SQL */
|
---|
148 | /* 'CONNECT TO x IN EXCLUSIVE MODE' */
|
---|
149 | /* statement */
|
---|
150 | SQLA_CONNECT_RESET =15;/* Generate code for an SQL */
|
---|
151 | /* 'CONNECT RESET' statement */
|
---|
152 | SQLA_CONNECT_SHARE =16;/* Generate code for an SQL */
|
---|
153 | /* 'CONNECT TO x [IN SHARE MODE]' */
|
---|
154 | /* statement */
|
---|
155 | SQLA_INC_TEXTFILE =17;/* Process an INCLUDE text-file stmt */
|
---|
156 |
|
---|
157 | /*
|
---|
158 | ** Values returned in task[n].val when task[n].func is SQLA_DECLARE.
|
---|
159 | ** This is an output parameter of SQLACMPL.
|
---|
160 | */
|
---|
161 |
|
---|
162 | SQLA_BEGIN = 0;
|
---|
163 | SQLA_END = 1;
|
---|
164 |
|
---|
165 | /*
|
---|
166 | ** Values returned in task[n].val when task[n].func is SQLA_INCLUDE.
|
---|
167 | ** This is an output parameter of SQLACMPL.
|
---|
168 | */
|
---|
169 |
|
---|
170 | SQLA_SQLCA =10;
|
---|
171 | SQLA_SQLDA =11;
|
---|
172 |
|
---|
173 | /*
|
---|
174 | ** Values returned in task[n].val when task[n].func is SQLA_CALL.
|
---|
175 | ** This is an output parameter of SQLACMPL.
|
---|
176 | */
|
---|
177 |
|
---|
178 | SQLA_CLOSE =20;
|
---|
179 | SQLA_COMMIT =21;
|
---|
180 | SQLA_DESCRIBE =22;
|
---|
181 | SQLA_EXECIMMD =23;
|
---|
182 | SQLA_EXECUTE =24;
|
---|
183 | SQLA_FETCH =25;
|
---|
184 | SQLA_OPEN =26;
|
---|
185 | SQLA_PREPARE =27;
|
---|
186 | SQLA_ROLLBACK =28;
|
---|
187 | SQLA_CONNECT =29;
|
---|
188 |
|
---|
189 | /*
|
---|
190 | ** Values assigned to token[n].use, an output parameter of SQLACMPL.
|
---|
191 | */
|
---|
192 |
|
---|
193 | SQLA_INPUT_HVAR =0;/* Input host var, no indicator var */
|
---|
194 | SQLA_INPUT_WITH_IND =1;/* Input host var followed by indicator var */
|
---|
195 | SQLA_OUTPUT_HVAR =2;/* Output host var, no indicator var */
|
---|
196 | SQLA_OUTPUT_WITH_IND=3;/* Output host var followed by indicator var*/
|
---|
197 | SQLA_INDICATOR =4;/* Indicator variable */
|
---|
198 | SQLA_USER_SQLDA =5;/* SQLDA structure */
|
---|
199 | SQLA_INVALID_USE =6;/* Host variable type does not match use */
|
---|
200 | SQLA_INVALID_ID =7;/* Host variable token ID is not valid */
|
---|
201 |
|
---|
202 | /*
|
---|
203 | ** Values assigned to stmt_type, an output parameter of SQLACMPL.
|
---|
204 | */
|
---|
205 |
|
---|
206 | SQLA_TYPE_BEGIN = 0;
|
---|
207 | SQLA_TYPE_CLOSE =10;
|
---|
208 | SQLA_TYPE_COMMIT =20;
|
---|
209 | SQLA_TYPE_CONNECT_NOP =23;
|
---|
210 | SQLA_TYPE_CONNECT_EXCLUSIVE=24;
|
---|
211 | SQLA_TYPE_CONNECT_RESET =25;
|
---|
212 | SQLA_TYPE_CONNECT_SHARE =26;
|
---|
213 | SQLA_TYPE_DECLARE_SELECT =30;
|
---|
214 | SQLA_TYPE_DECLARE_SNAME =40;
|
---|
215 | SQLA_TYPE_DESCRIBE =50;
|
---|
216 | SQLA_TYPE_END =60;
|
---|
217 | SQLA_TYPE_EXECUTE =70;
|
---|
218 | SQLA_TYPE_EXECUTE_IMM =80;
|
---|
219 | SQLA_TYPE_FETCH =90;
|
---|
220 | SQLA_TYPE_INCLUDE_SQLCA =100;
|
---|
221 | SQLA_TYPE_INCLUDE_SQLDA =110;
|
---|
222 | SQLA_TYPE_INCLUDE_TEXTFILE=115;
|
---|
223 | SQLA_TYPE_OPEN =120;
|
---|
224 | SQLA_TYPE_PREPARE =130;
|
---|
225 | SQLA_TYPE_ROLLBACK =140;
|
---|
226 | SQLA_TYPE_SELECT =150;
|
---|
227 | SQLA_TYPE_SELECT_INTO =160;
|
---|
228 | SQLA_TYPE_WHEN_NOT_FOUND =170;
|
---|
229 | SQLA_TYPE_WHEN_SQLERROR =180;
|
---|
230 | SQLA_TYPE_WHEN_SQLWARNING =190;
|
---|
231 | SQLA_TYPE_OTHER =200;
|
---|
232 |
|
---|
233 | /*
|
---|
234 | ** Values used for term_option, an input parameter of SQLAFINI.
|
---|
235 | */
|
---|
236 |
|
---|
237 | SQLA_SAVE = 1;/* Save the access plan and/or bind file */
|
---|
238 | SQLA_DISCARD = 0;/* Discard the access plan and/or bind file */
|
---|
239 |
|
---|
240 | /*
|
---|
241 | ** Miscellaneous Constants
|
---|
242 | */
|
---|
243 |
|
---|
244 | SQL_MAX_FILE_NAME_LENGTH = 128;/* size of SQLAINIT file name buffer */
|
---|
245 | SQL_CMPL_BUFSIZ = 128;/* size of SQLACMPL output buffers */
|
---|
246 | SQL_PID_LENGTH = 40;/* length of precompiler pid */
|
---|
247 |
|
---|
248 | /*
|
---|
249 | ** Return codes from Precompiler Services and Runtime Services functions.
|
---|
250 | */
|
---|
251 |
|
---|
252 | SQLA_SQLCA_BAD = -1;/* sqlca pointer/length invalid */
|
---|
253 | SQLA_CHECK_SQLCA = 0;/* check sqlca completion status */
|
---|
254 |
|
---|
255 | /*
|
---|
256 | ** Values returned in sqlca.sqlcode by Precompiler or Runtime Services
|
---|
257 | */
|
---|
258 |
|
---|
259 | SQLA_RC_CHAR_BAD = SQL_RC_E007;
|
---|
260 | SQLA_RC_STRING_NOT_TERMINATED = SQL_RC_E010;
|
---|
261 | SQLA_RC_EMPTY_DEL_IDENT = SQL_RC_E013;
|
---|
262 | SQLA_RC_BFILE_OPEN_ERROR =-31;
|
---|
263 | SQLA_RC_BFILE_DISK_ERROR =-32;
|
---|
264 | SQLA_RC_SECTION_LIMIT =-51;
|
---|
265 | SQLA_RC_MEMORY_BAD =-83;
|
---|
266 | SQLA_RC_SNAME_DUP =-85;
|
---|
267 | SQLA_RC_STMT_LIMIT = SQL_RC_E101;
|
---|
268 | SQLA_RC_NUMBER_BAD = SQL_RC_E103;
|
---|
269 | SQLA_RC_STMT_SYNTAX_BAD = SQL_RC_E104;
|
---|
270 | SQLA_RC_GSTRING_BAD = SQL_RC_E105; /* DBCS only */
|
---|
271 | SQLA_RC_IDENTIFIER_LIMIT = SQL_RC_E107;
|
---|
272 | SQLA_RC_QUALIFIER_BAD = SQL_RC_E108;
|
---|
273 | SQLA_RC_DDSBAD = SQL_RC_E142;
|
---|
274 | SQLA_RC_DDSIGN = SQL_RC_W143;
|
---|
275 | SQLA_RC_DDSWRN = SQL_RC_W143;
|
---|
276 | SQLA_RC_KEYWORD_BAD = SQL_RC_E199;
|
---|
277 | SQLA_RC_HVAR_NOT_DEC =-306;
|
---|
278 | SQLA_RC_HVAR_DUP_NAME =-307;
|
---|
279 | SQLA_RC_HVAR_LIMIT =-308;
|
---|
280 | SQLA_RC_STMT_HVAR_LIMIT =-310;
|
---|
281 | SQLA_RC_HVAR_USE_BAD =-324;
|
---|
282 | SQLA_RC_CURSOR_DUP =-505;
|
---|
283 | SQLA_RC_STMT_MODIFY_ALL = 513;
|
---|
284 | SQLA_RC_DISK_FULL = SQL_RC_E968;
|
---|
285 | SQLA_RC_FATAL_ERROR =-4901;
|
---|
286 | SQLA_RC_PARM_CHARS_BAD =-4902;
|
---|
287 | SQLA_RC_PARM_LENGTH_BAD = SQLA_RC_OPTION_LEN_BAD;
|
---|
288 | SQLA_RC_PARM_POINTER_BAD = SQLA_RC_OPTION_PTR_BAD;
|
---|
289 | SQLA_RC_PARM_RANGE_BAD = SQLA_RC_OPTION_SIZE_BAD;
|
---|
290 | SQLA_RC_HVAR_SQLTYPE_BAD =-4911;
|
---|
291 | SQLA_RC_HVAR_SQLLEN_BAD =-4912;
|
---|
292 | SQLA_RC_HVAR_TOKEN_ID_DUP =-4913;
|
---|
293 | SQLA_RC_HVAR_TOKEN_ID_BAD =-4914;
|
---|
294 | SQLA_RC_INIT_DUP =-4915;
|
---|
295 | SQLA_RC_INIT_REQUIRED =-4916;
|
---|
296 | SQLA_RC_OPTION_BAD = SQLA_RC_OPTION_DATA_BAD;
|
---|
297 | SQLA_RC_TERM_OPTION_BAD =-4918;
|
---|
298 | SQLA_RC_TASK_ARRAY_LIMIT =-4919;
|
---|
299 | SQLA_RC_STMT_CLAUSE_BAD =-4940;/* Prep version of -109 */
|
---|
300 | SQLA_RC_STMT_BLANK =-4941;/* Prep version of -198 */
|
---|
301 | SQLA_RC_SELECT_HVAR_TYPE_BAD=-4942;/* Prep version of -303 */
|
---|
302 | SQLA_RC_SELECT_LIST_BAD = 4943;/* Prep version of -313 */
|
---|
303 | SQLA_RC_COLUMN_NOT_NULLABLE =-4944;/* Prep version of -407 */
|
---|
304 | SQLA_RC_STMT_MARKER_BAD =-4945;/* Prep version of -418 */
|
---|
305 | SQLA_RC_CURSOR_NOT_DECLARED =-4946;/* Prep version of -504 */
|
---|
306 | SQLA_RC_SQLDA_ID_BAD =-4951;
|
---|
307 | SQLA_RC_SQLVAR_INDEX_BAD =-4952;
|
---|
308 | SQLA_RC_CALL_TYPE_BAD =-4953;
|
---|
309 | SQLA_RC_SECTION_BAD =-4954;
|
---|
310 |
|
---|
311 | /*
|
---|
312 | ** Temporary value used in sqlca.sqlcode after an SQLAALOC function. Runtime
|
---|
313 | ** code can check sqlca.sqlcode to determine whether or not the SQLASETV
|
---|
314 | ** function needs to be called to initialize the sqlda sqlvar elements.
|
---|
315 | */
|
---|
316 |
|
---|
317 | SQLA_RC_SQLVARS_SET = 4959;/* sqlvars already initialized */
|
---|
318 |
|
---|
319 | /*
|
---|
320 | ** Errors that cause Precompiler Services to enter the fatal error state.
|
---|
321 | ** After encountering one of these types of errors, Precompiler Services
|
---|
322 | ** requires an SQLAFINI and SQLAINIT call before it will continue.
|
---|
323 | */
|
---|
324 |
|
---|
325 | SQLA_RC_INV_INSERT = SQL_RC_E803 ;
|
---|
326 | SQLA_RC_INV_SQLDA_ADR = SQL_RC_E822 ;
|
---|
327 | SQLA_RC_SYS_ERROR = SQL_RC_E902 ;
|
---|
328 | SQLA_RC_DEADLOCK_ERR = SQL_RC_E911 ;
|
---|
329 | SQLA_RC_FAT_SYS_ERR = SQL_RC_E912 ;
|
---|
330 | SQLA_RC_TOO_MANY_LKS = SQL_RC_E930 ;
|
---|
331 | SQLA_RC_STORAGE_ERR = SQL_RC_E954 ;
|
---|
332 | SQLA_RC_DB_HEAP_ERR = SQL_RC_E956 ;
|
---|
333 | SQLA_RC_TOOMANY_OFLS = SQL_RC_E958 ;
|
---|
334 | SQLA_RC_TOOMANY_FILES = SQL_RC_E960 ;
|
---|
335 | SQLA_RC_LOG_FULL = SQL_RC_E964 ;
|
---|
336 | SQLA_RC_FILE_SYS_FULL = SQL_RC_E968 ;
|
---|
337 | SQLA_RC_READ_ONLY_FIL = SQL_RC_E970 ;
|
---|
338 | SQLA_RC_INCORRECT_DSK = SQL_RC_E972 ;
|
---|
339 | SQLA_RC_DB_DRV_LOCKED = SQL_RC_E974 ;
|
---|
340 | SQLA_RC_DRV_DOOR_OPEN = SQL_RC_E976 ;
|
---|
341 | SQLA_RC_DISK_WRT_PRO = SQL_RC_E978 ;
|
---|
342 | SQLA_RC_DISK_ERROR = SQL_RC_E980 ;
|
---|
343 | SQLA_RC_DISK_ERR = SQL_RC_E982 ;
|
---|
344 | SQLA_RC_COMM_RB_ERR = SQL_RC_E984 ;
|
---|
345 | SQLA_RC_CAT_FILE_ERR = SQL_RC_E985 ;
|
---|
346 | SQLA_RC_TAB_FILE_ERR = SQL_RC_E986 ;
|
---|
347 | SQLA_RC_INDEX_ERR = SQL_RC_E990 ;
|
---|
348 | SQLA_RC_REL_NUM_BAD = SQL_RC_E992 ;
|
---|
349 | SQLA_RC_CTRL_BREAK = -4994;/* Prep version of -952 */
|
---|
350 | SQLA_RC_CODEPAGE_BAD = -4995;/* Country info not found */
|
---|
351 | SQLA_RC_SQLUSER_BAD = -4997;/* Prep version of -1046 */
|
---|
352 | SQLA_RC_DB_DISCONNECTED = -4998;/* Prep version of -900 */
|
---|
353 | SQLA_RC_INTERNAL_ERR = -4999;/* Precompiler Services err */
|
---|
354 |
|
---|
355 | /*********************** Precompiler Services Structures *******************/
|
---|
356 | TYPE
|
---|
357 | /*
|
---|
358 | ** Precompiler Option Array. Used with SQLAINIT.
|
---|
359 | */
|
---|
360 | PSQLA_OPTIONS=^TSQLA_OPTIONS;
|
---|
361 | TSQLA_OPTIONS=RECORD
|
---|
362 | header:RECORD
|
---|
363 | allocated:ULONG;
|
---|
364 | used:ULONG;
|
---|
365 | END;
|
---|
366 | option:RECORD
|
---|
367 | atype:ULONG;
|
---|
368 | aval:ULONG;
|
---|
369 | END;
|
---|
370 | END;
|
---|
371 |
|
---|
372 | TYPE
|
---|
373 | /*
|
---|
374 | ** Program ID. Used by Precompiler Services and Runtime Services
|
---|
375 | */
|
---|
376 | PSQLA_PROGRAM_ID=^TSQLA_PROGRAM_ID;
|
---|
377 | TSQLA_PROGRAM_ID=RECORD
|
---|
378 | alength:WORD;
|
---|
379 | rp_rel_num:WORD;
|
---|
380 | db_rel_num:WORD;
|
---|
381 | bf_rel_num:WORD;
|
---|
382 | sqluser:CSTRING[7];
|
---|
383 | planname:CSTRING[7];
|
---|
384 | contoken:CSTRING[7];
|
---|
385 | buffer:CSTRING[7];
|
---|
386 | END;
|
---|
387 |
|
---|
388 | TYPE
|
---|
389 | /*
|
---|
390 | ** Precompiler Task Array. Used with SQLACMPL.
|
---|
391 | */
|
---|
392 | PSQLA_TASKS=^TSQLA_TASKS;
|
---|
393 | TSQLA_TASKS=RECORD
|
---|
394 | header:RECORD
|
---|
395 | allocated:ULONG;
|
---|
396 | used:ULONG;
|
---|
397 | END;
|
---|
398 | task:RECORD
|
---|
399 | func:ULONG;
|
---|
400 | aval:ULONG;
|
---|
401 | END;
|
---|
402 | END;
|
---|
403 |
|
---|
404 | TYPE
|
---|
405 | /*
|
---|
406 | ** Token return structure. Used to return length and offset of
|
---|
407 | ** a token within an SQL statement. Overlaid on top of the val
|
---|
408 | ** member of the task array.
|
---|
409 | */
|
---|
410 | PSQLA_RETURN_TOKEN=^TSQLA_RETURN_TOKEN;
|
---|
411 | TSQLA_RETURN_TOKEN=RECORD
|
---|
412 | offset:WORD;
|
---|
413 | alength:WORD;
|
---|
414 | END;
|
---|
415 |
|
---|
416 | TYPE
|
---|
417 | /*
|
---|
418 | ** Precompiler Token ID Array. Used with SQLACMPL
|
---|
419 | */
|
---|
420 | PSQLA_TOKENS=^TSQLA_TOKENS;
|
---|
421 | TSQLA_TOKENS=RECORD
|
---|
422 | header:RECORD
|
---|
423 | allocated:ULONG;
|
---|
424 | used:ULONG;
|
---|
425 | END;
|
---|
426 | token:RECORD
|
---|
427 | id:ULONG;
|
---|
428 | use:ULONG;
|
---|
429 | END;
|
---|
430 | END;
|
---|
431 |
|
---|
432 |
|
---|
433 | IMPORTS
|
---|
434 | /* ADD A HOST VARIABLE DECLARATION */
|
---|
435 | FUNCTION sqlaahvr (VAR hostnamelen:WORD; /* host variable name length */
|
---|
436 | hostname:CSTRING; /* host variable name */
|
---|
437 | VAR HostData:WORD; /* host variable SQL data type */
|
---|
438 | VAR VarLen:WORD; /* host variable length */
|
---|
439 | TokenID:POINTER; /* host variable token id */
|
---|
440 | VAR HostLoc:WORD; /* host variable location */
|
---|
441 | reserved:POINTER; /* reserved */
|
---|
442 | asqlca : TSQLCA):INTEGER; /* SQLCA */
|
---|
443 | APIENTRY; 'SQLAI32' name 'sqlaahvr';
|
---|
444 |
|
---|
445 | /* COMPILE AN SQL STATEMENT */
|
---|
446 | FUNCTION sqlacmpl (VAR len:WORD; /* SQL statement text length */
|
---|
447 | statement:CSTRING; /* SQL statement text */
|
---|
448 | VAR linenum:WORD; /* source line number */
|
---|
449 | VAR asqla_tasks:TSQLA_TASKS; /* task array */
|
---|
450 | VAR asqla_tokens:TSQLA_TOKENS; /* token id array */
|
---|
451 | VAR sectionnum:WORD; /* section number */
|
---|
452 | VAR sqlstattype:WORD; /* type of SQL statement */
|
---|
453 | buffer1:CSTRING; /* 128 byte string buffer 1 */
|
---|
454 | buffer2:CSTRING; /* 128 byte string buffer 2 */
|
---|
455 | buffer3:CSTRING; /* 128 byte string buffer 3 */
|
---|
456 | reserved:POINTER; /* reserved */
|
---|
457 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
458 | APIENTRY; 'SQLAI32' name 'sqlacmpl';
|
---|
459 |
|
---|
460 | /* TERMINATE AN ACCESS PLAN */
|
---|
461 | FUNCTION sqlafini (VAR bindfile:WORD; /* save/discard plan/bind file */
|
---|
462 | reserved:POINTER; /* reserved */
|
---|
463 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
464 | APIENTRY; 'SQLAI32' name 'sqlafini';
|
---|
465 |
|
---|
466 | /* INITIALIZE AN ACCESS PLAN */
|
---|
467 | FUNCTION sqlainit (VAR prognamelen:WORD; /* program name length */
|
---|
468 | ProgName:CSTRING; /* program name */
|
---|
469 | VAR DatabaseNameLen:WORD; /* database name length */
|
---|
470 | DataBase:CSTRING; /* database name */
|
---|
471 | VAR passwdlen:WORD; /* password length */
|
---|
472 | passwd:CSTRING; /* database password */
|
---|
473 | VAR bindfilenamelen:WORD; /* bind file name length */
|
---|
474 | bindfile:CSTRING; /* bind file name */
|
---|
475 | VAR asqla_options:TSQLA_OPTIONS; /* precompiler option array */
|
---|
476 | VAR asqla_program_id:TSQLA_PROGRAM_ID; /* precompiler program ID */
|
---|
477 | reserved:POINTER; /* reserved */
|
---|
478 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
479 | APIENTRY; 'SQLAI32' name 'sqlainit';
|
---|
480 |
|
---|
481 | /* ADD A HOST VARIABLE DECLARATION */
|
---|
482 | FUNCTION SQLGAHVR (VAR hostnamelen:WORD; /* host variable name length */
|
---|
483 | hostname:CSTRING; /* host variable name */
|
---|
484 | VAR sqldatatype:WORD; /* host variable SQL data type */
|
---|
485 | VAR hostvarlen:WORD; /* host variable length */
|
---|
486 | tokenid:POINTER; /* host variable token id */
|
---|
487 | VAR loc:WORD; /* host variable location */
|
---|
488 | reserved:POINTER; /* reserved */
|
---|
489 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
490 | APIENTRY; 'SQLAPI32' name 'SQLGAHVR';
|
---|
491 |
|
---|
492 | /* COMPILE AN SQL STATEMENT */
|
---|
493 | FUNCTION SQLGCMPL (VAR textlen:WORD; /* SQL statement text length */
|
---|
494 | statement:CSTRING; /* SQL statement text */
|
---|
495 | VAR linenum:WORD; /* source line number */
|
---|
496 | VAR asqla_tasks:TSQLA_TASKS; /* task array */
|
---|
497 | VAR asqla_tokens:TSQLA_TOKENS; /* token id array */
|
---|
498 | VAR section:WORD; /* section number */
|
---|
499 | VAR sqltype:WORD; /* type of SQL statement */
|
---|
500 | buffer1:CSTRING; /* 128 byte string buffer 1 */
|
---|
501 | buffer2:CSTRING; /* 128 byte string buffer 2 */
|
---|
502 | buffer3:CSTRING; /* 128 byte string buffer 3 */
|
---|
503 | reserved:POINTER; /* reserved */
|
---|
504 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
505 | APIENTRY; 'SQLAPI32' name 'SQLGCMPL';
|
---|
506 |
|
---|
507 | /* TERMINATE AN ACCESS PLAN */
|
---|
508 | FUNCTION SQLGFINI (VAR bindfile:WORD; /* save/discard plan/bind file */
|
---|
509 | reserved:POINTER; /* reserved */
|
---|
510 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
511 | APIENTRY; 'SQLAPI32' name 'SQLGFINI';
|
---|
512 |
|
---|
513 | /* INITIALIZE AN ACCESS PLAN */
|
---|
514 | FUNCTION SQLGINIT (VAR ProgNameLen:WORD; /* program name length */
|
---|
515 | ProgName:CSTRING; /* program name */
|
---|
516 | VAR databasenamelen:WORD; /* database name length */
|
---|
517 | database:CSTRING; /* database name */
|
---|
518 | VAR passwdlen:WORD; /* password length */
|
---|
519 | passwd:CSTRING; /* database password */
|
---|
520 | VAR bindfilelen:WORD; /* bind file name length */
|
---|
521 | bindfile:CSTRING; /* bind file name */
|
---|
522 | VAR asqla_options:TSQLA_OPTIONS; /* precompiler option array */
|
---|
523 | VAR asqla_program_id:TSQLA_PROGRAM_ID; /* precompiler program ID */
|
---|
524 | reserved:POINTER; /* reserved */
|
---|
525 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
526 | APIENTRY; 'SQLAPI32' name 'SQLGINIT';
|
---|
527 |
|
---|
528 | /* Begin Runtime Services prototypes : **************************************/
|
---|
529 |
|
---|
530 | FUNCTION sqlaaloc (id:LONGWORD; /* sqlda identification number */
|
---|
531 | elems:LONGWORD; /* number of sqlvar elements needed */
|
---|
532 | statementid:LONGWORD; /* statement identification number */
|
---|
533 | reserved:POINTER):INTEGER; /* reserved */
|
---|
534 | APIENTRY; 'SQLAK32' name 'sqlaaloc';
|
---|
535 |
|
---|
536 | FUNCTION sqlacall (typ:LONGWORD; /* function call type */
|
---|
537 | aplan:LONGWORD; /* access plan section */
|
---|
538 | id:LONGWORD; /* input SQLDA ID */
|
---|
539 | outputid:LONGWORD;/* output SQLDA ID */
|
---|
540 | reserved:POINTER):INTEGER; /* reserved */
|
---|
541 | APIENTRY; 'SQLAK32' name 'sqlacall';
|
---|
542 |
|
---|
543 | FUNCTION sqladloc (id:LONGWORD; /* SQLDA ID */
|
---|
544 | reserved:POINTER):INTEGER; /* reserved */
|
---|
545 | APIENTRY; 'SQLAK32' name 'sqladloc';
|
---|
546 |
|
---|
547 | FUNCTION sqlasets (textlen:LONGWORD; /* SQL statement text length */
|
---|
548 | statement:POINTER; /* SQL statement text */
|
---|
549 | reserved:POINTER):INTEGER; /* reserved */
|
---|
550 | APIENTRY; 'SQLAK32' name 'sqlasets';
|
---|
551 |
|
---|
552 | FUNCTION sqlasetv (id:LONGWORD; /* SQLDA ID */
|
---|
553 | elem:LONGWORD; /* sqlvar element */
|
---|
554 | datatype:LONGWORD;/* SQL data type */
|
---|
555 | len:LONGWORD; /* declared length */
|
---|
556 | hostvaradr:POINTER; /* address of host var */
|
---|
557 | indicatoradr:POINTER; /* address of indicator var */
|
---|
558 | reserved:POINTER):INTEGER; /* reserved */
|
---|
559 | APIENTRY; 'SQLAK32' name 'sqlasetv';
|
---|
560 |
|
---|
561 | FUNCTION sqlastop (reserved:POINTER):INTEGER; /* reserved */
|
---|
562 | APIENTRY; 'SQLAK32' name 'sqlastop';
|
---|
563 |
|
---|
564 | FUNCTION sqlastrt (ProgId:POINTER; /* runtime program ID */
|
---|
565 | reserved:POINTER; /* reserved */
|
---|
566 | VAR asqlca:TSQLCA):INTEGER; /* SQLCA */
|
---|
567 | APIENTRY; 'SQLAK32' name 'sqlastrt';
|
---|
568 |
|
---|
569 | FUNCTION sqlausda (id:LONGWORD; /* SQLDA id */
|
---|
570 | VAR asqlda:TSQLDA; /* SQLDA pointer */
|
---|
571 | reserved:POINTER):INTEGER; /* Reserved */
|
---|
572 | APIENTRY; 'SQLAK32' name 'sqlausda';
|
---|
573 |
|
---|
574 | END;
|
---|
575 |
|
---|
576 | IMPLEMENTATION
|
---|
577 |
|
---|
578 | END.
|
---|