ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/runtime/IBHeader.pas
Revision: 7
Committed: Sun Aug 5 18:28:19 2012 UTC (11 years, 8 months ago) by tony
Content type: text/x-pascal
File size: 141073 byte(s)
Log Message:
Committing updates for Release R1-0-0

File Contents

# User Rev Content
1 tony 1 {************************************************************************}
2     { }
3     { Borland Delphi Visual Component Library }
4     { InterBase Express core components }
5     { }
6     { Copyright (c) 1998-2000 Inprise Corporation }
7     { }
8     { InterBase Express is based in part on the product }
9     { Free IB Components, written by Gregory H. Deatz for }
10     { Hoagland, Longo, Moran, Dunst & Doukas Company. }
11     { Free IB Components is used under license. }
12     { }
13     { The contents of this file are subject to the InterBase }
14     { Public License Version 1.0 (the "License"); you may not }
15     { use this file except in compliance with the License. You }
16     { may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17     { Software distributed under the License is distributed on }
18     { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
19     { express or implied. See the License for the specific language }
20     { governing rights and limitations under the License. }
21     { The Original Code was created by InterBase Software Corporation }
22     { and its successors. }
23     { Portions created by Inprise Corporation are Copyright (C) Inprise }
24     { Corporation. All Rights Reserved. }
25     { Contributor(s): Jeff Overcash }
26     { }
27 tony 7 { IBX For Lazarus (Firebird Express) }
28     { Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
29     { Portions created by MWA Software are copyright McCallum Whyman }
30     { Associates Ltd 2011 }
31     { }
32 tony 1 {************************************************************************}
33    
34     unit IBHeader;
35    
36 tony 5 {$Mode Delphi}
37    
38 tony 1 interface
39    
40     uses
41     IBExternals;
42    
43    
44     const
45     ISC_TRUE = 1;
46     ISC_FALSE = 0;
47     DSQL_close = 1;
48     DSQL_drop = 2;
49 tony 7 {$IFDEF LINUX}
50     FIREBIRD_SO2 = 'libfbclient.so.2';
51     {$ENDIF}
52     {$IFDEF DARWIN}
53     FIREBIRD_SO2 = 'libfbclient.dylib';
54     {$ENDIF}
55     {$IFDEF WINDOWS}
56 tony 5 IBASE_DLL = 'gds32.dll';
57     FIREBIRD_CLIENT = 'fbclient.dll'; {do not localize}
58 tony 7 FIREBIRD_EMBEDDED = 'fbembed.dll';
59     {$ENDIF}
60 tony 1
61     const
62     SQLDA_VERSION1 = 1; (* pre V6.0 SQLDA *)
63     SQLDA_VERSION2 = 2; (* V6.0 SQLDA *)
64     SQL_DIALECT_V5 = 1; (* meaning is same as DIALECT_xsqlda *)
65     SQL_DIALECT_V6_TRANSITION = 2; (* flagging anything that is delimited
66     by double quotes as an error and
67     flagging keyword DATE as an error *)
68     SQL_DIALECT_V6 = 3; (* supports SQL delimited identifier,
69     SQLDATE/DATE, TIME, TIMESTAMP,
70     CURRENT_DATE, CURRENT_TIME,
71     CURRENT_TIMESTAMP, and 64-bit exact
72     numeric type *)
73     SQL_DIALECT_CURRENT = SQL_DIALECT_V6; (* latest IB DIALECT *)
74    
75    
76     type
77     (**********************************)
78     (** InterBase Handle Definitions **)
79     (**********************************)
80 tony 5 TISC_ATT_HANDLE = FB_API_HANDLE;
81 tony 1 PISC_ATT_HANDLE = ^TISC_ATT_HANDLE;
82 tony 5 TISC_BLOB_HANDLE = FB_API_HANDLE;
83 tony 1 PISC_BLOB_HANDLE = ^TISC_BLOB_HANDLE;
84 tony 5 TISC_DB_HANDLE = FB_API_HANDLE;
85 tony 1 PISC_DB_HANDLE = ^TISC_DB_HANDLE;
86 tony 5 TISC_FORM_HANDLE = FB_API_HANDLE;
87 tony 1 PISC_FORM_HANDLE = ^TISC_FORM_HANDLE;
88 tony 5 TISC_REQ_HANDLE = FB_API_HANDLE;
89 tony 1 PISC_REQ_HANDLE = ^TISC_REQ_HANDLE;
90 tony 5 TISC_STMT_HANDLE = FB_API_HANDLE;
91 tony 1 PISC_STMT_HANDLE = ^TISC_STMT_HANDLE;
92 tony 5 TISC_SVC_HANDLE = FB_API_HANDLE;
93 tony 1 PISC_SVC_HANDLE = ^TISC_SVC_HANDLE;
94 tony 5 TISC_TR_HANDLE = FB_API_HANDLE;
95 tony 1 PISC_TR_HANDLE = ^TISC_TR_HANDLE;
96 tony 5 TISC_WIN_HANDLE = FB_API_HANDLE;
97 tony 1 PISC_WIN_HANDLE = ^TISC_WIN_HANDLE;
98     TISC_CALLBACK = procedure;
99     ISC_SVC_HANDLE = ISC_LONG;
100    
101     (*******************************************************************)
102     (* Time & Date Support *)
103     (*******************************************************************)
104     const
105     TIME_SECONDS_PRECISION = 10000;
106     TIME_SECONDS_PRECISION_SCALE = -4;
107    
108     type
109     ISC_DATE = Long;
110     PISC_DATE = ^ISC_DATE;
111     ISC_TIME = ULong;
112     PISC_TIME = ^ISC_TIME;
113     TISC_TIMESTAMP = record
114     timestamp_date: ISC_DATE;
115     timestamp_time: ISC_TIME;
116     end;
117     PISC_TIMESTAMP = ^TISC_TIMESTAMP;
118    
119     (*********************************************************************)
120     (** Blob id structure **)
121     (*********************************************************************)
122     TGDS_QUAD = record
123     gds_quad_high : ISC_LONG;
124     gds_quad_low : UISC_LONG;
125     end;
126     TGDS__QUAD = TGDS_QUAD;
127     TISC_QUAD = TGDS_QUAD;
128     PGDS_QUAD = ^TGDS_QUAD;
129     PGDS__QUAD = ^TGDS__QUAD;
130     PISC_QUAD = ^TISC_QUAD;
131    
132     TISC_ARRAY_BOUND = record
133     array_bound_lower : short;
134     array_bound_upper : short;
135     end;
136     PISC_ARRAY_BOUND = ^TISC_ARRAY_BOUND;
137     TISC_ARRAY_DESC = record
138     array_desc_dtype : UChar;
139     array_desc_scale : Char;
140     array_desc_length : UShort;
141     array_desc_field_name : array[0..31] of Char;
142     array_desc_relation_name : array[0..31] of Char;
143     array_desc_dimensions : Short;
144     array_desc_flags : Short;
145     array_desc_bounds : array[0..15] of TISC_ARRAY_BOUND;
146     end; // TISC_ARRAY_DESC
147     PISC_ARRAY_DESC = ^TISC_ARRAY_DESC;
148    
149     TISC_BLOB_DESC = record
150     blob_desc_subtype : Short;
151     blob_desc_charset : Short;
152     blob_desc_segment_size : Short;
153     blob_desc_field_name : array[0..31] of UChar;
154     blob_desc_relation_name : array[0..31] of UChar;
155     end; // TISC_BLOB_DESC
156     PISC_BLOB_DESC = ^TISC_BLOB_DESC;
157    
158     (*****************************)
159     (** Blob control structure **)
160     (*****************************)
161     TISC_BLOB_CTL_SOURCE_FUNCTION = function: ISC_STATUS; // ISC_FAR
162     PISC_BLOB_CTL = ^TISC_BLOB_CTL; // ISC_FAR
163     TISC_BLOB_CTL = record
164     (** Source filter **)
165     ctl_source : TISC_BLOB_CTL_SOURCE_FUNCTION;
166     (** Argument to pass to source filter **)
167     ctl_source_handle : PISC_BLOB_CTL;
168     ctl_to_sub_type : Short; (** Target type **)
169     ctl_from_sub_type : Short; (** Source type **)
170     ctl_buffer_length : UShort; (** Length of buffer **)
171     ctl_segment_length : UShort; (** Length of current segment **)
172     ctl_bpb_length : UShort; (** Length of blob parameter **)
173     (** block **)
174     ctl_bpb : PChar; (** Address of blob parameter **)
175     (** block **)
176     ctl_buffer : PUChar; (** Address of segment buffer **)
177     ctl_max_segment : ISC_LONG; (** Length of longest segment **)
178     ctl_number_segments : ISC_LONG; (** Total number of segments **)
179     ctl_total_length : ISC_LONG; (** Total length of blob **)
180     ctl_status : PISC_STATUS; (** Address of status vector **)
181     ctl_data : array[0..7] of long; (** Application specific data **)
182     end;
183     (*****************************)
184     (** Blob stream definitions **)
185     (*****************************)
186     TBSTREAM = record
187     bstr_blob : PVoid; (** Blob handle **)
188     bstr_buffer : PChar; (** Address of buffer **)
189     bstr_ptr : PChar; (** Next character **)
190     bstr_length : Short; (** Length of buffer **)
191     bstr_cnt : Short; (** Characters in buffer **)
192     bstr_mode : Char; (** (mode) ? OUTPUT : INPUT **)
193     end;
194     PBSTREAM = ^TBSTREAM;
195    
196     (*****************************)
197     (** Dynamic SQL definitions **)
198     (*****************************)
199     {$IFDEF IB5_ONLY}
200     TSQLVAR = record
201     sqltype : Short;
202     sqllen : Short;
203     sqldata : PChar;
204     sqlind : PShort;
205     sqlname_length : Short;
206     sqlname : array[0..29] of Char;
207     end;
208     PSQLVAR = ^TSQLVAR;
209    
210     TSQLDA = record
211     sqldaid : array[0..7] of Char;
212     sqldabc : ISC_LONG;
213     sqln : Short;
214     sqld : Short;
215     sqlvar : array[0..0] of TSQLVAR;
216     end;
217     PSQLDA = ^TSQLDA;
218     {$ENDIF}
219    
220     (********************************)
221     (** Declare the extended SQLDA **)
222     (********************************)
223     TXSQLVAR = record
224     sqltype : Short; (** datatype of field **)
225     sqlscale : Short; (** scale factor **)
226     sqlsubtype : Short; (** datatype subtype - BLOBs **)
227     (** & text types only **)
228     sqllen : Short; (** length of data area **)
229     sqldata : PChar; (** address of data **)
230     sqlind : PShort; (** address of indicator **)
231     (** variable **)
232     sqlname_length : Short; (** length of sqlname field **)
233     (** name of field, name length + space for NULL **)
234     sqlname : array[0..31] of Char;
235     relname_length : Short; (** length of relation name **)
236     (** field's relation name + space for NULL **)
237     relname : array[0..31] of Char;
238     ownname_length : Short; (** length of owner name **)
239     (** relation's owner name + space for NULL **)
240     ownname : array[0..31] of Char;
241     aliasname_length : Short; (** length of alias name **)
242     (** relation's alias name + space for NULL **)
243     aliasname : array[0..31] of Char;
244     end; // TXSQLVAR
245     PXSQLVAR = ^TXSQLVAR;
246    
247     TXSQLDA = record
248     version : Short; (** version of this XSQLDA **)
249     (** XSQLDA name field **)
250     sqldaid : array[0..7] of Char;
251     sqldabc : ISC_LONG; (** length in bytes of SQLDA **)
252     sqln : Short; (** number of fields allocated **)
253     sqld : Short; (** actual number of fields **)
254     (** first field address **)
255     sqlvar : array[0..0] of TXSQLVAR;
256     end; // TXSQLDA
257     PXSQLDA = ^TXSQLDA;
258    
259     (********************************************************)
260     (** This record type is for passing arguments to **)
261     (** isc_start_transaction (See docs) **)
262     (********************************************************)
263     TISC_START_TRANS = record
264     db_handle : PISC_DB_HANDLE;
265     tpb_length : UShort;
266     tpb_address : PChar;
267     end;
268    
269     (********************************************************)
270     (** This record type is for passing arguments to **)
271     (** isc_start_multiple (see docs) **)
272     (********************************************************)
273     TISC_TEB = record
274     db_handle : PISC_DB_HANDLE;
275     tpb_length : Long;
276     tpb_address : PChar;
277     end;
278     PISC_TEB = ^TISC_TEB;
279     TISC_TEB_ARRAY = array[0..0] of TISC_TEB;
280     PISC_TEB_ARRAY = ^TISC_TEB_ARRAY;
281    
282     (*****************************)
283     (** OSRI database functions **)
284     (*****************************)
285    
286     Tisc_attach_database = function (status_vector : PISC_STATUS;
287     db_name_length : Short;
288     db_name : PChar;
289     db_handle : PISC_DB_HANDLE;
290     parm_buffer_length : Short;
291     parm_buffer : PChar): ISC_STATUS;
292 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
293 tony 1
294     Tisc_array_gen_sdl = function (status_vector : PISC_STATUS;
295     isc_array_desc : PISC_ARRAY_DESC;
296     isc_arg3 : PShort;
297     isc_arg4 : PChar;
298     isc_arg5 : PShort): ISC_STATUS;
299 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
300 tony 1
301     Tisc_array_get_slice = function (status_vector : PISC_STATUS;
302     db_handle : PISC_DB_HANDLE;
303     trans_handle : PISC_TR_HANDLE;
304     array_id : PISC_QUAD;
305     descriptor : PISC_ARRAY_DESC;
306     dest_array : PVoid;
307     slice_length : ISC_LONG): ISC_STATUS;
308 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
309 tony 1
310     Tisc_array_lookup_bounds = function (status_vector : PISC_STATUS;
311     db_handle : PISC_DB_HANDLE;
312     trans_handle : PISC_TR_HANDLE;
313     table_name,
314     column_name : PChar;
315     descriptor : PISC_ARRAY_DESC): ISC_STATUS;
316 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
317 tony 1
318     Tisc_array_lookup_desc = function (status_vector : PISC_STATUS;
319     db_handle : PISC_DB_HANDLE;
320     trans_handle : PISC_TR_HANDLE;
321     table_name,
322     column_name : PChar;
323     descriptor : PISC_ARRAY_DESC): ISC_STATUS;
324 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
325 tony 1
326     Tisc_array_set_desc = function (status_vector : PISC_STATUS;
327     table_name : PChar;
328     column_name : PChar;
329     sql_dtype,
330     sql_length,
331     sql_dimensions : PShort;
332     descriptor : PISC_ARRAY_DESC): ISC_STATUS;
333 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
334 tony 1
335     Tisc_array_put_slice = function (status_vector : PISC_STATUS;
336     db_handle : PISC_DB_HANDLE;
337     trans_handle : PISC_TR_HANDLE;
338     array_id : PISC_QUAD;
339     descriptor : PISC_ARRAY_DESC;
340     source_array : PVoid;
341     slice_length : PISC_LONG): ISC_STATUS;
342 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
343 tony 1
344     Tisc_blob_default_desc = procedure (descriptor : PISC_BLOB_DESC;
345     table_name : PUChar;
346     column_name : PUChar);
347 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
348 tony 1
349     Tisc_blob_gen_bpb = function (status_vector : PISC_STATUS;
350     to_descriptor,
351     from_descriptor : PISC_BLOB_DESC;
352     bpb_buffer_length : UShort;
353     bpb_buffer : PUChar;
354     bpb_length : PUShort): ISC_STATUS;
355 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
356 tony 1
357     Tisc_blob_info = function (status_vector : PISC_STATUS;
358     blob_handle : PISC_BLOB_HANDLE;
359     item_list_buffer_length : Short;
360     item_list_buffer : PChar;
361     result_buffer_length : Short;
362     result_buffer : PChar): ISC_STATUS;
363 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
364 tony 1
365     Tisc_blob_lookup_desc = function (status_vector : PISC_STATUS;
366     db_handle : PISC_DB_HANDLE;
367     trans_handle : PISC_TR_HANDLE;
368     table_name,
369     column_name : PChar;
370     descriptor : PISC_BLOB_DESC;
371     global : PUChar): ISC_STATUS;
372 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
373 tony 1
374     Tisc_blob_set_desc = function (status_vector : PISC_STATUS;
375     table_name,
376     column_name : PChar;
377     subtype,
378     charset,
379     segment_size : Short;
380     descriptor : PISC_BLOB_DESC): ISC_STATUS;
381 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
382 tony 1
383     Tisc_cancel_blob = function (status_vector : PISC_STATUS;
384     blob_handle : PISC_BLOB_HANDLE): ISC_STATUS;
385 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
386 tony 1
387     Tisc_cancel_events = function (status_vector : PISC_STATUS;
388     db_handle : PISC_DB_HANDLE;
389     event_id : PISC_LONG): ISC_STATUS;
390 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
391 tony 1
392     Tisc_close_blob = function (status_vector : PISC_STATUS;
393     blob_handle : PISC_BLOB_HANDLE): ISC_STATUS;
394 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
395 tony 1
396     Tisc_commit_retaining = function (status_vector : PISC_STATUS;
397     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
398 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
399 tony 1
400     Tisc_commit_transaction = function (status_vector : PISC_STATUS;
401     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
402 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
403 tony 1
404     Tisc_create_blob = function (status_vector : PISC_STATUS;
405     db_handle : PISC_DB_HANDLE;
406     tran_handle : PISC_TR_HANDLE;
407     blob_handle : PISC_BLOB_HANDLE;
408     blob_id : PISC_QUAD): ISC_STATUS;
409 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
410 tony 1
411     Tisc_create_blob2 = function (status_vector : PISC_STATUS;
412     db_handle : PISC_DB_HANDLE;
413     tran_handle : PISC_TR_HANDLE;
414     blob_handle : PISC_BLOB_HANDLE;
415     blob_id : PISC_QUAD;
416     bpb_length : Short;
417     bpb_address : PChar): ISC_STATUS;
418 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
419 tony 1
420     Tisc_create_database = function (status_vector : PISC_STATUS;
421     isc_arg2 : Short;
422     isc_arg3 : PChar;
423     db_handle : PISC_DB_HANDLE;
424     isc_arg5 : Short;
425     isc_arg6 : PChar;
426     isc_arg7 : Short): ISC_STATUS;
427 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
428 tony 1
429     Tisc_database_info = function (status_vector : PISC_STATUS;
430     db_handle : PISC_DB_HANDLE;
431     item_list_buffer_length : Short;
432     item_list_buffer : PChar;
433     result_buffer_length : Short;
434     result_buffer : PChar): ISC_STATUS;
435 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
436 tony 1
437     Tisc_decode_date = procedure (ib_date: PISC_QUAD;
438     tm_date: PCTimeStructure);
439 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
440 tony 1
441     Tisc_decode_sql_date = procedure (ib_date: PISC_DATE;
442     tm_date: PCTimeStructure);
443 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
444 tony 1
445     Tisc_decode_sql_time = procedure (ib_time: PISC_TIME;
446     tm_date: PCTimeStructure);
447 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
448 tony 1
449     Tisc_decode_timestamp = procedure (ib_timestamp: PISC_TIMESTAMP;
450     tm_date: PCTimeStructure);
451 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
452 tony 1
453     Tisc_detach_database = function (status_vector : PISC_STATUS;
454     db_handle : PISC_DB_HANDLE): ISC_STATUS;
455 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
456 tony 1
457     Tisc_drop_database = function (status_vector : PISC_STATUS;
458     db_handle : PISC_DB_HANDLE): ISC_STATUS;
459 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
460 tony 1
461     Tisc_dsql_allocate_statement = function (status_vector : PISC_STATUS;
462     db_handle : PISC_DB_HANDLE;
463     stmt_handle : PISC_STMT_HANDLE): ISC_STATUS;
464 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
465 tony 1
466     Tisc_dsql_alloc_statement2 = function (status_vector : PISC_STATUS;
467     db_handle : PISC_DB_HANDLE;
468     stmt_handle : PISC_STMT_HANDLE): ISC_STATUS;
469 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
470 tony 1
471     Tisc_dsql_describe = function (status_vector : PISC_STATUS;
472     stmt_handle : PISC_STMT_HANDLE;
473     dialect : UShort;
474     xsqlda : PXSQLDA): ISC_STATUS;
475 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
476 tony 1
477     Tisc_dsql_describe_bind = function (status_vector : PISC_STATUS;
478     stmt_handle : PISC_STMT_HANDLE;
479     dialect : UShort;
480     xsqlda : PXSQLDA): ISC_STATUS;
481 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
482 tony 1
483     Tisc_dsql_exec_immed2 = function (status_vector : PISC_STATUS;
484     db_handle : PISC_DB_HANDLE;
485     tran_handle : PISC_TR_HANDLE;
486     length : UShort;
487     statement : PChar;
488     dialect : UShort;
489     in_xsqlda,
490     out_xsqlda : PXSQLDA): ISC_STATUS;
491 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
492 tony 1
493     Tisc_dsql_execute = function (status_vector : PISC_STATUS;
494     tran_handle : PISC_TR_HANDLE;
495     stmt_handle : PISC_STMT_HANDLE;
496     dialect : UShort;
497     xsqlda : PXSQLDA): ISC_STATUS;
498 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
499 tony 1
500     Tisc_dsql_execute2 = function (status_vector : PISC_STATUS;
501     tran_handle : PISC_TR_HANDLE;
502     stmt_handle : PISC_STMT_HANDLE;
503     dialect : UShort;
504     in_xsqlda,
505     out_xsqlda : PXSQLDA): ISC_STATUS;
506 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
507 tony 1
508     Tisc_dsql_execute_immediate = function (status_vector : PISC_STATUS;
509     db_handle : PISC_DB_HANDLE;
510     tran_handle : PISC_TR_HANDLE;
511     length : UShort;
512     statement : PChar;
513     dialect : UShort;
514     xsqlda : PXSQLDA): ISC_STATUS;
515 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
516 tony 1
517     Tisc_dsql_fetch = function (status_vector : PISC_STATUS;
518     stmt_handle : PISC_STMT_HANDLE;
519     dialect : UShort;
520     xsqlda : PXSQLDA): ISC_STATUS;
521 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
522 tony 1
523     (*$ifdef SCROLLABLE_CURSORS*)
524     Tisc_dsql_fetch2 = function (status_vector : PISC_STATUS;
525     stmt_handle : PISC_STMT_HANDLE;
526     dialect : UShort;
527     xsqlda : PXSQLDA;
528     isc_arg5 : UShort;
529     isc_arg6 : Long): ISC_STATUS;
530 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
531 tony 1 (*$endif*)
532    
533     Tisc_dsql_finish = function (db_handle : PISC_DB_HANDLE): ISC_STATUS;
534 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
535 tony 1
536     Tisc_dsql_free_statement = function (status_vector : PISC_STATUS;
537     stmt_handle : PISC_STMT_HANDLE;
538     options : UShort): ISC_STATUS;
539 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
540 tony 1
541     Tisc_dsql_insert = function (status_vector : PISC_STATUS;
542     stmt_handle : PISC_STMT_HANDLE;
543     arg3 : UShort;
544     xsqlda : PXSQLDA): ISC_STATUS;
545 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
546 tony 1
547     Tisc_dsql_prepare = function (status_vector : PISC_STATUS;
548     tran_handle : PISC_TR_HANDLE;
549     stmt_handle : PISC_STMT_HANDLE;
550     length : UShort;
551     statement : PChar;
552     dialect : UShort;
553     xsqlda : PXSQLDA): ISC_STATUS;
554 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
555 tony 1
556     Tisc_dsql_set_cursor_name = function (status_vector : PISC_STATUS;
557     stmt_handle : PISC_STMT_HANDLE;
558     cursor_name : PChar;
559     _type : UShort): ISC_STATUS;
560 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
561 tony 1
562     Tisc_dsql_sql_info = function (status_vector : PISC_STATUS;
563     stmt_handle : PISC_STMT_HANDLE;
564     item_length : Short;
565     items : PChar;
566     buffer_length : Short;
567     buffer : PChar): ISC_STATUS;
568 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
569 tony 1
570     Tisc_encode_date = procedure (tm_date : PCTimeStructure;
571     ib_date : PISC_QUAD);
572 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
573 tony 1
574     Tisc_encode_sql_date = procedure (tm_date : PCTimeStructure;
575     ib_date : PISC_DATE);
576 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
577 tony 1
578     Tisc_encode_sql_time = procedure (tm_date : PCTimeStructure;
579     ib_time : PISC_TIME);
580 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
581 tony 1
582     Tisc_encode_timestamp = procedure (tm_date : PCTimeStructure;
583     ib_timestamp : PISC_TIMESTAMP);
584 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
585 tony 1
586     Tisc_event_block = function (event_buffer : PPChar;
587     result_buffer : PPChar;
588 tony 7 id_count : UShort):ISC_LONG;
589     varargs; cdecl;
590 tony 1
591 tony 7 Tisc_event_counts = procedure (status_vector : PISC_LONG;
592 tony 1 buffer_length : Short;
593     event_buffer : PChar;
594     result_buffer : PChar);
595 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
596 tony 1
597     Tisc_expand_dpb = procedure (dpb : PPChar;
598     dpb_length : PShort;
599     item_list : array of Pointer);
600     cdecl;
601    
602     Tisc_modify_dpb = function (dpb : PPChar;
603     isc_arg2,
604     isc_arg3 : PShort;
605     isc_arg4 : UShort;
606     isc_arg5 : PChar;
607     isc_arg6 : Short): Int;
608 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
609 tony 1
610     Tisc_free = function (isc_arg1 : PChar): ISC_LONG;
611 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
612 tony 1
613     Tisc_get_segment = function (status_vector : PISC_STATUS;
614     blob_handle : PISC_BLOB_HANDLE;
615     actual_seg_length : PUShort;
616     seg_buffer_length : UShort;
617     seg_buffer : PChar): ISC_STATUS;
618 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
619 tony 1
620     Tisc_get_slice = function (status_vector : PISC_STATUS;
621     db_handle : PISC_DB_HANDLE;
622     tran_handle : PISC_TR_HANDLE;
623     isc_arg4 : PISC_QUAD;
624     isc_arg5 : Short;
625     isc_arg6 : PChar;
626     isc_arg7 : Short;
627     isc_arg8 : PISC_LONG;
628     isc_arg9 : ISC_LONG;
629     isc_arg10 : PVoid;
630     isc_arg11 : PISC_LONG): ISC_STATUS;
631 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
632 tony 1
633     Tisc_interprete = function (buffer : PChar;
634     status_vector : PPISC_STATUS): ISC_STATUS;
635 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
636 tony 1
637     Tisc_open_blob = function (status_vector : PISC_STATUS;
638     db_handle : PISC_DB_HANDLE;
639     tran_handle : PISC_TR_HANDLE;
640     blob_handle : PISC_BLOB_HANDLE;
641     blob_id : PISC_QUAD): ISC_STATUS;
642 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
643 tony 1
644     Tisc_open_blob2 = function (status_vector : PISC_STATUS;
645     db_handle : PISC_DB_HANDLE;
646     tran_handle : PISC_TR_HANDLE;
647     blob_handle : PISC_BLOB_HANDLE;
648     blob_id : PISC_QUAD;
649     bpb_length : Short;
650     bpb_buffer : PChar): ISC_STATUS;
651 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
652 tony 1
653     Tisc_prepare_transaction2 = function (status_vector : PISC_STATUS;
654     tran_handle : PISC_TR_HANDLE;
655     msg_length : Short;
656     msg : PChar): ISC_STATUS;
657 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
658 tony 1
659     Tisc_print_sqlerror = procedure (sqlcode : Short;
660     status_vector : PISC_STATUS);
661 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
662 tony 1
663     Tisc_print_status = function (status_vector : PISC_STATUS): ISC_STATUS;
664 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
665 tony 1
666     Tisc_put_segment = function (status_vector : PISC_STATUS;
667     blob_handle : PISC_BLOB_HANDLE;
668     seg_buffer_len : UShort;
669     seg_buffer : PChar): ISC_STATUS;
670 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
671 tony 1
672     Tisc_put_slice = function (status_vector : PISC_STATUS;
673     db_handle : PISC_DB_HANDLE;
674     tran_handle : PISC_TR_HANDLE;
675     isc_arg4 : PISC_QUAD;
676     isc_arg5 : Short;
677     isc_arg6 : PChar;
678     isc_arg7 : Short;
679     isc_arg8 : PISC_LONG;
680     isc_arg9 : ISC_LONG;
681     isc_arg10 : PVoid): ISC_STATUS;
682 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
683 tony 1
684     Tisc_que_events = function (status_vector : PISC_STATUS;
685     db_handle : PISC_DB_HANDLE;
686     event_id : PISC_LONG;
687     length : Short;
688     event_buffer : PChar;
689     event_function : TISC_CALLBACK;
690     event_function_arg : PVoid): ISC_STATUS;
691 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
692 tony 1
693     Tisc_rollback_retaining = function (status_vector : PISC_STATUS;
694     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
695 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
696 tony 1
697     Tisc_rollback_transaction = function (status_vector : PISC_STATUS;
698     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
699 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
700 tony 1
701     Tisc_start_multiple = function (status_vector : PISC_STATUS;
702     tran_handle : PISC_TR_HANDLE;
703     db_handle_count : Short;
704     teb_vector_address : PISC_TEB): ISC_STATUS;
705 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
706 tony 1
707     Tisc_start_transaction = function (status_vector : PISC_STATUS;
708     tran_handle : PISC_TR_HANDLE;
709     db_handle_count : Short;
710     db_handle : PISC_DB_HANDLE;
711     tpb_length : UShort;
712     tpb_address : PChar): ISC_STATUS;
713     cdecl;
714    
715     Tisc_sqlcode = function (status_vector : PISC_STATUS): ISC_LONG;
716 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
717 tony 1
718    
719     Tisc_sql_interprete = procedure (sqlcode : Short;
720     buffer : PChar;
721     buffer_length : Short);
722 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
723 tony 1
724     Tisc_transaction_info = function (status_vector : PISC_STATUS;
725     tran_handle : PISC_TR_HANDLE;
726     item_list_buffer_length : Short;
727     item_list_buffer : PChar;
728     result_buffer_length : Short;
729     result_buffer : PChar): ISC_STATUS;
730 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
731 tony 1
732     Tisc_transact_request = function (status_vector : PISC_STATUS;
733     db_handle : PISC_DB_HANDLE;
734     tran_handle : PISC_TR_HANDLE;
735     isc_arg4 : UShort;
736     isc_arg5 : PChar;
737     isc_arg6 : UShort;
738     isc_arg7 : PChar;
739     isc_arg8 : UShort;
740     isc_arg9 : PChar): ISC_STATUS;
741 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
742 tony 1
743     Tisc_vax_integer = function (buffer : PChar;
744     length : Short): ISC_LONG;
745 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
746 tony 1
747     Tisc_portable_integer = function (buffer : PChar;
748     length : Short): ISC_INT64;
749 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
750 tony 1
751     (***************************************)
752     (** Security Functions and structures **)
753     (***************************************)
754    
755     const
756     sec_uid_spec = $01;
757     sec_gid_spec = $02;
758     sec_server_spec = $04;
759     sec_password_spec = $08;
760     sec_group_name_spec = $10;
761     sec_first_name_spec = $20;
762     sec_middle_name_spec = $40;
763     sec_last_name_spec = $80;
764     sec_dba_user_name_spec = $100;
765     sec_dba_password_spec = $200;
766    
767     sec_protocol_tcpip = 1;
768     sec_protocol_netbeui = 2;
769     sec_protocol_spx = 3;
770     sec_protocol_local = 4;
771    
772     type
773     TUserSecData = record
774     sec_flags: Short; (** which fields are specified **)
775     uid: Int; (** the user's id **)
776     gid: int; (** the user's group id **)
777     protocol: Int; (** protocol to use for connection **)
778     server: PChar; (** server to administer **)
779     user_name: PChar; (** the user's name **)
780     password: PChar; (** the user's password **)
781     group_name: PChar; (** the group name **)
782     first_name: PChar; (** the user's first name **)
783     middle_name: PChar; (** the user's middle name **)
784     last_name: PChar; (** the user's last name **)
785     dba_user_name: PChar; (** the dba user name **)
786     dba_password: PChar; (** the dba password **)
787     end;
788     PUserSecData = ^TUserSecData;
789    
790     Tisc_add_user = function (status_vector : PISC_STATUS;
791     user_sec_data : PUserSecData): ISC_STATUS;
792 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
793 tony 1
794     Tisc_delete_user = function (status_vector : PISC_STATUS;
795     user_sec_data : PUserSecData): ISC_STATUS;
796 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
797 tony 1
798     Tisc_modify_user = function (status_vector : PISC_STATUS;
799     user_sec_data : PUserSecData): ISC_STATUS;
800 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
801 tony 1
802     (************************************)
803     (** Other OSRI functions **)
804     (************************************)
805    
806     Tisc_compile_request = function (status_vector : PISC_STATUS;
807     db_handle : PISC_DB_HANDLE;
808     request_handle : PISC_REQ_HANDLE;
809     isc_arg4 : Short;
810     isc_arg5 : PChar): ISC_STATUS;
811 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
812 tony 1
813     Tisc_compile_request2 = function (status_vector : PISC_STATUS;
814     db_handle : PISC_DB_HANDLE;
815     request_handle : PISC_REQ_HANDLE;
816     isc_arg4 : Short;
817     isc_arg5 : PChar): ISC_STATUS;
818 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
819 tony 1
820     Tisc_ddl = function (status_vector : PISC_STATUS;
821     db_handle : PISC_DB_HANDLE;
822     tran_handle : PISC_TR_HANDLE;
823     isc_arg4 : Short;
824     isc_arg5 : PChar): ISC_STATUS;
825 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
826 tony 1
827     Tisc_prepare_transaction = function (status_vector : PISC_STATUS;
828     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
829 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
830 tony 1
831    
832     Tisc_receive = function (status_vector : PISC_STATUS;
833     request_handle : PISC_REQ_HANDLE;
834     isc_arg3,
835     isc_arg4 : Short;
836     isc_arg5 : PVoid;
837     isc_arg6 : Short): ISC_STATUS;
838 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
839 tony 1
840     Tisc_receive2 = function (status_vector : PISC_STATUS;
841     request_handle : PISC_REQ_HANDLE;
842     isc_arg3,
843     isc_arg4 : Short;
844     isc_arg5 : PVoid;
845     isc_arg6,
846     isc_arg7 : Short;
847     isc_arg8 : Long): ISC_STATUS;
848 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
849 tony 1
850     Tisc_reconnect_transaction = function (status_vector : PISC_STATUS;
851     db_handle : PISC_DB_HANDLE;
852     tran_handle : PISC_TR_HANDLE;
853     isc_arg4 : Short;
854     isc_arg5 : PChar): ISC_STATUS;
855 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
856 tony 1
857     Tisc_release_request = function (status_vector : PISC_STATUS;
858     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
859 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
860 tony 1
861     Tisc_request_info = function (status_vector : PISC_STATUS;
862     request_handle : PISC_REQ_HANDLE;
863     isc_arg3 : Short;
864     isc_arg4 : Short;
865     isc_arg5 : PChar;
866     isc_arg6 : Short;
867     isc_arg7 : PChar): ISC_STATUS;
868 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
869 tony 1
870     Tisc_seek_blob = function (status_vector : PISC_STATUS;
871     blob_handle : PISC_BLOB_HANDLE;
872     isc_arg3 : Short;
873     isc_arg4 : ISC_LONG;
874     isc_arg5 : PISC_LONG): ISC_STATUS;
875 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
876 tony 1
877     Tisc_send = function (status_vector : PISC_STATUS;
878     request_handle : PISC_REQ_HANDLE;
879     isc_arg3,
880     isc_arg4 : Short;
881     isc_arg5 : PVoid;
882     isc_arg6 : Short): ISC_STATUS;
883 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
884 tony 1
885     Tisc_start_and_send = function (status_vector : PISC_STATUS;
886     request_handle : PISC_REQ_HANDLE;
887     tran_handle : PISC_TR_HANDLE;
888     isc_arg4,
889     isc_arg5 : Short;
890     isc_arg6 : PVoid;
891     isc_arg7 : Short): ISC_STATUS;
892 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
893 tony 1
894     Tisc_start_request = function (status_vector : PISC_STATUS;
895     request_handle : PISC_REQ_HANDLE;
896     tran_handle : PISC_TR_HANDLE;
897     isc_arg4 : Short): ISC_STATUS;
898 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
899 tony 1
900     Tisc_unwind_request = function (status_vector : PISC_STATUS;
901     tran_handle : PISC_TR_HANDLE;
902     isc_arg3 : Short): ISC_STATUS;
903 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
904 tony 1
905     Tisc_wait_for_event = function (status_vector : PISC_STATUS;
906     db_handle : PISC_DB_HANDLE;
907     length : Short;
908     event_buffer,
909     result_buffer : PChar): ISC_STATUS;
910 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
911 tony 1
912     (*******************************)
913     (** Other Sql functions **)
914     (*******************************)
915     {$IFDEF IB5_ONLY}
916     Tisc_close = function (status_vector : PISC_STATUS;
917     isc_arg2 : PChar): ISC_STATUS;
918 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
919 tony 1
920     Tisc_declare = function (status_vector : PISC_STATUS;
921     isc_arg2,
922     isc_arg3 : PChar): ISC_STATUS;
923 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
924 tony 1
925     Tisc_describe = function (status_vector : PISC_STATUS;
926     isc_arg2 : PChar;
927     isc_arg3 : PSQLDA): ISC_STATUS;
928 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
929 tony 1
930     Tisc_describe_bind = function (status_vector : PISC_STATUS;
931     isc_arg2 : PChar;
932     isc_arg3 : PSQLDA): ISC_STATUS;
933 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
934 tony 1
935     Tisc_execute = function (status_vector : PISC_STATUS;
936     tran_handle : PISC_TR_HANDLE;
937     isc_arg3 : PChar;
938     isc_arg4 : PSQLDA): ISC_STATUS;
939 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
940 tony 1
941     Tisc_execute_immediate = function (status_vector : PISC_STATUS;
942     db_handle : PISC_DB_HANDLE;
943     tran_handle : PISC_TR_HANDLE;
944     isc_arg4 : PShort;
945     isc_arg5 : PChar): ISC_STATUS;
946 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
947 tony 1
948     Tisc_fetch = function (status_vector : PISC_STATUS;
949     isc_arg2 : PChar;
950     isc_arg3 : PSQLDA): ISC_STATUS;
951 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
952 tony 1
953     Tisc_open = function (status_vector : PISC_STATUS;
954     tran_handle : PISC_TR_HANDLE;
955     isc_arg3 : PChar;
956     isc_arg4 : PSQLDA): ISC_STATUS;
957 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
958 tony 1
959     Tisc_prepare = function (status_vector : PISC_STATUS;
960     db_handle : PISC_DB_HANDLE;
961     tran_handle : PISC_TR_HANDLE;
962     isc_arg4 : PChar;
963     isc_arg5 : PShort;
964     isc_arg6 : PChar;
965     isc_arg7 : PSQLDA): ISC_STATUS;
966 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
967 tony 1 {$ELSE}
968     Tisc_close = function (status_vector : PISC_STATUS;
969     isc_arg2 : PChar): ISC_STATUS;
970 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
971 tony 1
972     Tisc_declare = function (status_vector : PISC_STATUS;
973     isc_arg2,
974     isc_arg3 : PChar): ISC_STATUS;
975 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
976 tony 1
977     Tisc_describe = function (status_vector : PISC_STATUS;
978     isc_arg2 : PChar;
979     isc_arg3 : PXSQLDA): ISC_STATUS;
980 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
981 tony 1
982     Tisc_describe_bind = function (status_vector : PISC_STATUS;
983     isc_arg2 : PChar;
984     isc_arg3 : PXSQLDA): ISC_STATUS;
985 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
986 tony 1
987     Tisc_execute = function (status_vector : PISC_STATUS;
988     tran_handle : PISC_TR_HANDLE;
989     isc_arg3 : PChar;
990     isc_arg4 : PXSQLDA): ISC_STATUS;
991 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
992 tony 1
993     Tisc_execute_immediate = function (status_vector : PISC_STATUS;
994     db_handle : PISC_DB_HANDLE;
995     tran_handle : PISC_TR_HANDLE;
996     isc_arg4 : PShort;
997     isc_arg5 : PChar): ISC_STATUS;
998 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
999 tony 1
1000     Tisc_fetch = function (status_vector : PISC_STATUS;
1001     isc_arg2 : PChar;
1002     isc_arg3 : PXSQLDA): ISC_STATUS;
1003 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1004 tony 1
1005     Tisc_open = function (status_vector : PISC_STATUS;
1006     tran_handle : PISC_TR_HANDLE;
1007     isc_arg3 : PChar;
1008     isc_arg4 : PXSQLDA): ISC_STATUS;
1009 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1010 tony 1
1011     Tisc_prepare = function (status_vector : PISC_STATUS;
1012     db_handle : PISC_DB_HANDLE;
1013     tran_handle : PISC_TR_HANDLE;
1014     isc_arg4 : PChar;
1015     isc_arg5 : PShort;
1016     isc_arg6 : PChar;
1017     isc_arg7 : PXSQLDA): ISC_STATUS;
1018 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1019 tony 1 {$ENDIF}
1020    
1021     (***************************************)
1022     (** Other Dynamic sql functions **)
1023     (***************************************)
1024    
1025     Tisc_dsql_execute_m = function (status_vector : PISC_STATUS;
1026     tran_handle : PISC_TR_HANDLE;
1027     statement_handle : PISC_STMT_HANDLE;
1028     isc_arg4 : UShort;
1029     isc_arg5 : PChar;
1030     isc_arg6 : UShort;
1031     isc_arg7 : UShort;
1032     isc_arg8 : PChar): ISC_STATUS;
1033 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1034 tony 1
1035     Tisc_dsql_execute2_m = function (status_vector : PISC_STATUS;
1036     tran_handle : PISC_TR_HANDLE;
1037     statement_handle : PISC_STMT_HANDLE;
1038     isc_arg4 : UShort;
1039     isc_arg5 : PChar;
1040     isc_arg6 : UShort;
1041     isc_arg7 : UShort;
1042     isc_arg8 : PChar;
1043     isc_arg9 : UShort;
1044     isc_arg10 : PChar;
1045     isc_arg11 : UShort;
1046     isc_arg12 : UShort;
1047     isc_arg13 : PChar): ISC_STATUS;
1048 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1049 tony 1
1050     Tisc_dsql_execute_immediate_m = function (status_vector : PISC_STATUS;
1051     db_handle : PISC_DB_HANDLE;
1052     tran_handle : PISC_TR_HANDLE;
1053     isc_arg4 : UShort;
1054     isc_arg5 : PChar;
1055     isc_arg6 : UShort;
1056     isc_arg7 : UShort;
1057     isc_arg8 : PChar;
1058     isc_arg9 : UShort;
1059     isc_arg10 : UShort;
1060     isc_arg11 : PChar): ISC_STATUS;
1061 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1062 tony 1
1063     Tisc_dsql_exec_immed3_m = function (status_vector : PISC_STATUS;
1064     db_handle : PISC_DB_HANDLE;
1065     tran_handle : PISC_TR_HANDLE;
1066     isc_arg4 : UShort;
1067     isc_arg5 : PChar;
1068     isc_arg6 : UShort;
1069     isc_arg7 : UShort;
1070     isc_arg8 : PChar;
1071     isc_arg9 : UShort;
1072     isc_arg10 : UShort;
1073     isc_arg11 : PChar;
1074     isc_arg12 : UShort;
1075     isc_arg13 : PChar;
1076     isc_arg14 : UShort;
1077     isc_arg15 : UShort;
1078     isc_arg16 : PChar): ISC_STATUS;
1079 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1080 tony 1
1081     Tisc_dsql_fetch_m = function (status_vector : PISC_STATUS;
1082     statement_handle : PISC_STMT_HANDLE;
1083     isc_arg3 : UShort;
1084     isc_arg4 : PChar;
1085     isc_arg5 : UShort;
1086     isc_arg6 : UShort;
1087     isc_arg7 : PChar): ISC_STATUS;
1088 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1089 tony 1
1090     (*$ifdef SCROLLABLE_CURSORS*)
1091     Tisc_dsql_fetch2_m = function (status_vector : PISC_STATUS;
1092     statement_handle : PISC_STMT_HANDLE;
1093     isc_arg3 : UShort;
1094     isc_arg4 : PChar;
1095     isc_arg5 : UShort;
1096     isc_arg6 : UShort;
1097     isc_arg7 : PChar;
1098     isc_arg8 : UShort;
1099     isc_arg9 : Long): ISC_STATUS;
1100 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1101 tony 1 (*$endif*)
1102    
1103     Tisc_dsql_insert_m = function (status_vector : PISC_STATUS;
1104     statement_handle : PISC_STMT_HANDLE;
1105     isc_arg3 : UShort;
1106     isc_arg4 : PChar;
1107     isc_arg5 : UShort;
1108     isc_arg6 : UShort;
1109     isc_arg7 : PChar): ISC_STATUS;
1110 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1111 tony 1
1112     Tisc_dsql_prepare_m = function (status_vector : PISC_STATUS;
1113     tran_handle : PISC_TR_HANDLE;
1114     statement_handle : PISC_STMT_HANDLE;
1115     isc_arg4 : UShort;
1116     isc_arg5 : PChar;
1117     isc_arg6 : UShort;
1118     isc_arg7 : UShort;
1119     isc_arg8 : PChar;
1120     isc_arg9 : UShort;
1121     isc_arg10 : PChar): ISC_STATUS;
1122 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1123 tony 1
1124     Tisc_dsql_release = function (status_vector : PISC_STATUS;
1125     isc_arg2 : PChar): ISC_STATUS;
1126 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1127 tony 1
1128     Tisc_embed_dsql_close = function(status_vector : PISC_STATUS;
1129     isc_arg2 : PChar): ISC_STATUS;
1130 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1131 tony 1
1132     Tisc_embed_dsql_declare = function (status_vector : PISC_STATUS;
1133     isc_arg2 : PChar;
1134     isc_arg3 : PChar): ISC_STATUS;
1135 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1136 tony 1
1137     Tisc_embed_dsql_describe = function (status_vector : PISC_STATUS;
1138     isc_arg2 : PChar;
1139     isc_arg3 : UShort;
1140     isc_arg4 : PXSQLDA): ISC_STATUS;
1141 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1142 tony 1
1143     Tisc_embed_dsql_describe_bind = function (status_vector : PISC_STATUS;
1144     isc_arg2 : PChar;
1145     isc_arg3 : UShort;
1146     isc_arg4 : PXSQLDA): ISC_STATUS;
1147 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1148 tony 1
1149     Tisc_embed_dsql_execute = function (status_vector : PISC_STATUS;
1150     tran_handle : PISC_TR_HANDLE;
1151     isc_arg3 : PChar;
1152     isc_arg4 : UShort;
1153     isc_arg5 : PXSQLDA): ISC_STATUS;
1154 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1155 tony 1
1156     Tisc_embed_dsql_execute2 = function (status_vector : PISC_STATUS;
1157     tran_handle : PISC_TR_HANDLE;
1158     isc_arg3 : PChar;
1159     isc_arg4 : UShort;
1160     isc_arg5 : PXSQLDA;
1161     isc_arg6 : PXSQLDA): ISC_STATUS;
1162 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1163 tony 1
1164     Tisc_embed_dsql_execute_immed = function (status_vector : PISC_STATUS;
1165     db_handle : PISC_DB_HANDLE;
1166     tran_handle : PISC_TR_HANDLE;
1167     isc_arg4 : UShort;
1168     isc_arg5 : PChar;
1169     isc_arg6 : UShort;
1170     isc_arg7 : PXSQLDA): ISC_STATUS;
1171 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1172 tony 1
1173     Tisc_embed_dsql_fetch = function(status_vector : PISC_STATUS;
1174     isc_arg2 : PChar;
1175     isc_arg3 : UShort;
1176     isc_arg4 : PXSQLDA): ISC_STATUS;
1177 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1178 tony 1
1179     (*$ifdef SCROLLABLE_CURSORS*)
1180     Tisc_embed_dsql_fetch2 = function (status_vector : PISC_STATUS;
1181     isc_arg2 : PChar;
1182     isc_arg3 : UShort;
1183     isc_arg4 : PXSQLDA;
1184     isc_arg5 : UShort;
1185     isc_arg6 : Long): ISC_STATUS;
1186 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1187 tony 1 (*$endif*)
1188    
1189     Tisc_embed_dsql_open = function (status_vector : PISC_STATUS;
1190     tran_handle : PISC_TR_HANDLE;
1191     isc_arg3 : PChar;
1192     isc_arg4 : UShort;
1193     isc_arg5 : PXSQLDA): ISC_STATUS;
1194 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1195 tony 1
1196     Tisc_embed_dsql_open2 = function (status_vector : PISC_STATUS;
1197     tran_handle : PISC_TR_HANDLE;
1198     isc_arg3 : PChar;
1199     isc_arg4 : UShort;
1200     isc_arg5 : PXSQLDA;
1201     isc_arg6 : PXSQLDA): ISC_STATUS;
1202 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1203 tony 1
1204     Tisc_embed_dsql_insert = function (status_vector : PISC_STATUS;
1205     isc_arg2 : PChar;
1206     isc_arg3 : UShort;
1207     isc_arg4 : PXSQLDA): ISC_STATUS;
1208 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1209 tony 1
1210     Tisc_embed_dsql_prepare = function (status_vector : PISC_STATUS;
1211     db_handle : PISC_DB_HANDLE;
1212     tran_handle : PISC_TR_HANDLE;
1213     isc_arg4 : PChar;
1214     isc_arg5 : UShort;
1215     isc_arg6 : PChar;
1216     isc_arg7 : UShort;
1217     isc_arg8 : PXSQLDA): ISC_STATUS;
1218 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1219 tony 1
1220     Tisc_embed_dsql_release = function (status_vector : PISC_STATUS;
1221     isc_arg2 : PChar): ISC_STATUS;
1222 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1223 tony 1
1224     (********************************)
1225     (** Other Blob functions **)
1226     (********************************)
1227    
1228     TBLOB_open = function (blob_handle : TISC_BLOB_HANDLE;
1229     isc_arg2 : PChar;
1230     isc_arg3 : int): PBSTREAM;
1231 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1232 tony 1
1233     TBLOB_put = function (isc_arg1 : char;
1234     isc_arg2 : PBSTREAM): Int;
1235 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1236 tony 1
1237     TBLOB_close = function (isc_arg1 : PBSTREAM): Int;
1238 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1239 tony 1
1240     TBLOB_get = function (isc_arg1 : PBSTREAM): Int;
1241 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1242 tony 1
1243     TBLOB_display = function (isc_arg1 : PISC_QUAD;
1244     db_handle : TISC_DB_HANDLE;
1245     tran_handle : TISC_TR_HANDLE;
1246     isc_arg4 : PChar): Int;
1247 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1248 tony 1
1249     TBLOB_dump = function (isc_arg1 : PISC_QUAD;
1250     db_handle : TISC_DB_HANDLE;
1251     tran_handle : TISC_TR_HANDLE;
1252     isc_arg4 : PChar): Int;
1253 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1254 tony 1
1255     TBLOB_edit = function (isc_arg1 : PISC_QUAD;
1256     db_handle : TISC_DB_HANDLE;
1257     tran_handle : TISC_TR_HANDLE;
1258     isc_arg4 : PChar): Int;
1259 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1260 tony 1
1261     TBLOB_load = function (isc_arg1 : PISC_QUAD;
1262     db_handle : TISC_DB_HANDLE;
1263     tran_handle : TISC_TR_HANDLE;
1264     isc_arg4 : PChar): Int;
1265 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1266 tony 1
1267     TBLOB_text_dump = function (isc_arg1 : PISC_QUAD;
1268     db_handle : TISC_DB_HANDLE;
1269     tran_handle : TISC_TR_HANDLE;
1270     isc_arg4 : PChar): Int;
1271 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1272 tony 1
1273     TBLOB_text_load = function (isc_arg1 : PISC_QUAD;
1274     db_handle : TISC_DB_HANDLE;
1275     tran_handle : TISC_TR_HANDLE;
1276     isc_arg4 : PChar): Int;
1277 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1278 tony 1
1279     TBopen = function (isc_arg1 : PISC_QUAD;
1280     db_handle : TISC_DB_HANDLE;
1281     tran_handle : TISC_TR_HANDLE;
1282     isc_arg4 : PChar): Int;
1283 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1284 tony 1
1285     TBopen2 = function (isc_arg1 : PISC_QUAD;
1286     db_handle : TISC_DB_HANDLE;
1287     tran_handle : TISC_TR_HANDLE;
1288     isc_arg4 : PChar;
1289     isc_arg5 : UShort): PBSTREAM;
1290 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1291 tony 1
1292     (********************************)
1293     (** Other Misc functions **)
1294     (********************************)
1295    
1296     Tisc_ftof = function (isc_arg1 : PChar;
1297     isc_arg2 : UShort;
1298     isc_arg3 : PChar;
1299     isc_arg4 : UShort): ISC_LONG;
1300 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1301 tony 1
1302     Tisc_print_blr = function (isc_arg1 : PChar;
1303     isc_arg2 : TISC_CALLBACK;
1304     isc_arg3 : PVoid;
1305     isc_arg4 : Short): ISC_STATUS;
1306 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1307 tony 1
1308     Tisc_set_debug = procedure (isc_arg1 : Int);
1309 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1310 tony 1
1311     Tisc_qtoq = procedure (isc_arg1 : PISC_QUAD;
1312     isc_arg2 : PISC_QUAD);
1313 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1314 tony 1
1315     Tisc_vtof = procedure (isc_arg1 : PChar;
1316     isc_arg2 : PChar;
1317     isc_arg3 : UShort);
1318 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1319 tony 1
1320     Tisc_vtov = procedure (isc_arg1 : PChar;
1321     isc_arg2 : PChar;
1322     isc_arg3 : Short);
1323 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1324 tony 1
1325     Tisc_version = function (db_handle : PISC_DB_HANDLE;
1326     isc_arg2 : TISC_CALLBACK;
1327     isc_arg3 : PVoid): Int;
1328 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1329 tony 1
1330     Tisc_reset_fpe = function (isc_arg1 : UShort): ISC_LONG;
1331 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1332 tony 1
1333     (*******************************************)
1334     (** Service manager functions **)
1335     (*******************************************)
1336    
1337     Tisc_service_attach = function (status_vector : PISC_STATUS;
1338     isc_arg2 : UShort;
1339     isc_arg3 : PChar;
1340     service_handle : PISC_SVC_HANDLE;
1341     isc_arg5 : UShort;
1342     isc_arg6 : PChar): ISC_STATUS;
1343 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1344 tony 1
1345     Tisc_service_detach = function (status_vector : PISC_STATUS;
1346     service_handle : PISC_SVC_HANDLE): ISC_STATUS;
1347 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1348 tony 1
1349     Tisc_service_query = function (status_vector : PISC_STATUS;
1350     service_handle : PISC_SVC_HANDLE;
1351     recv_handle : PISC_SVC_HANDLE;
1352     isc_arg4 : UShort;
1353     isc_arg5 : PChar;
1354     isc_arg6 : UShort;
1355     isc_arg7 : PChar;
1356     isc_arg8 : UShort;
1357     isc_arg9 : PChar): ISC_STATUS;
1358 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1359 tony 1
1360     Tisc_service_start = function (status_vector : PISC_STATUS;
1361     service_handle : PISC_SVC_HANDLE;
1362     recv_handle : PISC_SVC_HANDLE;
1363     isc_arg4 : UShort;
1364     isc_arg5 : PChar): ISC_STATUS;
1365 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1366 tony 1
1367     (*********************************)
1368     (** Forms functions **)
1369     (*********************************)
1370    
1371     Tisc_compile_map = function (status_vector : PISC_STATUS;
1372     form_handle : PISC_FORM_HANDLE;
1373     request_handle : PISC_REQ_HANDLE;
1374     isc_arg4 : PShort;
1375     isc_arg5 : PChar): ISC_STATUS;
1376 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1377 tony 1
1378     Tisc_compile_menu = function (status_vector : PISC_STATUS;
1379     form_handle : PISC_FORM_HANDLE;
1380     request_handle : PISC_REQ_HANDLE;
1381     isc_arg4 : PShort;
1382     isc_arg5 : PChar): ISC_STATUS;
1383 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1384 tony 1
1385     Tisc_compile_sub_map = function (status_vector : PISC_STATUS;
1386     win_handle : PISC_WIN_HANDLE;
1387     request_handle : PISC_REQ_HANDLE;
1388     isc_arg4 : PShort;
1389     isc_arg5 : PChar): ISC_STATUS;
1390 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1391 tony 1
1392     Tisc_create_window = function (status_vector : PISC_STATUS;
1393     win_handle : PISC_WIN_HANDLE;
1394     isc_arg3 : PShort;
1395     isc_arg4 : PChar;
1396     isc_arg5 : PShort;
1397     isc_arg6 : PShort): ISC_STATUS;
1398 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1399 tony 1
1400     Tisc_delete_window = function (status_vector : PISC_STATUS;
1401     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1402 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1403 tony 1
1404     Tisc_drive_form = function (status_vector : PISC_STATUS;
1405     db_handle : PISC_DB_HANDLE;
1406     tran_handle : PISC_TR_HANDLE;
1407     win_handle : PISC_WIN_HANDLE;
1408     request_handle : PISC_REQ_HANDLE;
1409     isc_arg6 : PUChar;
1410     isc_arg7 : PUChar): ISC_STATUS;
1411 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1412 tony 1
1413     Tisc_drive_menu = function (status_vector : PISC_STATUS;
1414     win_handle : PISC_WIN_HANDLE;
1415     request_handle : PISC_REQ_HANDLE;
1416     isc_arg4 : PShort;
1417     isc_arg5 : PChar;
1418     isc_arg6 : PShort;
1419     isc_arg7 : PChar;
1420     isc_arg8 : PShort;
1421     isc_arg9 : PShort;
1422     isc_arg10 : PChar;
1423     isc_arg11 : PISC_LONG): ISC_STATUS;
1424 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1425 tony 1
1426     Tisc_form_delete = function (status_vector : PISC_STATUS;
1427     form_handle : PISC_FORM_HANDLE): ISC_STATUS;
1428 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1429 tony 1
1430     Tisc_form_fetch = function (status_vector : PISC_STATUS;
1431     db_handle : PISC_DB_HANDLE;
1432     tran_handle : PISC_TR_HANDLE;
1433     request_handle : PISC_REQ_HANDLE;
1434     isc_arg5 : PUChar): ISC_STATUS;
1435 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1436 tony 1
1437     Tisc_form_insert = function (status_vector : PISC_STATUS;
1438     db_handle : PISC_DB_HANDLE;
1439     tran_handle : PISC_TR_HANDLE;
1440     request_handle : PISC_REQ_HANDLE;
1441     isc_arg5 : PUChar): ISC_STATUS;
1442 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1443 tony 1
1444     Tisc_get_entree = function (status_vector : PISC_STATUS;
1445     request_handle : PISC_REQ_HANDLE;
1446     isc_arg3 : PShort;
1447     isc_arg4 : PChar;
1448     isc_arg5 : PISC_LONG;
1449     isc_arg6 : PShort): ISC_STATUS;
1450 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1451 tony 1
1452     Tisc_initialize_menu = function (status_vector : PISC_STATUS;
1453     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
1454 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1455 tony 1
1456     Tisc_menu = function (status_vector : PISC_STATUS;
1457     win_handle : PISC_WIN_HANDLE;
1458     request_handle : PISC_REQ_HANDLE;
1459     isc_arg4 : PShort;
1460     isc_arg5 : PChar): ISC_STATUS;
1461 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1462 tony 1
1463     Tisc_load_form = function (status_vector : PISC_STATUS;
1464     db_handle : PISC_DB_HANDLE;
1465     tran_handle : PISC_TR_HANDLE;
1466     form_handle : PISC_FORM_HANDLE;
1467     isc_arg5 : PShort;
1468     isc_arg6 : PChar): ISC_STATUS;
1469 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1470 tony 1
1471     Tisc_pop_window = function (status_vector : PISC_STATUS;
1472     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1473 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1474 tony 1
1475     Tisc_put_entree = function (status_vector : PISC_STATUS;
1476     request_handle : PISC_REQ_HANDLE;
1477     isc_arg3 : PShort;
1478     isc_arg4 : PChar;
1479     isc_arg5 : PISC_LONG): ISC_STATUS;
1480 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1481 tony 1
1482     Tisc_reset_form = function (status_vector : PISC_STATUS;
1483     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
1484 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1485 tony 1
1486     Tisc_suspend_window = function (status_vector : PISC_STATUS;
1487     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1488 tony 7 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1489 tony 1
1490     (** Constants!!! **)
1491     (*****************************************************)
1492     (** Actions to pass to the blob filter (ctl_source) **)
1493     (*****************************************************)
1494    
1495     const
1496     isc_blob_filter_open = 0;
1497     isc_blob_filter_get_segment = 1;
1498     isc_blob_filter_close = 2;
1499     isc_blob_filter_create = 3;
1500     isc_blob_filter_put_segment = 4;
1501     isc_blob_filter_alloc = 5;
1502     isc_blob_filter_free = 6;
1503     isc_blob_filter_seek = 7;
1504    
1505     (*********************)
1506     (** Blr definitions **)
1507     (*********************)
1508    
1509     // In pascal, how does one deal with the below "#define"?
1510     // blr_word(n) ((n) % 256), ((n) / 256)
1511     blr_text = 14;
1512     blr_text2 = 15;
1513     blr_short = 7;
1514     blr_long = 8;
1515     blr_quad = 9;
1516     blr_float = 10;
1517     blr_double = 27;
1518     blr_d_float = 11;
1519     blr_timestamp = 35;
1520     blr_varying = 37;
1521     blr_varying2 = 38;
1522     blr_blob = 261;
1523     blr_cstring = 40;
1524     blr_cstring2 = 41;
1525     blr_blob_id = 45;
1526     blr_sql_date = 12;
1527     blr_sql_time = 13;
1528     blr_int64 = 16;
1529     blr_date = blr_timestamp;
1530    
1531    
1532     blr_inner = 0;
1533     blr_left = 1;
1534     blr_right = 2;
1535     blr_full = 3;
1536    
1537     blr_gds_code = 0;
1538     blr_sql_code = 1;
1539     blr_exception = 2;
1540     blr_trigger_code = 3;
1541     blr_default_code = 4;
1542    
1543     blr_version4 = 4;
1544     blr_version5 = 5;
1545     blr_eoc = 76;
1546     blr_end = -1;
1547    
1548     blr_assignment = 1;
1549     blr_begin = 2;
1550     blr_dcl_variable = 3;
1551     blr_message = 4;
1552     blr_erase = 5;
1553     blr_fetch = 6;
1554     blr_for = 7;
1555     blr_if = 8;
1556     blr_loop = 9;
1557     blr_modify = 10;
1558     blr_handler = 11;
1559     blr_receive = 12;
1560     blr_select = 13;
1561     blr_send = 14;
1562     blr_store = 15;
1563     blr_label = 17;
1564     blr_leave = 18;
1565     blr_store2 = 19;
1566     blr_post = 20;
1567    
1568     blr_literal = 21;
1569     blr_dbkey = 22;
1570     blr_field = 23;
1571     blr_fid = 24;
1572     blr_parameter = 25;
1573     blr_variable = 26;
1574     blr_average = 27;
1575     blr_count = 28;
1576     blr_maximum = 29;
1577     blr_minimum = 30;
1578     blr_total = 31;
1579     blr_add = 34;
1580     blr_subtract = 35;
1581     blr_multiply = 36;
1582     blr_divide = 37;
1583     blr_negate = 38;
1584     blr_concatenate = 39;
1585     blr_substring = 40;
1586     blr_parameter2 = 41;
1587     blr_from = 42;
1588     blr_via = 43;
1589     blr_user_name = 44;
1590     blr_null = 45;
1591    
1592     blr_eql = 47;
1593     blr_neq = 48;
1594     blr_gtr = 49;
1595     blr_geq = 50;
1596     blr_lss = 51;
1597     blr_leq = 52;
1598     blr_containing = 53;
1599     blr_matching = 54;
1600     blr_starting = 55;
1601     blr_between = 56;
1602     blr_or = 57;
1603     blr_and = 58;
1604     blr_not = 59;
1605     blr_any = 60;
1606     blr_missing = 61;
1607     blr_unique = 62;
1608     blr_like = 63;
1609    
1610     blr_stream = 65;
1611     blr_set_index = 66;
1612     blr_rse = 67;
1613     blr_first = 68;
1614     blr_project = 69;
1615     blr_sort = 70;
1616     blr_boolean = 71;
1617     blr_ascending = 72;
1618     blr_descending = 73;
1619     blr_relation = 74;
1620     blr_rid = 75;
1621     blr_union = 76;
1622     blr_map = 77;
1623     blr_group_by = 78;
1624     blr_aggregate = 79;
1625     blr_join_type = 80;
1626    
1627     blr_agg_count = 83;
1628     blr_agg_max = 84;
1629     blr_agg_min = 85;
1630     blr_agg_total = 86;
1631     blr_agg_average = 87;
1632     blr_parameter3 = 88;
1633     blr_run_count = 118;
1634     blr_run_max = 89;
1635     blr_run_min = 90;
1636     blr_run_total = 91;
1637     blr_run_average = 92;
1638     blr_agg_count2 = 93;
1639     blr_agg_count_distinct = 94;
1640     blr_agg_total_distinct = 95;
1641     blr_agg_average_distinct = 96;
1642    
1643     blr_function = 100;
1644     blr_gen_id = 101;
1645     blr_prot_mask = 102;
1646     blr_upcase = 103;
1647     blr_lock_state = 104;
1648     blr_value_if = 105;
1649     blr_matching2 = 106;
1650     blr_index = 107;
1651     blr_ansi_like = 108;
1652     blr_bookmark = 109;
1653     blr_crack = 110;
1654     blr_force_crack = 111;
1655     blr_seek = 112;
1656     blr_find = 113;
1657    
1658     blr_continue = 0;
1659     blr_forward = 1;
1660     blr_backward = 2;
1661     blr_bof_forward = 3;
1662     blr_eof_backward = 4;
1663    
1664     blr_lock_relation = 114;
1665     blr_lock_record = 115;
1666     blr_set_bookmark = 116;
1667     blr_get_bookmark = 117;
1668     blr_rs_stream = 119;
1669     blr_exec_proc = 120;
1670     blr_begin_range = 121;
1671     blr_end_range = 122;
1672     blr_delete_range = 123;
1673     blr_procedure = 124;
1674     blr_pid = 125;
1675     blr_exec_pid = 126;
1676     blr_singular = 127;
1677     blr_abort = 128;
1678     blr_block = 129;
1679     blr_error_handler = 130;
1680     blr_cast = 131;
1681     blr_release_lock = 132;
1682     blr_release_locks = 133;
1683     blr_start_savepoint = 134;
1684     blr_end_savepoint = 135;
1685     blr_find_dbkey = 136;
1686     blr_range_relation = 137;
1687     blr_delete_ranges = 138;
1688    
1689     blr_plan = 139;
1690     blr_merge = 140;
1691     blr_join = 141;
1692     blr_sequential = 142;
1693     blr_navigational = 143;
1694     blr_indices = 144;
1695     blr_retrieve = 145;
1696    
1697     blr_relation2 = 146;
1698     blr_rid2 = 147;
1699     blr_reset_stream = 148;
1700     blr_release_bookmark = 149;
1701     blr_set_generator = 150;
1702     blr_ansi_any = 151;
1703     blr_exists = 152;
1704     blr_cardinality = 153;
1705    
1706     blr_record_version = 154; (** get tid of record **)
1707     blr_stall = 155; (** fake server stall **)
1708     blr_seek_no_warn = 156;
1709     blr_find_dbkey_version = 157;
1710     blr_ansi_all = 158;
1711    
1712     blr_extract = 159;
1713    
1714     (* sub parameters for blr_extract *)
1715    
1716     blr_extract_year = 0;
1717     blr_extract_month = 1;
1718     blr_extract_day = 2;
1719     blr_extract_hour = 3;
1720     blr_extract_minute = 4;
1721     blr_extract_second = 5;
1722     blr_extract_weekday = 6;
1723     blr_extract_yearday = 7;
1724    
1725     blr_current_date = 160;
1726     blr_current_timestamp = 161;
1727     blr_current_time = 162;
1728    
1729     (* These verbs were added in 6.0,
1730     primarily to support 64-bit integers *)
1731    
1732     blr_add2 = 163;
1733     blr_subtract2 = 164;
1734     blr_multiply2 = 165;
1735     blr_divide2 = 166;
1736     blr_agg_total2 = 167;
1737     blr_agg_total_distinct2 = 168;
1738     blr_agg_average2 = 169;
1739     blr_agg_average_distinct2 = 170;
1740     blr_average2 = 171;
1741     blr_gen_id2 = 172;
1742     blr_set_generator2 = 173;
1743    
1744     (************************************)
1745     (** Database parameter block stuff **)
1746     (************************************)
1747    
1748     isc_dpb_version1 = 1;
1749     isc_dpb_cdd_pathname = 1;
1750     isc_dpb_allocation = 2;
1751     isc_dpb_journal = 3;
1752     isc_dpb_page_size = 4;
1753     isc_dpb_num_buffers = 5;
1754     isc_dpb_buffer_length = 6;
1755     isc_dpb_debug = 7;
1756     isc_dpb_garbage_collect = 8;
1757     isc_dpb_verify = 9;
1758     isc_dpb_sweep = 10;
1759     isc_dpb_enable_journal = 11;
1760     isc_dpb_disable_journal = 12;
1761     isc_dpb_dbkey_scope = 13;
1762     isc_dpb_number_of_users = 14;
1763     isc_dpb_trace = 15;
1764     isc_dpb_no_garbage_collect = 16;
1765     isc_dpb_damaged = 17;
1766     isc_dpb_license = 18;
1767     isc_dpb_sys_user_name = 19;
1768     isc_dpb_encrypt_key = 20;
1769     isc_dpb_activate_shadow = 21;
1770     isc_dpb_sweep_interval = 22;
1771     isc_dpb_delete_shadow = 23;
1772     isc_dpb_force_write = 24;
1773     isc_dpb_begin_log = 25;
1774     isc_dpb_quit_log = 26;
1775     isc_dpb_no_reserve = 27;
1776     isc_dpb_user_name = 28;
1777     isc_dpb_password = 29;
1778     isc_dpb_password_enc = 30;
1779     isc_dpb_sys_user_name_enc = 31;
1780     isc_dpb_interp = 32;
1781     isc_dpb_online_dump = 33;
1782     isc_dpb_old_file_size = 34;
1783     isc_dpb_old_num_files = 35;
1784     isc_dpb_old_file = 36;
1785     isc_dpb_old_start_page = 37;
1786     isc_dpb_old_start_seqno = 38;
1787     isc_dpb_old_start_file = 39;
1788     isc_dpb_drop_walfile = 40;
1789     isc_dpb_old_dump_id = 41;
1790     isc_dpb_wal_backup_dir = 42;
1791     isc_dpb_wal_chkptlen = 43;
1792     isc_dpb_wal_numbufs = 44;
1793     isc_dpb_wal_bufsize = 45;
1794     isc_dpb_wal_grp_cmt_wait = 46;
1795     isc_dpb_lc_messages = 47;
1796     isc_dpb_lc_ctype = 48;
1797     isc_dpb_cache_manager = 49;
1798     isc_dpb_shutdown = 50;
1799     isc_dpb_online = 51;
1800     isc_dpb_shutdown_delay = 52;
1801     isc_dpb_reserved = 53;
1802     isc_dpb_overwrite = 54;
1803     isc_dpb_sec_attach = 55;
1804     isc_dpb_disable_wal = 56;
1805     isc_dpb_connect_timeout = 57;
1806     isc_dpb_dummy_packet_interval = 58;
1807     isc_dpb_gbak_attach = 59;
1808     isc_dpb_sql_role_name = 60;
1809     isc_dpb_set_page_buffers = 61;
1810     isc_dpb_working_directory = 62;
1811     isc_dpb_SQL_dialect = 63;
1812     isc_dpb_set_db_readonly = 64;
1813     isc_dpb_set_db_SQL_dialect = 65;
1814     isc_dpb_gfix_attach = 66;
1815     isc_dpb_gstat_attach = 67;
1816     isc_dpb_last_dpb_constant = isc_dpb_gstat_attach;
1817    
1818    
1819     (***********************************)
1820     (** isc_dpb_verify specific flags **)
1821     (***********************************)
1822    
1823     isc_dpb_pages = 1;
1824     isc_dpb_records = 2;
1825     isc_dpb_indices = 4;
1826     isc_dpb_transactions = 8;
1827     isc_dpb_no_update = 16;
1828     isc_dpb_repair = 32;
1829     isc_dpb_ignore = 64;
1830    
1831     (*************************************)
1832     (** isc_dpb_shutdown specific flags **)
1833     (*************************************)
1834    
1835     isc_dpb_shut_cache = 1;
1836     isc_dpb_shut_attachment = 2;
1837     isc_dpb_shut_transaction = 4;
1838     isc_dpb_shut_force = 8;
1839    
1840     (****************************************)
1841     (** Bit assignments in RDB$SYSTEM_FLAG **)
1842     (****************************************)
1843    
1844     RDB_system = 1;
1845     RDB_id_assigned = 2;
1846    
1847    
1848     (***************************************)
1849     (** Transaction parameter block stuff **)
1850     (***************************************)
1851    
1852     isc_tpb_version1 = 1;
1853     isc_tpb_version3 = 3;
1854     isc_tpb_consistency = 1;
1855     isc_tpb_concurrency = 2;
1856     isc_tpb_shared = 3;
1857     isc_tpb_protected = 4;
1858     isc_tpb_exclusive = 5;
1859     isc_tpb_wait = 6;
1860     isc_tpb_nowait = 7;
1861     isc_tpb_read = 8;
1862     isc_tpb_write = 9;
1863     isc_tpb_lock_read = 10;
1864     isc_tpb_lock_write = 11;
1865     isc_tpb_verb_time = 12;
1866     isc_tpb_commit_time = 13;
1867     isc_tpb_ignore_limbo = 14;
1868     isc_tpb_read_committed = 15;
1869     isc_tpb_autocommit = 16;
1870     isc_tpb_rec_version = 17;
1871     isc_tpb_no_rec_version = 18;
1872     isc_tpb_restart_requests = 19;
1873     isc_tpb_no_auto_undo = 20;
1874     isc_tpb_last_tpb_constant = isc_tpb_no_auto_undo;
1875    
1876    
1877     (**************************)
1878     (** Blob Parameter Block **)
1879     (**************************)
1880    
1881     isc_bpb_version1 = 1;
1882     isc_bpb_source_type = 1;
1883     isc_bpb_target_type = 2;
1884     isc_bpb_type = 3;
1885     isc_bpb_source_interp = 4;
1886     isc_bpb_target_interp = 5;
1887     isc_bpb_filter_parameter = 6;
1888    
1889     isc_bpb_type_segmented = 0;
1890     isc_bpb_type_stream = 1;
1891    
1892    
1893     (***********************************)
1894     (** Service parameter block stuff **)
1895     (***********************************)
1896    
1897     isc_spb_user_name = 1;
1898     isc_spb_sys_user_name = 2;
1899     isc_spb_sys_user_name_enc = 3;
1900     isc_spb_password = 4;
1901     isc_spb_password_enc = 5;
1902     isc_spb_command_line = 6;
1903     isc_spb_dbname = 7;
1904     isc_spb_verbose = 8;
1905     isc_spb_options = 9;
1906     isc_spb_connect_timeout = 10;
1907     isc_spb_dummy_packet_interval = 11;
1908     isc_spb_sql_role_name = 12;
1909     isc_spb_last_spb_constant = isc_spb_sql_role_name;
1910    
1911     isc_spb_version1 = 1;
1912     isc_spb_current_version = 2;
1913     isc_spb_version = isc_spb_current_version;
1914     isc_spb_user_name_mapped_to_server = isc_dpb_user_name;
1915     isc_spb_sys_user_name_mapped_to_server = isc_dpb_sys_user_name;
1916     isc_spb_sys_user_name_enc_mapped_to_server = isc_dpb_sys_user_name_enc;
1917     isc_spb_password_mapped_to_server = isc_dpb_password;
1918     isc_spb_password_enc_mapped_to_server = isc_dpb_password_enc;
1919     isc_spb_command_line_mapped_to_server = 105;
1920     isc_spb_dbname_mapped_to_server = 106;
1921     isc_spb_verbose_mapped_to_server = 107;
1922     isc_spb_options_mapped_to_server = 108;
1923     isc_spb_connect_timeout_mapped_to_server = isc_dpb_connect_timeout;
1924     isc_spb_dummy_packet_interval_mapped_to_server = isc_dpb_dummy_packet_interval;
1925     isc_spb_sql_role_name_mapped_to_server = isc_dpb_sql_role_name;
1926    
1927     (***********************************)
1928     (** Information call declarations **)
1929     (***********************************)
1930    
1931     (******************************)
1932     (** Common, structural codes **)
1933     (******************************)
1934    
1935     isc_info_end = 1;
1936     isc_info_truncated = 2;
1937     isc_info_error = 3;
1938     isc_info_data_not_ready = 4;
1939     isc_info_flag_end = 127;
1940    
1941     (********************************)
1942     (** Database information items **)
1943     (********************************)
1944    
1945     isc_info_db_id = 4;
1946     isc_info_reads = 5;
1947     isc_info_writes = 6;
1948     isc_info_fetches = 7;
1949     isc_info_marks = 8;
1950     isc_info_implementation = 11;
1951     isc_info_version = 12;
1952     isc_info_base_level = 13;
1953     isc_info_page_size = 14;
1954     isc_info_num_buffers = 15;
1955     isc_info_limbo = 16;
1956     isc_info_current_memory = 17;
1957     isc_info_max_memory = 18;
1958     isc_info_window_turns = 19;
1959     isc_info_license = 20;
1960     isc_info_allocation = 21;
1961     isc_info_attachment_id = 22;
1962     isc_info_read_seq_count = 23;
1963     isc_info_read_idx_count = 24;
1964     isc_info_insert_count = 25;
1965     isc_info_update_count = 26;
1966     isc_info_delete_count = 27;
1967     isc_info_backout_count = 28;
1968     isc_info_purge_count = 29;
1969     isc_info_expunge_count = 30;
1970     isc_info_sweep_interval = 31;
1971     isc_info_ods_version = 32;
1972     isc_info_ods_minor_version = 33;
1973     isc_info_no_reserve = 34;
1974     isc_info_logfile = 35;
1975     isc_info_cur_logfile_name = 36;
1976     isc_info_cur_log_part_offset = 37;
1977     isc_info_num_wal_buffers = 38;
1978     isc_info_wal_buffer_size = 39;
1979     isc_info_wal_ckpt_length = 40;
1980     isc_info_wal_cur_ckpt_interval = 41;
1981     isc_info_wal_prv_ckpt_fname = 42;
1982     isc_info_wal_prv_ckpt_poffset = 43;
1983     isc_info_wal_recv_ckpt_fname = 44;
1984     isc_info_wal_recv_ckpt_poffset = 45;
1985     isc_info_wal_grpc_wait_usecs = 47;
1986     isc_info_wal_num_io = 48;
1987     isc_info_wal_avg_io_size = 49;
1988     isc_info_wal_num_commits = 50;
1989     isc_info_wal_avg_grpc_size = 51;
1990     isc_info_forced_writes = 52;
1991     isc_info_user_names = 53;
1992     isc_info_page_errors = 54;
1993     isc_info_record_errors = 55;
1994     isc_info_bpage_errors = 56;
1995     isc_info_dpage_errors = 57;
1996     isc_info_ipage_errors = 58;
1997     isc_info_ppage_errors = 59;
1998     isc_info_tpage_errors = 60;
1999     isc_info_set_page_buffers = 61;
2000     isc_info_db_SQL_dialect = 62;
2001     isc_info_db_read_only = 63;
2002     isc_info_db_size_in_pages = 64;
2003    
2004     (****************************************)
2005     (** Database information return values **)
2006     (****************************************)
2007    
2008     isc_info_db_impl_rdb_vms = 1;
2009     isc_info_db_impl_rdb_eln = 2;
2010     isc_info_db_impl_rdb_eln_dev = 3;
2011     isc_info_db_impl_rdb_vms_y = 4;
2012     isc_info_db_impl_rdb_eln_y = 5;
2013     isc_info_db_impl_jri = 6;
2014     isc_info_db_impl_jsv = 7;
2015     isc_info_db_impl_isc_a = 25;
2016     isc_info_db_impl_isc_u = 26;
2017     isc_info_db_impl_isc_v = 27;
2018     isc_info_db_impl_isc_s = 28;
2019     isc_info_db_impl_isc_apl_68K = 25;
2020     isc_info_db_impl_isc_vax_ultr = 26;
2021     isc_info_db_impl_isc_vms = 27;
2022     isc_info_db_impl_isc_sun_68k = 28;
2023     isc_info_db_impl_isc_os2 = 29;
2024     isc_info_db_impl_isc_sun4 = 30;
2025     isc_info_db_impl_isc_hp_ux = 31;
2026     isc_info_db_impl_isc_sun_386i = 32;
2027     isc_info_db_impl_isc_vms_orcl = 33;
2028     isc_info_db_impl_isc_mac_aux = 34;
2029     isc_info_db_impl_isc_rt_aix = 35;
2030     isc_info_db_impl_isc_mips_ult = 36;
2031     isc_info_db_impl_isc_xenix = 37;
2032     isc_info_db_impl_isc_dg = 38;
2033     isc_info_db_impl_isc_hp_mpexl = 39;
2034     isc_info_db_impl_isc_hp_ux68K = 40;
2035     isc_info_db_impl_isc_sgi = 41;
2036     isc_info_db_impl_isc_sco_unix = 42;
2037     isc_info_db_impl_isc_cray = 43;
2038     isc_info_db_impl_isc_imp = 44;
2039     isc_info_db_impl_isc_delta = 45;
2040     isc_info_db_impl_isc_next = 46;
2041     isc_info_db_impl_isc_dos = 47;
2042     isc_info_db_impl_isc_winnt = 48;
2043     isc_info_db_impl_isc_epson = 49;
2044    
2045     isc_info_db_class_access = 1;
2046     isc_info_db_class_y_valve = 2;
2047     isc_info_db_class_rem_int = 3;
2048     isc_info_db_class_rem_srvr = 4;
2049     isc_info_db_class_pipe_int = 7;
2050     isc_info_db_class_pipe_srvr = 8;
2051     isc_info_db_class_sam_int = 9;
2052     isc_info_db_class_sam_srvr = 10;
2053     isc_info_db_class_gateway = 11;
2054     isc_info_db_class_cache = 12;
2055    
2056     (*******************************)
2057     (** Request information items **)
2058     (*******************************)
2059    
2060     isc_info_number_messages = 4;
2061     isc_info_max_message = 5;
2062     isc_info_max_send = 6;
2063     isc_info_max_receive = 7;
2064     isc_info_state = 8;
2065     isc_info_message_number = 9;
2066     isc_info_message_size = 10;
2067     isc_info_request_cost = 11;
2068     isc_info_access_path = 12;
2069     isc_info_req_select_count = 13;
2070     isc_info_req_insert_count = 14;
2071     isc_info_req_update_count = 15;
2072     isc_info_req_delete_count = 16;
2073    
2074    
2075     (***********************)
2076     (** Access path items **)
2077     (***********************)
2078    
2079     isc_info_rsb_end = 0;
2080     isc_info_rsb_begin = 1;
2081     isc_info_rsb_type = 2;
2082     isc_info_rsb_relation = 3;
2083     isc_info_rsb_plan = 4;
2084    
2085     (***************)
2086     (** Rsb types **)
2087     (***************)
2088    
2089     isc_info_rsb_unknown = 1;
2090     isc_info_rsb_indexed = 2;
2091     isc_info_rsb_navigate = 3;
2092     isc_info_rsb_sequential = 4;
2093     isc_info_rsb_cross = 5;
2094     isc_info_rsb_sort = 6;
2095     isc_info_rsb_first = 7;
2096     isc_info_rsb_boolean = 8;
2097     isc_info_rsb_union = 9;
2098     isc_info_rsb_aggregate = 10;
2099     isc_info_rsb_merge = 11;
2100     isc_info_rsb_ext_sequential = 12;
2101     isc_info_rsb_ext_indexed = 13;
2102     isc_info_rsb_ext_dbkey = 14;
2103     isc_info_rsb_left_cross = 15;
2104     isc_info_rsb_select = 16;
2105     isc_info_rsb_sql_join = 17;
2106     isc_info_rsb_simulate = 18;
2107     isc_info_rsb_sim_cross = 19;
2108     isc_info_rsb_once = 20;
2109     isc_info_rsb_procedure = 21;
2110    
2111     (************************)
2112     (** Bitmap expressions **)
2113     (************************)
2114    
2115     isc_info_rsb_and = 1;
2116     isc_info_rsb_or = 2;
2117     isc_info_rsb_dbkey = 3;
2118     isc_info_rsb_index = 4;
2119    
2120     isc_info_req_active = 2;
2121     isc_info_req_inactive = 3;
2122     isc_info_req_send = 4;
2123     isc_info_req_receive = 5;
2124     isc_info_req_select = 6;
2125     isc_info_req_sql_stall = 7;
2126    
2127     (****************************)
2128     (** Blob information items **)
2129     (****************************)
2130    
2131     isc_info_blob_num_segments = 4;
2132     isc_info_blob_max_segment = 5;
2133     isc_info_blob_total_length = 6;
2134     isc_info_blob_type = 7;
2135    
2136     (***********************************)
2137     (** Transaction information items **)
2138     (***********************************)
2139    
2140     isc_info_tra_id = 4;
2141    
2142     (*******************************)
2143     (** Service information items **)
2144     (*******************************)
2145    
2146     {$IFDEF IB5_ONLY }
2147     (* This defines are not there in version 6.0 *)
2148     { isc_info_svc_version = 4;
2149     isc_info_svc_message = 5;
2150     isc_info_svc_total_length = 6;
2151     isc_info_svc_response = 7;
2152     isc_info_svc_response_more = 8;
2153     isc_info_svc_line = 9;
2154     isc_info_svc_to_eof = 10;
2155     isc_info_svc_timeout = 11;
2156     isc_info_svc_server_version = 12;
2157     isc_info_svc_implementation = 13;
2158     isc_info_svc_capabilities = 14;
2159     isc_info_svc_user_dbpath = 15;
2160     isc_info_svc_svr_db_info = 16;
2161     isc_info_svc_svr_online = 17;
2162     isc_info_svc_svr_offline = 18;
2163     isc_info_svc_get_config = 19;
2164     isc_info_svc_set_config = 20;
2165     isc_info_svc_default_config = 21;
2166     isc_info_svc_get_env = 22;
2167     isc_info_svc_get_env_lock = 23;
2168     isc_info_svc_get_env_msg = 24; }
2169     {$ENDIF}
2170    
2171     (*****************************************)
2172     (* Service action items **)
2173     (*****************************************)
2174    
2175     isc_action_svc_backup = 1; (* Starts database backup process on the server *)
2176     isc_action_svc_restore = 2; (* Starts database restore process on the server *)
2177     isc_action_svc_repair = 3; (* Starts database repair process on the server *)
2178     isc_action_svc_add_user = 4; (* Adds a new user to the security database *)
2179     isc_action_svc_delete_user = 5; (* Deletes a user record from the security database *)
2180     isc_action_svc_modify_user = 6; (* Modifies a user record in the security database *)
2181     isc_action_svc_display_user = 7; (* Displays a user record from the security database *)
2182     isc_action_svc_properties = 8; (* Sets database properties *)
2183     isc_action_svc_add_license = 9; (* Adds a license to the license file *)
2184     isc_action_svc_remove_license = 10; (* Removes a license from the license file *)
2185     isc_action_svc_db_stats = 11; (* Retrieves database statistics *)
2186     isc_action_svc_get_ib_log = 12; (* Retrieves the InterBase log file from the server *)
2187    
2188     (*****************************************)
2189     (** Service information items **)
2190     (*****************************************)
2191    
2192     isc_info_svc_svr_db_info = 50; (* Retrieves the number of attachments and databases *)
2193     isc_info_svc_get_license = 51; (* Retrieves all license keys and IDs from the license file *)
2194     isc_info_svc_get_license_mask = 52; (* Retrieves a bitmask representing licensed options on the server *)
2195     isc_info_svc_get_config = 53; (* Retrieves the parameters and values for IB_CONFIG *)
2196     isc_info_svc_version = 54; (* Retrieves the version of the services manager *)
2197     isc_info_svc_server_version = 55;(* Retrieves the version of the InterBase server *)
2198     isc_info_svc_implementation = 56; (* Retrieves the implementation of the InterBase server *)
2199     isc_info_svc_capabilities = 57; (* Retrieves a bitmask representing the server's capabilities *)
2200     isc_info_svc_user_dbpath = 58; (* Retrieves the path to the security database in use by the server *)
2201     isc_info_svc_get_env = 59; (* Retrieves the setting of $INTERBASE *)
2202     isc_info_svc_get_env_lock = 60; (* Retrieves the setting of $INTERBASE_LCK *)
2203     isc_info_svc_get_env_msg = 61; (* Retrieves the setting of $INTERBASE_MSG *)
2204     isc_info_svc_line = 62; (* Retrieves 1 line of service output per call *)
2205     isc_info_svc_to_eof = 63; (* Retrieves as much of the server output as will fit in the supplied buffer *)
2206     isc_info_svc_timeout = 64; (* Sets / signifies a timeout value for reading service information *)
2207     isc_info_svc_get_licensed_users = 65; (* Retrieves the number of users licensed for accessing the server *)
2208     isc_info_svc_limbo_trans = 66; (* Retrieve the limbo transactions *)
2209     isc_info_svc_running = 67; (* Checks to see if a service is running on an attachment *)
2210     isc_info_svc_get_users = 68; (* Returns the user information from isc_action_svc_display_users *)
2211    
2212     (*****************************************)
2213     (* Parameters for isc_action_{add|delete|modify)_user *)
2214     (*****************************************)
2215    
2216     isc_spb_sec_userid = 5;
2217     isc_spb_sec_groupid = 6;
2218     isc_spb_sec_username = 7;
2219     isc_spb_sec_password = 8;
2220     isc_spb_sec_groupname = 9;
2221     isc_spb_sec_firstname = 10;
2222     isc_spb_sec_middlename = 11;
2223     isc_spb_sec_lastname = 12;
2224    
2225     (*****************************************)
2226     (* Parameters for isc_action_svc_(add|remove)_license, *)
2227     (* isc_info_svc_get_license *)
2228     (*****************************************)
2229    
2230     isc_spb_lic_key = 5;
2231     isc_spb_lic_id = 6;
2232     isc_spb_lic_desc = 7;
2233    
2234    
2235     (*****************************************)
2236     (* Parameters for isc_action_svc_backup *)
2237     (*****************************************)
2238    
2239     isc_spb_bkp_file = 5;
2240     isc_spb_bkp_factor = 6;
2241     isc_spb_bkp_length = 7;
2242     isc_spb_bkp_ignore_checksums = $01;
2243     isc_spb_bkp_ignore_limbo = $02;
2244     isc_spb_bkp_metadata_only = $04;
2245     isc_spb_bkp_no_garbage_collect = $08;
2246     isc_spb_bkp_old_descriptions = $10;
2247     isc_spb_bkp_non_transportable = $20;
2248     isc_spb_bkp_convert = $40;
2249     isc_spb_bkp_expand = $80;
2250    
2251     (*****************************************)
2252     (* Parameters for isc_action_svc_properties *)
2253     (*****************************************)
2254    
2255     isc_spb_prp_page_buffers = 5;
2256     isc_spb_prp_sweep_interval = 6;
2257     isc_spb_prp_shutdown_db = 7;
2258     isc_spb_prp_deny_new_attachments = 9;
2259     isc_spb_prp_deny_new_transactions = 10;
2260     isc_spb_prp_reserve_space = 11;
2261     isc_spb_prp_write_mode = 12;
2262     isc_spb_prp_access_mode = 13;
2263     isc_spb_prp_set_sql_dialect = 14;
2264     isc_spb_prp_activate = $0100;
2265     isc_spb_prp_db_online = $0200;
2266    
2267     (*****************************************)
2268     (* Parameters for isc_spb_prp_reserve_space *)
2269     (*****************************************)
2270    
2271     isc_spb_prp_res_use_full = 35;
2272     isc_spb_prp_res = 36;
2273    
2274     (*****************************************)
2275     (* Parameters for isc_spb_prp_write_mode *)
2276     (*****************************************)
2277    
2278     isc_spb_prp_wm_async = 37;
2279     isc_spb_prp_wm_sync = 38;
2280    
2281     (*****************************************)
2282     (* Parameters for isc_spb_prp_access_mode *)
2283     (*****************************************)
2284    
2285     isc_spb_prp_am_readonly = 39;
2286     isc_spb_prp_am_readwrite = 40;
2287    
2288     (*****************************************)
2289     (* Parameters for isc_action_svc_repair *)
2290     (*****************************************)
2291    
2292     isc_spb_rpr_commit_trans = 15;
2293     isc_spb_rpr_rollback_trans = 34;
2294     isc_spb_rpr_recover_two_phase = 17;
2295     isc_spb_tra_id = 18;
2296     isc_spb_single_tra_id = 19;
2297     isc_spb_multi_tra_id = 20;
2298     isc_spb_tra_state = 21;
2299     isc_spb_tra_state_limbo = 22;
2300     isc_spb_tra_state_commit = 23;
2301     isc_spb_tra_state_rollback = 24;
2302     isc_spb_tra_state_unknown = 25;
2303     isc_spb_tra_host_site = 26;
2304     isc_spb_tra_remote_site = 27;
2305     isc_spb_tra_db_path = 28;
2306     isc_spb_tra_advise = 29;
2307     isc_spb_tra_advise_commit = 30;
2308     isc_spb_tra_advise_rollback = 31;
2309     isc_spb_tra_advise_unknown = 33;
2310     isc_spb_rpr_validate_db = $01;
2311     isc_spb_rpr_sweep_db = $02;
2312     isc_spb_rpr_mend_db = $04;
2313     isc_spb_rpr_list_limbo_trans = $08;
2314     isc_spb_rpr_check_db = $10;
2315     isc_spb_rpr_ignore_checksum = $20;
2316     isc_spb_rpr_kill_shadows = $40;
2317     isc_spb_rpr_full = $80;
2318    
2319     (*****************************************)
2320     (* Parameters for isc_action_svc_restore *)
2321     (*****************************************)
2322    
2323     isc_spb_res_buffers = 9;
2324     isc_spb_res_page_size = 10;
2325     isc_spb_res_length = 11;
2326     isc_spb_res_access_mode = 12;
2327     isc_spb_res_deactivate_idx = $0100;
2328     isc_spb_res_no_shadow = $0200;
2329     isc_spb_res_no_validity = $0400;
2330     isc_spb_res_one_at_a_time = $0800;
2331     isc_spb_res_replace = $1000;
2332     isc_spb_res_create = $2000;
2333     isc_spb_res_use_all_space = $4000;
2334    
2335     (*****************************************)
2336     (* Parameters for isc_spb_res_access_mode *)
2337     (*****************************************)
2338    
2339     isc_spb_res_am_readonly = isc_spb_prp_am_readonly;
2340     isc_spb_res_am_readwrite = isc_spb_prp_am_readwrite;
2341    
2342     (*****************************************)
2343     (* Parameters for isc_info_svc_svr_db_info *)
2344     (*****************************************)
2345    
2346     isc_spb_num_att = 5;
2347     isc_spb_num_db = 6;
2348    
2349     (*****************************************)
2350     (* Parameters for isc_info_svc_db_stats *)
2351     (*****************************************)
2352    
2353     isc_spb_sts_data_pages = $01;
2354     isc_spb_sts_db_log = $02;
2355     isc_spb_sts_hdr_pages = $04;
2356     isc_spb_sts_idx_pages = $08;
2357     isc_spb_sts_sys_relations = $10;
2358    
2359    
2360     (***************************)
2361     (** SQL information items **)
2362     (***************************)
2363    
2364     isc_info_sql_select = 4;
2365     isc_info_sql_bind = 5;
2366     isc_info_sql_num_variables = 6;
2367     isc_info_sql_describe_vars = 7;
2368     isc_info_sql_describe_end = 8;
2369     isc_info_sql_sqlda_seq = 9;
2370     isc_info_sql_message_seq = 10;
2371     isc_info_sql_type = 11;
2372     isc_info_sql_sub_type = 12;
2373     isc_info_sql_scale = 13;
2374     isc_info_sql_length = 14;
2375     isc_info_sql_null_ind = 15;
2376     isc_info_sql_field = 16;
2377     isc_info_sql_relation = 17;
2378     isc_info_sql_owner = 18;
2379     isc_info_sql_alias = 19;
2380     isc_info_sql_sqlda_start = 20;
2381     isc_info_sql_stmt_type = 21;
2382     isc_info_sql_get_plan = 22;
2383     isc_info_sql_records = 23;
2384     isc_info_sql_batch_fetch = 24;
2385    
2386     (***********************************)
2387     (** SQL information return values **)
2388     (***********************************)
2389    
2390     isc_info_sql_stmt_select = 1;
2391     isc_info_sql_stmt_insert = 2;
2392     isc_info_sql_stmt_update = 3;
2393     isc_info_sql_stmt_delete = 4;
2394     isc_info_sql_stmt_ddl = 5;
2395     isc_info_sql_stmt_get_segment = 6;
2396     isc_info_sql_stmt_put_segment = 7;
2397     isc_info_sql_stmt_exec_procedure = 8;
2398     isc_info_sql_stmt_start_trans = 9;
2399     isc_info_sql_stmt_commit = 10;
2400     isc_info_sql_stmt_rollback = 11;
2401     isc_info_sql_stmt_select_for_upd = 12;
2402     isc_info_sql_stmt_set_generator = 13;
2403    
2404    
2405     (*************************************)
2406     (** Server configuration key values **)
2407     (*************************************)
2408    
2409     ISCCFG_LOCKMEM_KEY = 0;
2410     ISCCFG_LOCKSEM_KEY = 1;
2411     ISCCFG_LOCKSIG_KEY = 2;
2412     ISCCFG_EVNTMEM_KEY = 3;
2413     ISCCFG_DBCACHE_KEY = 4;
2414     ISCCFG_PRIORITY_KEY = 5;
2415     ISCCFG_IPCMAP_KEY = 6;
2416     ISCCFG_MEMMIN_KEY = 7;
2417     ISCCFG_MEMMAX_KEY = 8;
2418     ISCCFG_LOCKORDER_KEY = 9;
2419     ISCCFG_ANYLOCKMEM_KEY = 10;
2420     ISCCFG_ANYLOCKSEM_KEY = 11;
2421     ISCCFG_ANYLOCKSIG_KEY = 12;
2422     ISCCFG_ANYEVNTMEM_KEY = 13;
2423     ISCCFG_LOCKHASH_KEY = 14;
2424     ISCCFG_DEADLOCK_KEY = 15;
2425     ISCCFG_LOCKSPIN_KEY = 16;
2426     ISCCFG_CONN_TIMEOUT_KEY = 17;
2427     ISCCFG_DUMMY_INTRVL_KEY = 18;
2428    
2429    
2430     (*****************)
2431     (** Error codes **)
2432     (*****************)
2433    
2434     isc_facility = 20;
2435     isc_err_base = 335544320;
2436     isc_err_factor = 1;
2437     isc_arg_end = 0;
2438     isc_arg_gds = 1;
2439     isc_arg_string = 2;
2440     isc_arg_cstring = 3;
2441     isc_arg_number = 4;
2442     isc_arg_interpreted = 5;
2443     isc_arg_vms = 6;
2444     isc_arg_unix = 7;
2445     isc_arg_domain = 8;
2446     isc_arg_dos = 9;
2447     isc_arg_mpexl = 10;
2448     isc_arg_mpexl_ipc = 11;
2449     isc_arg_next_mach = 15;
2450     isc_arg_netware = 16;
2451     isc_arg_win32 = 17;
2452     isc_arg_warning = 18;
2453    
2454     (************************************************)
2455     (** Dynamic Data Definition Language operators **)
2456     (************************************************)
2457    
2458     (********************)
2459     (** Version number **)
2460     (********************)
2461    
2462     isc_dyn_version_1 = 1;
2463     isc_dyn_eoc = -1;
2464    
2465     (********************************)
2466     (** Operations (may be nested) **)
2467     (********************************)
2468    
2469     isc_dyn_begin = 2;
2470     isc_dyn_end = 3;
2471     isc_dyn_if = 4;
2472     isc_dyn_def_database = 5;
2473     isc_dyn_def_global_fld = 6;
2474     isc_dyn_def_local_fld = 7;
2475     isc_dyn_def_idx = 8;
2476     isc_dyn_def_rel = 9;
2477     isc_dyn_def_sql_fld = 10;
2478     isc_dyn_def_view = 12;
2479     isc_dyn_def_trigger = 15;
2480     isc_dyn_def_security_class = 120;
2481     isc_dyn_def_dimension = 140;
2482     isc_dyn_def_generator = 24;
2483     isc_dyn_def_function = 25;
2484     isc_dyn_def_filter = 26;
2485     isc_dyn_def_function_arg = 27;
2486     isc_dyn_def_shadow = 34;
2487     isc_dyn_def_trigger_msg = 17;
2488     isc_dyn_def_file = 36;
2489     isc_dyn_mod_database = 39;
2490     isc_dyn_mod_rel = 11;
2491     isc_dyn_mod_global_fld = 13;
2492     isc_dyn_mod_idx = 102;
2493     isc_dyn_mod_local_fld = 14;
2494     isc_dyn_mod_sql_fld = 216;
2495     isc_dyn_mod_view = 16;
2496     isc_dyn_mod_security_class = 122;
2497     isc_dyn_mod_trigger = 113;
2498     isc_dyn_mod_trigger_msg = 28;
2499     isc_dyn_delete_database = 18;
2500     isc_dyn_delete_rel = 19;
2501     isc_dyn_delete_global_fld = 20;
2502     isc_dyn_delete_local_fld = 21;
2503     isc_dyn_delete_idx = 22;
2504     isc_dyn_delete_security_class = 123;
2505     isc_dyn_delete_dimensions = 143;
2506     isc_dyn_delete_trigger = 23;
2507     isc_dyn_delete_trigger_msg = 29;
2508     isc_dyn_delete_filter = 32;
2509     isc_dyn_delete_function = 33;
2510     isc_dyn_delete_shadow = 35;
2511     isc_dyn_grant = 30;
2512     isc_dyn_revoke = 31;
2513     isc_dyn_def_primary_key = 37;
2514     isc_dyn_def_foreign_key = 38;
2515     isc_dyn_def_unique = 40;
2516     isc_dyn_def_procedure = 164;
2517     isc_dyn_delete_procedure = 165;
2518     isc_dyn_def_parameter = 135;
2519     isc_dyn_delete_parameter = 136;
2520     isc_dyn_mod_procedure = 175;
2521     isc_dyn_def_log_file = 176;
2522     isc_dyn_def_cache_file = 180;
2523     isc_dyn_def_exception = 181;
2524     isc_dyn_mod_exception = 182;
2525     isc_dyn_del_exception = 183;
2526     isc_dyn_drop_log = 194;
2527     isc_dyn_drop_cache = 195;
2528     isc_dyn_def_default_log = 202;
2529    
2530     (*************************)
2531     (** View specific stuff **)
2532     (*************************)
2533    
2534     isc_dyn_view_blr = 43;
2535     isc_dyn_view_source = 44;
2536     isc_dyn_view_relation = 45;
2537     isc_dyn_view_context = 46;
2538     isc_dyn_view_context_name = 47;
2539    
2540     (************************)
2541     (** Generic attributes **)
2542     (************************)
2543    
2544     isc_dyn_rel_name = 50;
2545     isc_dyn_fld_name = 51;
2546     isc_dyn_new_fld_name = 215;
2547     isc_dyn_idx_name = 52;
2548     isc_dyn_description = 53;
2549     isc_dyn_security_class = 54;
2550     isc_dyn_system_flag = 55;
2551     isc_dyn_update_flag = 56;
2552     isc_dyn_prc_name = 166;
2553     isc_dyn_prm_name = 137;
2554     isc_dyn_sql_object = 196;
2555     isc_dyn_fld_character_set_name = 174;
2556    
2557     (**********************************)
2558     (** Relation specific attributes **)
2559     (**********************************)
2560    
2561     isc_dyn_rel_dbkey_length = 61;
2562     isc_dyn_rel_store_trig = 62;
2563     isc_dyn_rel_modify_trig = 63;
2564     isc_dyn_rel_erase_trig = 64;
2565     isc_dyn_rel_store_trig_source = 65;
2566     isc_dyn_rel_modify_trig_source = 66;
2567     isc_dyn_rel_erase_trig_source = 67;
2568     isc_dyn_rel_ext_file = 68;
2569     isc_dyn_rel_sql_protection = 69;
2570     isc_dyn_rel_constraint = 162;
2571     isc_dyn_delete_rel_constraint = 163;
2572    
2573     (**************************************)
2574     (** Global field specific attributes **)
2575     (**************************************)
2576    
2577     isc_dyn_fld_type = 70;
2578     isc_dyn_fld_length = 71;
2579     isc_dyn_fld_scale = 72;
2580     isc_dyn_fld_sub_type = 73;
2581     isc_dyn_fld_segment_length = 74;
2582     isc_dyn_fld_query_header = 75;
2583     isc_dyn_fld_edit_string = 76;
2584     isc_dyn_fld_validation_blr = 77;
2585     isc_dyn_fld_validation_source = 78;
2586     isc_dyn_fld_computed_blr = 79;
2587     isc_dyn_fld_computed_source = 80;
2588     isc_dyn_fld_missing_value = 81;
2589     isc_dyn_fld_default_value = 82;
2590     isc_dyn_fld_query_name = 83;
2591     isc_dyn_fld_dimensions = 84;
2592     isc_dyn_fld_not_null = 85;
2593     isc_dyn_fld_precision = 86;
2594     isc_dyn_fld_char_length = 172;
2595     isc_dyn_fld_collation = 173;
2596     isc_dyn_fld_default_source = 193;
2597     isc_dyn_del_default = 197;
2598     isc_dyn_del_validation = 198;
2599     isc_dyn_single_validation = 199;
2600     isc_dyn_fld_character_set = 203;
2601    
2602     (*************************************)
2603     (** Local field specific attributes **)
2604     (*************************************)
2605    
2606     isc_dyn_fld_source = 90;
2607     isc_dyn_fld_base_fld = 91;
2608     isc_dyn_fld_position = 92;
2609     isc_dyn_fld_update_flag = 93;
2610    
2611     (*******************************)
2612     (** Index specific attributes **)
2613     (*******************************)
2614    
2615     isc_dyn_idx_unique = 100;
2616     isc_dyn_idx_inactive = 101;
2617     isc_dyn_idx_type = 103;
2618     isc_dyn_idx_foreign_key = 104;
2619     isc_dyn_idx_ref_column = 105;
2620     isc_dyn_idx_statistic = 204;
2621    
2622     (*********************************)
2623     (** Trigger specific attributes **)
2624     (*********************************)
2625    
2626     isc_dyn_trg_type = 110;
2627     isc_dyn_trg_blr = 111;
2628     isc_dyn_trg_source = 112;
2629     isc_dyn_trg_name = 114;
2630     isc_dyn_trg_sequence = 115;
2631     isc_dyn_trg_inactive = 116;
2632     isc_dyn_trg_msg_number = 117;
2633     isc_dyn_trg_msg = 118;
2634    
2635     (****************************************)
2636     (** Security Class specific attributes **)
2637     (****************************************)
2638    
2639     isc_dyn_scl_acl = 121;
2640     isc_dyn_grant_user = 130;
2641     isc_dyn_grant_proc = 186;
2642     isc_dyn_grant_trig = 187;
2643     isc_dyn_grant_view = 188;
2644     isc_dyn_grant_options = 132;
2645     isc_dyn_grant_user_group = 205;
2646    
2647     (************************************)
2648     (** Dimension specific information **)
2649     (************************************)
2650    
2651     isc_dyn_dim_lower = 141;
2652     isc_dyn_dim_upper = 142;
2653    
2654     (******************************)
2655     (** File specific attributes **)
2656     (******************************)
2657    
2658     isc_dyn_file_name = 125;
2659     isc_dyn_file_start = 126;
2660     isc_dyn_file_length = 127;
2661     isc_dyn_shadow_number = 128;
2662     isc_dyn_shadow_man_auto = 129;
2663     isc_dyn_shadow_conditional = 130;
2664    
2665     (**********************************)
2666     (** Log file specific attributes **)
2667     (**********************************)
2668    
2669     isc_dyn_log_file_sequence = 177;
2670     isc_dyn_log_file_partitions = 178;
2671     isc_dyn_log_file_serial = 179;
2672     isc_dyn_log_file_overflow = 200;
2673     isc_dyn_log_file_raw = 201;
2674    
2675     (*****************************)
2676     (** Log specific attributes **)
2677     (*****************************)
2678    
2679     isc_dyn_log_group_commit_wait = 189;
2680     isc_dyn_log_buffer_size = 190;
2681     isc_dyn_log_check_point_length = 191;
2682     isc_dyn_log_num_of_buffers = 192;
2683    
2684     (**********************************)
2685     (** Function specific attributes **)
2686     (**********************************)
2687    
2688     isc_dyn_function_name = 145;
2689     isc_dyn_function_type = 146;
2690     isc_dyn_func_module_name = 147;
2691     isc_dyn_func_entry_point = 148;
2692     isc_dyn_func_return_argument = 149;
2693     isc_dyn_func_arg_position = 150;
2694     isc_dyn_func_mechanism = 151;
2695     isc_dyn_filter_in_subtype = 152;
2696     isc_dyn_filter_out_subtype = 153;
2697    
2698    
2699     isc_dyn_description2 = 154;
2700     isc_dyn_fld_computed_source2 = 155;
2701     isc_dyn_fld_edit_string2 = 156;
2702     isc_dyn_fld_query_header2 = 157;
2703     isc_dyn_fld_validation_source2 = 158;
2704     isc_dyn_trg_msg2 = 159;
2705     isc_dyn_trg_source2 = 160;
2706     isc_dyn_view_source2 = 161;
2707     isc_dyn_xcp_msg2 = 184;
2708    
2709     (***********************************)
2710     (** Generator specific attributes **)
2711     (***********************************)
2712    
2713     isc_dyn_generator_name = 95;
2714     isc_dyn_generator_id = 96;
2715    
2716     (***********************************)
2717     (** Procedure specific attributes **)
2718     (***********************************)
2719    
2720     isc_dyn_prc_inputs = 167;
2721     isc_dyn_prc_outputs = 168;
2722     isc_dyn_prc_source = 169;
2723     isc_dyn_prc_blr = 170;
2724     isc_dyn_prc_source2 = 171;
2725    
2726     (***********************************)
2727     (** Parameter specific attributes **)
2728     (***********************************)
2729    
2730     isc_dyn_prm_number = 138;
2731     isc_dyn_prm_type = 139;
2732    
2733     (**********************************)
2734     (** Relation specific attributes **)
2735     (**********************************)
2736    
2737     isc_dyn_xcp_msg = 185;
2738    
2739     (************************************************)
2740     (** Cascading referential integrity values **)
2741     (************************************************)
2742     isc_dyn_foreign_key_update = 205;
2743     isc_dyn_foreign_key_delete = 206;
2744     isc_dyn_foreign_key_cascade = 207;
2745     isc_dyn_foreign_key_default = 208;
2746     isc_dyn_foreign_key_null = 209;
2747     isc_dyn_foreign_key_none = 210;
2748    
2749     (*************************)
2750     (** SQL role values **)
2751     (*************************)
2752     isc_dyn_def_sql_role = 211;
2753     isc_dyn_sql_role_name = 212;
2754     isc_dyn_grant_admin_options = 213;
2755     isc_dyn_del_sql_role = 214;
2756    
2757     (******************************)
2758     (** Last $dyn value assigned **)
2759     (******************************)
2760    
2761     isc_dyn_last_dyn_value = 216;
2762    
2763     (********************************************)
2764     (** Array slice description language (SDL) **)
2765     (********************************************)
2766    
2767     isc_sdl_version1 = 1;
2768     isc_sdl_eoc = -1;
2769     isc_sdl_relation = 2;
2770     isc_sdl_rid = 3;
2771     isc_sdl_field = 4;
2772     isc_sdl_fid = 5;
2773     isc_sdl_struct = 6;
2774     isc_sdl_variable = 7;
2775     isc_sdl_scalar = 8;
2776     isc_sdl_tiny_integer = 9;
2777     isc_sdl_short_integer = 10;
2778     isc_sdl_long_integer = 11;
2779     isc_sdl_literal = 12;
2780     isc_sdl_add = 13;
2781     isc_sdl_subtract = 14;
2782     isc_sdl_multiply = 15;
2783     isc_sdl_divide = 16;
2784     isc_sdl_negate = 17;
2785     isc_sdl_eql = 18;
2786     isc_sdl_neq = 19;
2787     isc_sdl_gtr = 20;
2788     isc_sdl_geq = 21;
2789     isc_sdl_lss = 22;
2790     isc_sdl_leq = 23;
2791     isc_sdl_and = 24;
2792     isc_sdl_or = 25;
2793     isc_sdl_not = 26;
2794     isc_sdl_while = 27;
2795     isc_sdl_assignment = 28;
2796     isc_sdl_label = 29;
2797     isc_sdl_leave = 30;
2798     isc_sdl_begin = 31;
2799     isc_sdl_end = 32;
2800     isc_sdl_do3 = 33;
2801     isc_sdl_do2 = 34;
2802     isc_sdl_do1 = 35;
2803     isc_sdl_element = 36;
2804    
2805     (**********************************************)
2806     (** International text interpretation values **)
2807     (**********************************************)
2808    
2809     isc_interp_eng_ascii = 0;
2810     isc_interp_jpn_sjis = 5;
2811     isc_interp_jpn_euc = 6;
2812    
2813     (******************************************)
2814     (** Scroll direction for isc_dsql_fetch2 **)
2815     (******************************************)
2816    
2817     isc_fetch_next = 0;
2818     isc_fetch_prior = 1;
2819     isc_fetch_first = 2;
2820     isc_fetch_last = 3;
2821     isc_fetch_absolute = 4;
2822     isc_fetch_relative = 5;
2823    
2824     (*********************)
2825     (** SQL definitions **)
2826     (*********************)
2827     SQL_VARYING = 448;
2828     SQL_TEXT = 452;
2829     SQL_DOUBLE = 480;
2830     SQL_FLOAT = 482;
2831     SQL_LONG = 496;
2832     SQL_SHORT = 500;
2833     SQL_TIMESTAMP = 510;
2834     SQL_BLOB = 520;
2835     SQL_D_FLOAT = 530;
2836     SQL_ARRAY = 540;
2837     SQL_QUAD = 550;
2838     SQL_TYPE_TIME = 560;
2839     SQL_TYPE_DATE = 570;
2840     SQL_INT64 = 580;
2841     SQL_DATE = SQL_TIMESTAMP;
2842    
2843     (*******************)
2844     (** Blob Subtypes **)
2845     (*******************)
2846    
2847     (** types less than zero are reserved for customer use **)
2848    
2849     isc_blob_untyped = 0;
2850    
2851     (** internal subtypes **)
2852    
2853     isc_blob_text = 1;
2854     isc_blob_blr = 2;
2855     isc_blob_acl = 3;
2856     isc_blob_ranges = 4;
2857     isc_blob_summary = 5;
2858     isc_blob_format = 6;
2859     isc_blob_tra = 7;
2860     isc_blob_extfile = 8;
2861    
2862     (** the range 20-30 is reserved for dBASE and Paradox types **)
2863    
2864     isc_blob_formatted_memo = 20;
2865     isc_blob_paradox_ole = 21;
2866     isc_blob_graphic = 22;
2867     isc_blob_dbase_ole = 23;
2868     isc_blob_typed_binary = 24;
2869    
2870     {$IFDEF IB5_ONLY}
2871     (** SQLDA_LENGTH is defined in C as a macro, but in Pascal we must defined it
2872     as a function... **)
2873     function SQLDA_LENGTH(n: Long): Long;
2874     {$ENDIF}
2875    
2876     (** XSQLDA_LENGTH is defined in C as a macro, but in Pascal we must defined it
2877     as a function... **)
2878     function XSQLDA_LENGTH(n: Long): Long;
2879    
2880     (** getb, putb, putbx are all defined in C as macros.
2881     Use functions and procedures for the functionality **)
2882     function getb (p: PBSTREAM): Char;
2883     function putb (x: Char; p: PBSTREAM): Int;
2884     function putbx (x: Char; p: PBSTREAM): Int;
2885    
2886     (*
2887     #define ADD_SPB_LENGTH(p, length) {*(p)++ = (length); \
2888     *(p)++ = (length) >> 8;}
2889    
2890     #define ADD_SPB_NUMERIC(p, data) {*(p)++ = (data); \
2891     *(p)++ = (data) >> 8; \
2892     *(p)++ = (data) >> 16; \
2893     *(p)++ = (data) >> 24;}
2894     *)
2895     procedure add_spb_length(var p: PChar; length: integer);
2896     procedure add_spb_numeric(var p: PChar; data: integer);
2897    
2898    
2899     implementation
2900    
2901     uses IBIntf, IB;
2902    
2903     {$IFDEF IB5_ONLY}
2904     function SQLDA_LENGTH(n: Long): Long;
2905     (* The C-macro reads like this:
2906     SQLDA_LENGTH(n) (sizeof (SQLDA) + (n-1) * sizeof (SQLVAR)) *)
2907     begin
2908     result := sizeof(TSQLDA) + ((n - 1) * sizeof(TSQLVAR));
2909     end;
2910     {$ENDIF}
2911    
2912    
2913     function XSQLDA_LENGTH(n: Long): Long;
2914     (* The C-macro reads like this:
2915     XSQLDA_LENGTH(n) (sizeof (XSQLDA) + (n-1) * sizeof (XSQLVAR)) *)
2916     begin
2917     result := SizeOf(TXSQLDA) + ((n - 1) * SizeOf(TXSQLVAR));
2918     end;
2919    
2920     function getb(p: PBSTREAM): Char;
2921     (* The C-macro reads like this:
2922     getb(p) (--(p)->bstr_cnt >= 0 ? *(p)->bstr_ptr++ & 0377: BLOB_get (p)) *)
2923     begin
2924     Dec(p^.bstr_cnt);
2925     if (p^.bstr_cnt >= 0) then begin
2926     result := Char(Int(p^.bstr_ptr^) and Int(0377));
2927     Inc(p^.bstr_ptr);
2928     end else
2929     result := Char(BLOB_get(p));
2930     end;
2931    
2932     function putb(x: Char; p: PBSTREAM): Int;
2933     (* The C-macro reads like this:
2934     putb(x,p) ((x == '\n' || (!(--(p)->bstr_cnt))) ? // then
2935     BLOB_put (x,p) : // else
2936     ((int) (*(p)->bstr_ptr++ = (unsigned) (x)))) *)
2937     begin
2938     Dec(p^.bstr_cnt);
2939     if (x = Chr(Int('n') - Int('a'))) or (p^.bstr_cnt = 0) then
2940     result := BLOB_put(x, p)
2941     else begin
2942     p^.bstr_ptr^ := Char(x);
2943     result := UInt(x);
2944     Inc(p^.bstr_ptr^);
2945     end;
2946     end;
2947    
2948     function putbx(x: Char; p: PBSTREAM): Int;
2949     (* The C-macro reads like this:
2950     putbx(x,p) ((!(--(p)->bstr_cnt)) ? // then
2951     BLOB_put (x,p) : // else
2952     ((int) (*(p)->bstr_ptr++ = (unsigned) (x)))) *)
2953     begin
2954     Dec(p^.bstr_cnt);
2955     if (p^.bstr_cnt = 0) then
2956     result := BLOB_put(x, p)
2957     else begin
2958     p^.bstr_ptr^ := Char(x);
2959     Inc(p^.bstr_ptr^);
2960     result := UInt(x);
2961     end;
2962     end;
2963    
2964     (*******************************************)
2965     (** Service manager functions **)
2966     (*******************************************)
2967    
2968    
2969     procedure add_spb_length(var p: PChar; length: integer);
2970     (*
2971     #define ADD_SPB_LENGTH(p, length) {*(p)++ = (length); \
2972     *(p)++ = (length) >> 8;}
2973     *)
2974     begin
2975     p^ := char(length);
2976     Inc (p);
2977     p^ := char(length shr 8);
2978     Inc (p);
2979     end;
2980    
2981     procedure add_spb_numeric(var p: PChar; data: integer);
2982     (*
2983     #define ADD_SPB_NUMERIC(p, data) {*(p)++ = (data); \
2984     *(p)++ = (data) >> 8; \
2985     *(p)++ = (data) >> 16; \
2986     *(p)++ = (data) >> 24;}
2987     *)
2988     begin
2989     p^ := char(data);
2990     Inc (p);
2991     p^ := char(data shr 8);
2992     Inc (p);
2993     p^ := char(data shr 16);
2994     Inc (p);
2995     p^ := char(data shr 24);
2996     Inc (p);
2997     end;
2998    
2999     end.
3000