ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/udr/client/IBHeader.pas
Revision: 56
Committed: Mon Mar 6 10:20:02 2017 UTC (7 years, 1 month ago) by tony
Content type: text/x-pascal
Original Path: ibx/trunk/fbintf/client/2.5/IBHeader.pas
File size: 95014 byte(s)
Log Message:
Committing updates for Trunk

File Contents

# User Rev Content
1 tony 45 {************************************************************************}
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     { 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     {************************************************************************}
33    
34     unit IBHeader;
35 tony 56 {$IFDEF MSWINDOWS}
36     {$DEFINE WINDOWS}
37     {$ENDIF}
38 tony 45
39     {$IFDEF FPC}
40 tony 56 {$mode delphi}
41     {$codepage UTF8}
42 tony 45 {$ENDIF}
43    
44     interface
45    
46     uses
47     IBExternals, IB;
48    
49    
50     const
51     ISC_TRUE = 1;
52     ISC_FALSE = 0;
53     DSQL_close = 1;
54     DSQL_drop = 2;
55    
56     const
57     SQLDA_VERSION1 = 1; (* pre V6.0 SQLDA *)
58     SQLDA_VERSION2 = 2; (* V6.0 SQLDA *)
59     SQL_DIALECT_V5 = 1; (* meaning is same as DIALECT_xsqlda *)
60     SQL_DIALECT_V6_TRANSITION = 2; (* flagging anything that is delimited
61     by double quotes as an error and
62     flagging keyword DATE as an error *)
63     SQL_DIALECT_V6 = 3; (* supports SQL delimited identifier,
64     SQLDATE/DATE, TIME, TIMESTAMP,
65     CURRENT_DATE, CURRENT_TIME,
66     CURRENT_TIMESTAMP, and 64-bit exact
67     numeric type *)
68     SQL_DIALECT_CURRENT = SQL_DIALECT_V6; (* latest IB DIALECT *)
69    
70    
71     type
72     (**********************************)
73     (** InterBase Handle Definitions **)
74     (**********************************)
75     TISC_ATT_HANDLE = FB_API_HANDLE;
76     PISC_ATT_HANDLE = ^TISC_ATT_HANDLE;
77     TISC_BLOB_HANDLE = FB_API_HANDLE;
78     PISC_BLOB_HANDLE = ^TISC_BLOB_HANDLE;
79     TISC_DB_HANDLE = FB_API_HANDLE;
80     PISC_DB_HANDLE = ^TISC_DB_HANDLE;
81     TISC_FORM_HANDLE = FB_API_HANDLE;
82     PISC_FORM_HANDLE = ^TISC_FORM_HANDLE;
83     TISC_REQ_HANDLE = FB_API_HANDLE;
84     PISC_REQ_HANDLE = ^TISC_REQ_HANDLE;
85     TISC_STMT_HANDLE = FB_API_HANDLE;
86     PISC_STMT_HANDLE = ^TISC_STMT_HANDLE;
87     TISC_SVC_HANDLE = FB_API_HANDLE;
88     PISC_SVC_HANDLE = ^TISC_SVC_HANDLE;
89     TISC_TR_HANDLE = FB_API_HANDLE;
90     PISC_TR_HANDLE = ^TISC_TR_HANDLE;
91     TISC_WIN_HANDLE = FB_API_HANDLE;
92     PISC_WIN_HANDLE = ^TISC_WIN_HANDLE;
93     TISC_CALLBACK = procedure;
94     ISC_SVC_HANDLE = ISC_LONG;
95    
96     (*******************************************************************)
97     (* Time & Date Support *)
98     (*******************************************************************)
99     const
100     TIME_SECONDS_PRECISION = 10000;
101     TIME_SECONDS_PRECISION_SCALE = -4;
102    
103     type
104 tony 56 PPByte = ^PByte;
105 tony 45 ISC_DATE = Long;
106     PISC_DATE = ^ISC_DATE;
107     ISC_TIME = ULong;
108     PISC_TIME = ^ISC_TIME;
109     TISC_TIMESTAMP = record
110     timestamp_date: ISC_DATE;
111     timestamp_time: ISC_TIME;
112     end;
113     PISC_TIMESTAMP = ^TISC_TIMESTAMP;
114    
115     TISC_ARRAY_BOUND = record
116     array_bound_lower : short;
117     array_bound_upper : short;
118     end;
119     PISC_ARRAY_BOUND = ^TISC_ARRAY_BOUND;
120 tony 47 TISC_ARRAY_DESC = record
121 tony 45 array_desc_dtype : UChar;
122 tony 56 array_desc_scale : ShortInt;
123 tony 45 array_desc_length : UShort;
124 tony 56 array_desc_field_name : array[0..31] of AnsiChar;
125     array_desc_relation_name : array[0..31] of AnsiChar;
126 tony 45 array_desc_dimensions : Short;
127     array_desc_flags : Short;
128     array_desc_bounds : array[0..15] of TISC_ARRAY_BOUND;
129     end; // TISC_ARRAY_DESC
130     PISC_ARRAY_DESC = ^TISC_ARRAY_DESC;
131    
132     TISC_BLOB_DESC = record
133     blob_desc_subtype : Short;
134     blob_desc_charset : Short;
135     blob_desc_segment_size : Short;
136 tony 56 blob_desc_field_name : array[0..31] of AnsiChar;
137     blob_desc_relation_name : array[0..31] of AnsiChar;
138 tony 45 end; // TISC_BLOB_DESC
139     PISC_BLOB_DESC = ^TISC_BLOB_DESC;
140    
141     (*****************************)
142     (** Blob control structure **)
143     (*****************************)
144     TISC_BLOB_CTL_SOURCE_FUNCTION = function: ISC_STATUS; // ISC_FAR
145     PISC_BLOB_CTL = ^TISC_BLOB_CTL; // ISC_FAR
146     TISC_BLOB_CTL = record
147     (** Source filter **)
148     ctl_source : TISC_BLOB_CTL_SOURCE_FUNCTION;
149     (** Argument to pass to source filter **)
150     ctl_source_handle : PISC_BLOB_CTL;
151     ctl_to_sub_type : Short; (** Target type **)
152     ctl_from_sub_type : Short; (** Source type **)
153     ctl_buffer_length : UShort; (** Length of buffer **)
154     ctl_segment_length : UShort; (** Length of current segment **)
155     ctl_bpb_length : UShort; (** Length of blob parameter **)
156     (** block **)
157 tony 56 ctl_bpb : PByte; (** Address of blob parameter **)
158 tony 45 (** block **)
159     ctl_buffer : PUChar; (** Address of segment buffer **)
160     ctl_max_segment : ISC_LONG; (** Length of longest segment **)
161     ctl_number_segments : ISC_LONG; (** Total number of segments **)
162     ctl_total_length : ISC_LONG; (** Total length of blob **)
163     ctl_status : PISC_STATUS; (** Address of status vector **)
164     ctl_data : array[0..7] of long; (** Application specific data **)
165     end;
166     (*****************************)
167     (** Blob stream definitions **)
168     (*****************************)
169     TBSTREAM = record
170     bstr_blob : PVoid; (** Blob handle **)
171 tony 56 bstr_buffer : PByte; (** Address of buffer **)
172     bstr_ptr : PByte; (** Next character **)
173 tony 45 bstr_length : Short; (** Length of buffer **)
174     bstr_cnt : Short; (** Characters in buffer **)
175     bstr_mode : Char; (** (mode) ? OUTPUT : INPUT **)
176     end;
177     PBSTREAM = ^TBSTREAM;
178    
179     (*****************************)
180     (** Dynamic SQL definitions **)
181     (*****************************)
182     {$IFDEF IB5_ONLY}
183     TSQLVAR = record
184     sqltype : Short;
185     sqllen : Short;
186 tony 56 sqldata : PByte;
187 tony 45 sqlind : PShort;
188     sqlname_length : Short;
189 tony 56 sqlname : array[0..29] of AnsiChar;
190 tony 45 end;
191     PSQLVAR = ^TSQLVAR;
192    
193     TSQLDA = record
194 tony 56 sqldaid : array[0..7] of AnsiChar;
195 tony 45 sqldabc : ISC_LONG;
196     sqln : Short;
197     sqld : Short;
198     sqlvar : array[0..0] of TSQLVAR;
199     end;
200     PSQLDA = ^TSQLDA;
201     {$ENDIF}
202    
203     (********************************)
204     (** Declare the extended SQLDA **)
205     (********************************)
206     TXSQLVAR = record
207     sqltype : Short; (** datatype of field **)
208     sqlscale : Short; (** scale factor **)
209     sqlsubtype : Short; (** datatype subtype - BLOBs **)
210     (** & text types only **)
211     sqllen : Short; (** length of data area **)
212 tony 56 sqldata : PByte; (** address of data **)
213 tony 45 sqlind : PShort; (** address of indicator **)
214     (** variable **)
215     sqlname_length : Short; (** length of sqlname field **)
216     (** name of field, name length + space for NULL **)
217 tony 56 sqlname : array[0..31] of AnsiChar;
218 tony 45 relname_length : Short; (** length of relation name **)
219     (** field's relation name + space for NULL **)
220 tony 56 relname : array[0..31] of AnsiChar;
221 tony 45 ownname_length : Short; (** length of owner name **)
222     (** relation's owner name + space for NULL **)
223 tony 56 ownname : array[0..31] of AnsiChar;
224 tony 45 aliasname_length : Short; (** length of alias name **)
225     (** relation's alias name + space for NULL **)
226 tony 56 aliasname : array[0..31] of AnsiChar;
227 tony 45 end; // TXSQLVAR
228     PXSQLVAR = ^TXSQLVAR;
229    
230     TXSQLDA = record
231     version : Short; (** version of this XSQLDA **)
232     (** XSQLDA name field **)
233 tony 56 sqldaid : array[0..7] of AnsiChar;
234 tony 45 sqldabc : ISC_LONG; (** length in bytes of SQLDA **)
235     sqln : Short; (** number of fields allocated **)
236     sqld : Short; (** actual number of fields **)
237     (** first field address **)
238     sqlvar : array[0..0] of TXSQLVAR;
239     end; // TXSQLDA
240     PXSQLDA = ^TXSQLDA;
241    
242     (********************************************************)
243     (** This record type is for passing arguments to **)
244     (** isc_start_transaction (See docs) **)
245     (********************************************************)
246     TISC_START_TRANS = record
247     db_handle : PISC_DB_HANDLE;
248     tpb_length : UShort;
249 tony 56 tpb_address : PByte;
250 tony 45 end;
251    
252     (********************************************************)
253     (** This record type is for passing arguments to **)
254     (** isc_start_multiple (see docs) **)
255     (********************************************************)
256     TISC_TEB = record
257     db_handle : PISC_DB_HANDLE;
258     tpb_length : Long;
259 tony 56 tpb_address : PByte;
260 tony 45 end;
261     PISC_TEB = ^TISC_TEB;
262     TISC_TEB_ARRAY = array[0..0] of TISC_TEB;
263     PISC_TEB_ARRAY = ^TISC_TEB_ARRAY;
264    
265     (*****************************)
266     (** OSRI database functions **)
267     (*****************************)
268    
269     Tisc_attach_database = function (status_vector : PISC_STATUS;
270     db_name_length : Short;
271 tony 56 db_name : PAnsiChar;
272 tony 45 db_handle : PISC_DB_HANDLE;
273 tony 56 parm_buffer_length : Short;
274     parm_buffer : PByte): ISC_STATUS;
275 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
276    
277     Tisc_array_gen_sdl = function (status_vector : PISC_STATUS;
278     isc_array_desc : PISC_ARRAY_DESC;
279     isc_arg3 : PShort;
280 tony 56 isc_arg4 : PByte;
281 tony 45 isc_arg5 : PShort): ISC_STATUS;
282     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
283    
284     Tisc_array_get_slice = function (status_vector : PISC_STATUS;
285     db_handle : PISC_DB_HANDLE;
286     trans_handle : PISC_TR_HANDLE;
287     array_id : PISC_QUAD;
288     descriptor : PISC_ARRAY_DESC;
289     dest_array : PVoid;
290     slice_length : PISC_LONG): ISC_STATUS;
291     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
292    
293     Tisc_array_lookup_bounds = function (status_vector : PISC_STATUS;
294     db_handle : PISC_DB_HANDLE;
295     trans_handle : PISC_TR_HANDLE;
296     table_name,
297 tony 56 column_name : PAnsiChar;
298 tony 45 descriptor : PISC_ARRAY_DESC): ISC_STATUS;
299     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
300    
301     Tisc_array_lookup_desc = function (status_vector : PISC_STATUS;
302     db_handle : PISC_DB_HANDLE;
303     trans_handle : PISC_TR_HANDLE;
304     table_name,
305 tony 56 column_name : PByte;
306 tony 45 descriptor : PISC_ARRAY_DESC): ISC_STATUS;
307     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
308    
309     Tisc_array_set_desc = function (status_vector : PISC_STATUS;
310 tony 56 table_name : PByte;
311     column_name : PByte;
312 tony 45 sql_dtype,
313     sql_length,
314     sql_dimensions : PShort;
315     descriptor : PISC_ARRAY_DESC): ISC_STATUS;
316     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
317    
318     Tisc_array_put_slice = function (status_vector : PISC_STATUS;
319     db_handle : PISC_DB_HANDLE;
320     trans_handle : PISC_TR_HANDLE;
321     array_id : PISC_QUAD;
322     descriptor : PISC_ARRAY_DESC;
323     source_array : PVoid;
324     slice_length : PISC_LONG): ISC_STATUS;
325     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
326    
327     Tisc_blob_default_desc = procedure (descriptor : PISC_BLOB_DESC;
328     table_name : PUChar;
329     column_name : PUChar);
330     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
331    
332     Tisc_blob_gen_bpb = function (status_vector : PISC_STATUS;
333     to_descriptor,
334     from_descriptor : PISC_BLOB_DESC;
335     bpb_buffer_length : UShort;
336     bpb_buffer : PUChar;
337     bpb_length : PUShort): ISC_STATUS;
338     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
339    
340     Tisc_blob_info = function (status_vector : PISC_STATUS;
341     blob_handle : PISC_BLOB_HANDLE;
342     item_list_buffer_length : Short;
343 tony 56 item_list_buffer : PByte;
344 tony 45 result_buffer_length : Short;
345 tony 56 result_buffer : PByte): ISC_STATUS;
346 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
347    
348     Tisc_blob_lookup_desc = function (status_vector : PISC_STATUS;
349     db_handle : PISC_DB_HANDLE;
350     trans_handle : PISC_TR_HANDLE;
351     table_name,
352 tony 56 column_name : PAnsiChar;
353 tony 45 descriptor : PISC_BLOB_DESC;
354     global : PUChar): ISC_STATUS;
355     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
356    
357     Tisc_blob_set_desc = function (status_vector : PISC_STATUS;
358     table_name,
359 tony 56 column_name : PAnsiChar;
360 tony 45 subtype,
361     charset,
362     segment_size : Short;
363     descriptor : PISC_BLOB_DESC): ISC_STATUS;
364     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
365    
366     Tisc_cancel_blob = function (status_vector : PISC_STATUS;
367     blob_handle : PISC_BLOB_HANDLE): ISC_STATUS;
368     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
369    
370     Tisc_cancel_events = function (status_vector : PISC_STATUS;
371     db_handle : PISC_DB_HANDLE;
372     event_id : PISC_LONG): ISC_STATUS;
373     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
374    
375     Tisc_close_blob = function (status_vector : PISC_STATUS;
376     blob_handle : PISC_BLOB_HANDLE): ISC_STATUS;
377     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
378    
379     Tisc_commit_retaining = function (status_vector : PISC_STATUS;
380     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
381     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
382    
383     Tisc_commit_transaction = function (status_vector : PISC_STATUS;
384     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
385     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
386    
387     Tisc_create_blob = function (status_vector : PISC_STATUS;
388     db_handle : PISC_DB_HANDLE;
389     tran_handle : PISC_TR_HANDLE;
390     blob_handle : PISC_BLOB_HANDLE;
391     blob_id : PISC_QUAD): ISC_STATUS;
392     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
393    
394     Tisc_create_blob2 = function (status_vector : PISC_STATUS;
395     db_handle : PISC_DB_HANDLE;
396     tran_handle : PISC_TR_HANDLE;
397     blob_handle : PISC_BLOB_HANDLE;
398     blob_id : PISC_QUAD;
399     bpb_length : Short;
400 tony 56 bpb_address : PByte): ISC_STATUS;
401 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
402    
403     Tisc_create_database = function (status_vector : PISC_STATUS;
404     isc_arg2 : Short;
405 tony 56 isc_arg3 : PByte;
406 tony 45 db_handle : PISC_DB_HANDLE;
407     isc_arg5 : Short;
408 tony 56 isc_arg6 : PByte;
409 tony 45 isc_arg7 : Short): ISC_STATUS;
410     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
411    
412     Tisc_database_info = function (status_vector : PISC_STATUS;
413     db_handle : PISC_DB_HANDLE;
414     item_list_buffer_length : Short;
415 tony 56 item_list_buffer : PByte;
416 tony 45 result_buffer_length : Short;
417 tony 56 result_buffer : PByte): ISC_STATUS;
418 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
419    
420     Tisc_decode_date = procedure (ib_date: PISC_QUAD;
421     tm_date: PCTimeStructure);
422     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
423    
424     Tisc_decode_sql_date = procedure (ib_date: PISC_DATE;
425     tm_date: PCTimeStructure);
426     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
427    
428     Tisc_decode_sql_time = procedure (ib_time: PISC_TIME;
429     tm_date: PCTimeStructure);
430     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
431    
432     Tisc_decode_timestamp = procedure (ib_timestamp: PISC_TIMESTAMP;
433     tm_date: PCTimeStructure);
434     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
435    
436     Tisc_detach_database = function (status_vector : PISC_STATUS;
437     db_handle : PISC_DB_HANDLE): ISC_STATUS;
438     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
439    
440     Tisc_drop_database = function (status_vector : PISC_STATUS;
441     db_handle : PISC_DB_HANDLE): ISC_STATUS;
442     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
443    
444     Tisc_dsql_allocate_statement = function (status_vector : PISC_STATUS;
445     db_handle : PISC_DB_HANDLE;
446     stmt_handle : PISC_STMT_HANDLE): ISC_STATUS;
447     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
448    
449     Tisc_dsql_alloc_statement2 = function (status_vector : PISC_STATUS;
450     db_handle : PISC_DB_HANDLE;
451     stmt_handle : PISC_STMT_HANDLE): ISC_STATUS;
452     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
453    
454     Tisc_dsql_describe = function (status_vector : PISC_STATUS;
455     stmt_handle : PISC_STMT_HANDLE;
456     dialect : UShort;
457     xsqlda : PXSQLDA): ISC_STATUS;
458     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
459    
460     Tisc_dsql_describe_bind = function (status_vector : PISC_STATUS;
461     stmt_handle : PISC_STMT_HANDLE;
462     dialect : UShort;
463     xsqlda : PXSQLDA): ISC_STATUS;
464     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
465    
466     Tisc_dsql_exec_immed2 = function (status_vector : PISC_STATUS;
467     db_handle : PISC_DB_HANDLE;
468     tran_handle : PISC_TR_HANDLE;
469     length : UShort;
470 tony 56 statement : PByte;
471 tony 45 dialect : UShort;
472     in_xsqlda,
473     out_xsqlda : PXSQLDA): ISC_STATUS;
474     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
475    
476     Tisc_dsql_execute = function (status_vector : PISC_STATUS;
477     tran_handle : PISC_TR_HANDLE;
478     stmt_handle : PISC_STMT_HANDLE;
479     dialect : UShort;
480     xsqlda : PXSQLDA): ISC_STATUS;
481     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
482    
483     Tisc_dsql_execute2 = function (status_vector : PISC_STATUS;
484     tran_handle : PISC_TR_HANDLE;
485     stmt_handle : PISC_STMT_HANDLE;
486     dialect : UShort;
487     in_xsqlda,
488     out_xsqlda : PXSQLDA): ISC_STATUS;
489     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
490    
491     Tisc_dsql_execute_immediate = function (status_vector : PISC_STATUS;
492     db_handle : PISC_DB_HANDLE;
493     tran_handle : PISC_TR_HANDLE;
494     length : UShort;
495 tony 56 statement : PAnsiChar;
496 tony 45 dialect : UShort;
497     xsqlda : PXSQLDA): ISC_STATUS;
498     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
499    
500     Tisc_dsql_fetch = function (status_vector : PISC_STATUS;
501     stmt_handle : PISC_STMT_HANDLE;
502     dialect : UShort;
503     xsqlda : PXSQLDA): ISC_STATUS;
504     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
505    
506     (*$ifdef SCROLLABLE_CURSORS*)
507     Tisc_dsql_fetch2 = function (status_vector : PISC_STATUS;
508     stmt_handle : PISC_STMT_HANDLE;
509     dialect : UShort;
510     xsqlda : PXSQLDA;
511     isc_arg5 : UShort;
512     isc_arg6 : Long): ISC_STATUS;
513     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
514     (*$endif*)
515    
516     Tisc_dsql_finish = function (db_handle : PISC_DB_HANDLE): ISC_STATUS;
517     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
518    
519     Tisc_dsql_free_statement = function (status_vector : PISC_STATUS;
520     stmt_handle : PISC_STMT_HANDLE;
521     options : UShort): ISC_STATUS;
522     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
523    
524     Tisc_dsql_insert = function (status_vector : PISC_STATUS;
525     stmt_handle : PISC_STMT_HANDLE;
526     arg3 : UShort;
527     xsqlda : PXSQLDA): ISC_STATUS;
528     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
529    
530     Tisc_dsql_prepare = function (status_vector : PISC_STATUS;
531     tran_handle : PISC_TR_HANDLE;
532     stmt_handle : PISC_STMT_HANDLE;
533     length : UShort;
534 tony 56 statement : PAnsiChar;
535 tony 45 dialect : UShort;
536     xsqlda : PXSQLDA): ISC_STATUS;
537     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
538    
539     Tisc_dsql_set_cursor_name = function (status_vector : PISC_STATUS;
540     stmt_handle : PISC_STMT_HANDLE;
541 tony 56 cursor_name : PAnsiChar;
542 tony 45 _type : UShort): ISC_STATUS;
543     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
544    
545     Tisc_dsql_sql_info = function (status_vector : PISC_STATUS;
546     stmt_handle : PISC_STMT_HANDLE;
547     item_length : Short;
548 tony 56 items : PByte;
549 tony 45 buffer_length : Short;
550 tony 56 buffer : PByte): ISC_STATUS;
551 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
552    
553     Tisc_encode_date = procedure (tm_date : PCTimeStructure;
554     ib_date : PISC_QUAD);
555     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
556    
557     Tisc_encode_sql_date = procedure (tm_date : PCTimeStructure;
558     ib_date : PISC_DATE);
559     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
560    
561     Tisc_encode_sql_time = procedure (tm_date : PCTimeStructure;
562     ib_time : PISC_TIME);
563     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
564    
565     Tisc_encode_timestamp = procedure (tm_date : PCTimeStructure;
566     ib_timestamp : PISC_TIMESTAMP);
567     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
568    
569 tony 56 Tisc_event_block = function (event_buffer : PPByte;
570     result_buffer : PPByte;
571 tony 45 id_count : UShort):ISC_LONG;
572 tony 56 cdecl varargs;
573 tony 45
574     Tisc_event_counts = procedure (status_vector : PISC_LONG;
575     buffer_length : Short;
576 tony 56 event_buffer : PByte;
577     result_buffer : PByte);
578 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
579    
580 tony 56 Tisc_expand_dpb = procedure (dpb : PPByte;
581 tony 45 dpb_length : PShort;
582     item_list : array of Pointer);
583     cdecl;
584    
585 tony 56 Tisc_modify_dpb = function (dpb : PPByte;
586 tony 45 isc_arg2,
587     isc_arg3 : PShort;
588     isc_arg4 : UShort;
589 tony 56 isc_arg5 : PByte;
590 tony 45 isc_arg6 : Short): Int;
591     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
592    
593 tony 56 Tisc_free = function (isc_arg1 : PByte): ISC_LONG;
594 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
595    
596     Tisc_get_segment = function (status_vector : PISC_STATUS;
597     blob_handle : PISC_BLOB_HANDLE;
598     actual_seg_length : PUShort;
599     seg_buffer_length : UShort;
600 tony 56 seg_buffer : PByte): ISC_STATUS;
601 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
602    
603     Tisc_get_slice = function (status_vector : PISC_STATUS;
604     db_handle : PISC_DB_HANDLE;
605     tran_handle : PISC_TR_HANDLE;
606     isc_arg4 : PISC_QUAD;
607     isc_arg5 : Short;
608 tony 56 isc_arg6 : PByte;
609 tony 45 isc_arg7 : Short;
610     isc_arg8 : PISC_LONG;
611     isc_arg9 : ISC_LONG;
612     isc_arg10 : PVoid;
613     isc_arg11 : PISC_LONG): ISC_STATUS;
614     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
615    
616 tony 56 Tisc_interprete = function (buffer : PByte;
617 tony 45 status_vector : PPISC_STATUS): ISC_STATUS;
618     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
619    
620     Tisc_open_blob = function (status_vector : PISC_STATUS;
621     db_handle : PISC_DB_HANDLE;
622     tran_handle : PISC_TR_HANDLE;
623     blob_handle : PISC_BLOB_HANDLE;
624     blob_id : PISC_QUAD): ISC_STATUS;
625     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
626    
627     Tisc_open_blob2 = function (status_vector : PISC_STATUS;
628     db_handle : PISC_DB_HANDLE;
629     tran_handle : PISC_TR_HANDLE;
630     blob_handle : PISC_BLOB_HANDLE;
631     blob_id : PISC_QUAD;
632     bpb_length : Short;
633 tony 56 bpb_buffer : PByte): ISC_STATUS;
634 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
635    
636     Tisc_prepare_transaction2 = function (status_vector : PISC_STATUS;
637     tran_handle : PISC_TR_HANDLE;
638     msg_length : Short;
639 tony 56 msg : PByte): ISC_STATUS;
640 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
641    
642     Tisc_print_sqlerror = procedure (sqlcode : Short;
643     status_vector : PISC_STATUS);
644     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
645    
646     Tisc_print_status = function (status_vector : PISC_STATUS): ISC_STATUS;
647     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
648    
649     Tisc_put_segment = function (status_vector : PISC_STATUS;
650     blob_handle : PISC_BLOB_HANDLE;
651     seg_buffer_len : UShort;
652 tony 56 seg_buffer : PByte): ISC_STATUS;
653 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
654    
655     Tisc_put_slice = function (status_vector : PISC_STATUS;
656     db_handle : PISC_DB_HANDLE;
657     tran_handle : PISC_TR_HANDLE;
658     isc_arg4 : PISC_QUAD;
659     isc_arg5 : Short;
660 tony 56 isc_arg6 : PByte;
661 tony 45 isc_arg7 : Short;
662     isc_arg8 : PISC_LONG;
663     isc_arg9 : ISC_LONG;
664     isc_arg10 : PVoid): ISC_STATUS;
665     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
666    
667     Tisc_que_events = function (status_vector : PISC_STATUS;
668     db_handle : PISC_DB_HANDLE;
669     event_id : PISC_LONG;
670     length : Short;
671 tony 56 event_buffer : PByte;
672 tony 45 event_function : TISC_CALLBACK;
673     event_function_arg : PVoid): ISC_STATUS;
674     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
675    
676     Tisc_rollback_retaining = function (status_vector : PISC_STATUS;
677     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
678     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
679    
680     Tisc_rollback_transaction = function (status_vector : PISC_STATUS;
681     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
682     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
683    
684     Tisc_start_multiple = function (status_vector : PISC_STATUS;
685     tran_handle : PISC_TR_HANDLE;
686     db_handle_count : Short;
687     teb_vector_address : PISC_TEB): ISC_STATUS;
688     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
689    
690     Tisc_start_transaction = function (status_vector : PISC_STATUS;
691     tran_handle : PISC_TR_HANDLE;
692     db_handle_count : Short;
693     db_handle : PISC_DB_HANDLE;
694     tpb_length : UShort;
695 tony 56 tpb_address : PByte): ISC_STATUS;
696 tony 45 cdecl;
697    
698     Tisc_sqlcode = function (status_vector : PISC_STATUS): ISC_LONG;
699     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
700    
701    
702     Tisc_sql_interprete = procedure (sqlcode : Short;
703 tony 56 buffer : PAnsiChar;
704 tony 45 buffer_length : Short);
705     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
706    
707     Tisc_transaction_info = function (status_vector : PISC_STATUS;
708     tran_handle : PISC_TR_HANDLE;
709     item_list_buffer_length : Short;
710 tony 56 item_list_buffer : PByte;
711 tony 45 result_buffer_length : Short;
712 tony 56 result_buffer : PByte): ISC_STATUS;
713 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
714    
715     Tisc_transact_request = function (status_vector : PISC_STATUS;
716     db_handle : PISC_DB_HANDLE;
717     tran_handle : PISC_TR_HANDLE;
718     isc_arg4 : UShort;
719 tony 56 isc_arg5 : PByte;
720 tony 45 isc_arg6 : UShort;
721 tony 56 isc_arg7 : PByte;
722 tony 45 isc_arg8 : UShort;
723 tony 56 isc_arg9 : PByte): ISC_STATUS;
724 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
725    
726 tony 56 Tisc_vax_integer = function (buffer : PByte;
727 tony 45 length : Short): ISC_LONG;
728     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
729    
730 tony 56 Tisc_portable_integer = function (buffer : PByte;
731 tony 45 length : Short): ISC_INT64;
732     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
733    
734     (***************************************)
735     (** Security Functions and structures **)
736     (***************************************)
737    
738     const
739     sec_uid_spec = $01;
740     sec_gid_spec = $02;
741     sec_server_spec = $04;
742     sec_password_spec = $08;
743     sec_group_name_spec = $10;
744     sec_first_name_spec = $20;
745     sec_middle_name_spec = $40;
746     sec_last_name_spec = $80;
747     sec_dba_user_name_spec = $100;
748     sec_dba_password_spec = $200;
749    
750     sec_protocol_tcpip = 1;
751     sec_protocol_netbeui = 2;
752     sec_protocol_spx = 3;
753     sec_protocol_local = 4;
754    
755     type
756     TUserSecData = record
757     sec_flags: Short; (** which fields are specified **)
758     uid: Int; (** the user's id **)
759     gid: int; (** the user's group id **)
760     protocol: Int; (** protocol to use for connection **)
761 tony 56 server: PByte; (** server to administer **)
762     user_name: PByte; (** the user's name **)
763     password: PByte; (** the user's password **)
764     group_name: PByte; (** the group name **)
765     first_name: PByte; (** the user's first name **)
766     middle_name: PByte; (** the user's middle name **)
767     last_name: PByte; (** the user's last name **)
768     dba_user_name: PByte; (** the dba user name **)
769     dba_password: PByte; (** the dba password **)
770 tony 45 end;
771     PUserSecData = ^TUserSecData;
772    
773     Tisc_add_user = function (status_vector : PISC_STATUS;
774     user_sec_data : PUserSecData): ISC_STATUS;
775     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
776    
777     Tisc_delete_user = function (status_vector : PISC_STATUS;
778     user_sec_data : PUserSecData): ISC_STATUS;
779     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
780    
781     Tisc_modify_user = function (status_vector : PISC_STATUS;
782     user_sec_data : PUserSecData): ISC_STATUS;
783     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
784    
785     (************************************)
786     (** Other OSRI functions **)
787     (************************************)
788    
789     Tisc_compile_request = function (status_vector : PISC_STATUS;
790     db_handle : PISC_DB_HANDLE;
791     request_handle : PISC_REQ_HANDLE;
792     isc_arg4 : Short;
793 tony 56 isc_arg5 : PByte): ISC_STATUS;
794 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
795    
796     Tisc_compile_request2 = function (status_vector : PISC_STATUS;
797     db_handle : PISC_DB_HANDLE;
798     request_handle : PISC_REQ_HANDLE;
799     isc_arg4 : Short;
800 tony 56 isc_arg5 : PByte): ISC_STATUS;
801 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
802    
803     Tisc_ddl = function (status_vector : PISC_STATUS;
804     db_handle : PISC_DB_HANDLE;
805     tran_handle : PISC_TR_HANDLE;
806     isc_arg4 : Short;
807 tony 56 isc_arg5 : PByte): ISC_STATUS;
808 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
809    
810     Tisc_prepare_transaction = function (status_vector : PISC_STATUS;
811     tran_handle : PISC_TR_HANDLE): ISC_STATUS;
812     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
813    
814    
815     Tisc_receive = function (status_vector : PISC_STATUS;
816     request_handle : PISC_REQ_HANDLE;
817     isc_arg3,
818     isc_arg4 : Short;
819     isc_arg5 : PVoid;
820     isc_arg6 : Short): ISC_STATUS;
821     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
822    
823     Tisc_receive2 = function (status_vector : PISC_STATUS;
824     request_handle : PISC_REQ_HANDLE;
825     isc_arg3,
826     isc_arg4 : Short;
827     isc_arg5 : PVoid;
828     isc_arg6,
829     isc_arg7 : Short;
830     isc_arg8 : Long): ISC_STATUS;
831     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
832    
833     Tisc_reconnect_transaction = function (status_vector : PISC_STATUS;
834     db_handle : PISC_DB_HANDLE;
835     tran_handle : PISC_TR_HANDLE;
836     isc_arg4 : Short;
837 tony 56 isc_arg5 : PByte): ISC_STATUS;
838 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
839    
840     Tisc_release_request = function (status_vector : PISC_STATUS;
841     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
842     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
843    
844     Tisc_request_info = function (status_vector : PISC_STATUS;
845     request_handle : PISC_REQ_HANDLE;
846     isc_arg3 : Short;
847     isc_arg4 : Short;
848 tony 56 isc_arg5 : PByte;
849 tony 45 isc_arg6 : Short;
850 tony 56 isc_arg7 : PByte): ISC_STATUS;
851 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
852    
853     Tisc_seek_blob = function (status_vector : PISC_STATUS;
854     blob_handle : PISC_BLOB_HANDLE;
855     isc_arg3 : Short;
856     isc_arg4 : ISC_LONG;
857     isc_arg5 : PISC_LONG): ISC_STATUS;
858     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
859    
860     Tisc_send = function (status_vector : PISC_STATUS;
861     request_handle : PISC_REQ_HANDLE;
862     isc_arg3,
863     isc_arg4 : Short;
864     isc_arg5 : PVoid;
865     isc_arg6 : Short): ISC_STATUS;
866     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
867    
868     Tisc_start_and_send = function (status_vector : PISC_STATUS;
869     request_handle : PISC_REQ_HANDLE;
870     tran_handle : PISC_TR_HANDLE;
871     isc_arg4,
872     isc_arg5 : Short;
873     isc_arg6 : PVoid;
874     isc_arg7 : Short): ISC_STATUS;
875     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
876    
877     Tisc_start_request = function (status_vector : PISC_STATUS;
878     request_handle : PISC_REQ_HANDLE;
879     tran_handle : PISC_TR_HANDLE;
880     isc_arg4 : Short): ISC_STATUS;
881     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
882    
883     Tisc_unwind_request = function (status_vector : PISC_STATUS;
884     tran_handle : PISC_TR_HANDLE;
885     isc_arg3 : Short): ISC_STATUS;
886     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
887    
888     Tisc_wait_for_event = function (status_vector : PISC_STATUS;
889     db_handle : PISC_DB_HANDLE;
890     length : Short;
891     event_buffer,
892 tony 56 result_buffer : PByte): ISC_STATUS;
893 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
894    
895     (*******************************)
896     (** Other Sql functions **)
897     (*******************************)
898     {$IFDEF IB5_ONLY}
899     Tisc_close = function (status_vector : PISC_STATUS;
900 tony 56 isc_arg2 : PByte): ISC_STATUS;
901 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
902    
903     Tisc_declare = function (status_vector : PISC_STATUS;
904     isc_arg2,
905 tony 56 isc_arg3 : PByte): ISC_STATUS;
906 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
907    
908     Tisc_describe = function (status_vector : PISC_STATUS;
909 tony 56 isc_arg2 : PByte;
910 tony 45 isc_arg3 : PSQLDA): ISC_STATUS;
911     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
912    
913     Tisc_describe_bind = function (status_vector : PISC_STATUS;
914 tony 56 isc_arg2 : PByte;
915 tony 45 isc_arg3 : PSQLDA): ISC_STATUS;
916     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
917    
918     Tisc_execute = function (status_vector : PISC_STATUS;
919     tran_handle : PISC_TR_HANDLE;
920 tony 56 isc_arg3 : PByte;
921 tony 45 isc_arg4 : PSQLDA): ISC_STATUS;
922     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
923    
924     Tisc_execute_immediate = function (status_vector : PISC_STATUS;
925     db_handle : PISC_DB_HANDLE;
926     tran_handle : PISC_TR_HANDLE;
927     isc_arg4 : PShort;
928 tony 56 isc_arg5 : PByte): ISC_STATUS;
929 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
930    
931     Tisc_fetch = function (status_vector : PISC_STATUS;
932 tony 56 isc_arg2 : PByte;
933 tony 45 isc_arg3 : PSQLDA): ISC_STATUS;
934     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
935    
936     Tisc_open = function (status_vector : PISC_STATUS;
937     tran_handle : PISC_TR_HANDLE;
938 tony 56 isc_arg3 : PByte;
939 tony 45 isc_arg4 : PSQLDA): ISC_STATUS;
940     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
941    
942     Tisc_prepare = function (status_vector : PISC_STATUS;
943     db_handle : PISC_DB_HANDLE;
944     tran_handle : PISC_TR_HANDLE;
945 tony 56 isc_arg4 : PByte;
946 tony 45 isc_arg5 : PShort;
947 tony 56 isc_arg6 : PByte;
948 tony 45 isc_arg7 : PSQLDA): ISC_STATUS;
949     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
950     {$ELSE}
951     Tisc_close = function (status_vector : PISC_STATUS;
952 tony 56 isc_arg2 : PByte): ISC_STATUS;
953 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
954    
955     Tisc_declare = function (status_vector : PISC_STATUS;
956     isc_arg2,
957 tony 56 isc_arg3 : PByte): ISC_STATUS;
958 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
959    
960     Tisc_describe = function (status_vector : PISC_STATUS;
961 tony 56 isc_arg2 : PByte;
962 tony 45 isc_arg3 : PXSQLDA): ISC_STATUS;
963     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
964    
965     Tisc_describe_bind = function (status_vector : PISC_STATUS;
966 tony 56 isc_arg2 : PByte;
967 tony 45 isc_arg3 : PXSQLDA): ISC_STATUS;
968     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
969    
970     Tisc_execute = function (status_vector : PISC_STATUS;
971     tran_handle : PISC_TR_HANDLE;
972 tony 56 isc_arg3 : PByte;
973 tony 45 isc_arg4 : PXSQLDA): ISC_STATUS;
974     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
975    
976     Tisc_execute_immediate = function (status_vector : PISC_STATUS;
977     db_handle : PISC_DB_HANDLE;
978     tran_handle : PISC_TR_HANDLE;
979     isc_arg4 : PShort;
980 tony 56 isc_arg5 : PByte): ISC_STATUS;
981 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
982    
983     Tisc_fetch = function (status_vector : PISC_STATUS;
984 tony 56 isc_arg2 : PByte;
985 tony 45 isc_arg3 : PXSQLDA): ISC_STATUS;
986     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
987    
988     Tisc_open = function (status_vector : PISC_STATUS;
989     tran_handle : PISC_TR_HANDLE;
990 tony 56 isc_arg3 : PByte;
991 tony 45 isc_arg4 : PXSQLDA): ISC_STATUS;
992     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
993    
994     Tisc_prepare = function (status_vector : PISC_STATUS;
995     db_handle : PISC_DB_HANDLE;
996     tran_handle : PISC_TR_HANDLE;
997 tony 56 isc_arg4 : PByte;
998 tony 45 isc_arg5 : PShort;
999 tony 56 isc_arg6 : PByte;
1000 tony 45 isc_arg7 : PXSQLDA): ISC_STATUS;
1001     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1002     {$ENDIF}
1003    
1004     (***************************************)
1005     (** Other Dynamic sql functions **)
1006     (***************************************)
1007    
1008     Tisc_dsql_execute_m = function (status_vector : PISC_STATUS;
1009     tran_handle : PISC_TR_HANDLE;
1010     statement_handle : PISC_STMT_HANDLE;
1011     isc_arg4 : UShort;
1012 tony 56 isc_arg5 : PByte;
1013 tony 45 isc_arg6 : UShort;
1014     isc_arg7 : UShort;
1015 tony 56 isc_arg8 : PByte): ISC_STATUS;
1016 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1017    
1018     Tisc_dsql_execute2_m = function (status_vector : PISC_STATUS;
1019     tran_handle : PISC_TR_HANDLE;
1020     statement_handle : PISC_STMT_HANDLE;
1021     isc_arg4 : UShort;
1022 tony 56 isc_arg5 : PByte;
1023 tony 45 isc_arg6 : UShort;
1024     isc_arg7 : UShort;
1025 tony 56 isc_arg8 : PByte;
1026 tony 45 isc_arg9 : UShort;
1027 tony 56 isc_arg10 : PByte;
1028 tony 45 isc_arg11 : UShort;
1029     isc_arg12 : UShort;
1030 tony 56 isc_arg13 : PByte): ISC_STATUS;
1031 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1032    
1033     Tisc_dsql_execute_immediate_m = function (status_vector : PISC_STATUS;
1034     db_handle : PISC_DB_HANDLE;
1035     tran_handle : PISC_TR_HANDLE;
1036     isc_arg4 : UShort;
1037 tony 56 isc_arg5 : PByte;
1038 tony 45 isc_arg6 : UShort;
1039     isc_arg7 : UShort;
1040 tony 56 isc_arg8 : PByte;
1041 tony 45 isc_arg9 : UShort;
1042     isc_arg10 : UShort;
1043 tony 56 isc_arg11 : PByte): ISC_STATUS;
1044 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1045    
1046     Tisc_dsql_exec_immed3_m = function (status_vector : PISC_STATUS;
1047     db_handle : PISC_DB_HANDLE;
1048     tran_handle : PISC_TR_HANDLE;
1049     isc_arg4 : UShort;
1050 tony 56 isc_arg5 : PByte;
1051 tony 45 isc_arg6 : UShort;
1052     isc_arg7 : UShort;
1053 tony 56 isc_arg8 : PByte;
1054 tony 45 isc_arg9 : UShort;
1055     isc_arg10 : UShort;
1056 tony 56 isc_arg11 : PByte;
1057 tony 45 isc_arg12 : UShort;
1058 tony 56 isc_arg13 : PByte;
1059 tony 45 isc_arg14 : UShort;
1060     isc_arg15 : UShort;
1061 tony 56 isc_arg16 : PByte): ISC_STATUS;
1062 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1063    
1064     Tisc_dsql_fetch_m = function (status_vector : PISC_STATUS;
1065     statement_handle : PISC_STMT_HANDLE;
1066     isc_arg3 : UShort;
1067 tony 56 isc_arg4 : PByte;
1068 tony 45 isc_arg5 : UShort;
1069     isc_arg6 : UShort;
1070 tony 56 isc_arg7 : PByte): ISC_STATUS;
1071 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1072    
1073     (*$ifdef SCROLLABLE_CURSORS*)
1074     Tisc_dsql_fetch2_m = function (status_vector : PISC_STATUS;
1075     statement_handle : PISC_STMT_HANDLE;
1076     isc_arg3 : UShort;
1077 tony 56 isc_arg4 : PByte;
1078 tony 45 isc_arg5 : UShort;
1079     isc_arg6 : UShort;
1080 tony 56 isc_arg7 : PByte;
1081 tony 45 isc_arg8 : UShort;
1082     isc_arg9 : Long): ISC_STATUS;
1083     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1084     (*$endif*)
1085    
1086     Tisc_dsql_insert_m = function (status_vector : PISC_STATUS;
1087     statement_handle : PISC_STMT_HANDLE;
1088     isc_arg3 : UShort;
1089 tony 56 isc_arg4 : PByte;
1090 tony 45 isc_arg5 : UShort;
1091     isc_arg6 : UShort;
1092 tony 56 isc_arg7 : PByte): ISC_STATUS;
1093 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1094    
1095     Tisc_dsql_prepare_m = function (status_vector : PISC_STATUS;
1096     tran_handle : PISC_TR_HANDLE;
1097     statement_handle : PISC_STMT_HANDLE;
1098     isc_arg4 : UShort;
1099 tony 56 isc_arg5 : PByte;
1100 tony 45 isc_arg6 : UShort;
1101     isc_arg7 : UShort;
1102 tony 56 isc_arg8 : PByte;
1103 tony 45 isc_arg9 : UShort;
1104 tony 56 isc_arg10 : PByte): ISC_STATUS;
1105 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1106    
1107     Tisc_dsql_release = function (status_vector : PISC_STATUS;
1108 tony 56 isc_arg2 : PByte): ISC_STATUS;
1109 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1110    
1111     Tisc_embed_dsql_close = function(status_vector : PISC_STATUS;
1112 tony 56 isc_arg2 : PByte): ISC_STATUS;
1113 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1114    
1115     Tisc_embed_dsql_declare = function (status_vector : PISC_STATUS;
1116 tony 56 isc_arg2 : PByte;
1117     isc_arg3 : PByte): ISC_STATUS;
1118 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1119    
1120     Tisc_embed_dsql_describe = function (status_vector : PISC_STATUS;
1121 tony 56 isc_arg2 : PByte;
1122 tony 45 isc_arg3 : UShort;
1123     isc_arg4 : PXSQLDA): ISC_STATUS;
1124     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1125    
1126     Tisc_embed_dsql_describe_bind = function (status_vector : PISC_STATUS;
1127 tony 56 isc_arg2 : PByte;
1128 tony 45 isc_arg3 : UShort;
1129     isc_arg4 : PXSQLDA): ISC_STATUS;
1130     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1131    
1132     Tisc_embed_dsql_execute = function (status_vector : PISC_STATUS;
1133     tran_handle : PISC_TR_HANDLE;
1134 tony 56 isc_arg3 : PByte;
1135 tony 45 isc_arg4 : UShort;
1136     isc_arg5 : PXSQLDA): ISC_STATUS;
1137     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1138    
1139     Tisc_embed_dsql_execute2 = function (status_vector : PISC_STATUS;
1140     tran_handle : PISC_TR_HANDLE;
1141 tony 56 isc_arg3 : PByte;
1142 tony 45 isc_arg4 : UShort;
1143     isc_arg5 : PXSQLDA;
1144     isc_arg6 : PXSQLDA): ISC_STATUS;
1145     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1146    
1147     Tisc_embed_dsql_execute_immed = function (status_vector : PISC_STATUS;
1148     db_handle : PISC_DB_HANDLE;
1149     tran_handle : PISC_TR_HANDLE;
1150     isc_arg4 : UShort;
1151 tony 56 isc_arg5 : PByte;
1152 tony 45 isc_arg6 : UShort;
1153     isc_arg7 : PXSQLDA): ISC_STATUS;
1154     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1155    
1156     Tisc_embed_dsql_fetch = function(status_vector : PISC_STATUS;
1157 tony 56 isc_arg2 : PByte;
1158 tony 45 isc_arg3 : UShort;
1159     isc_arg4 : PXSQLDA): ISC_STATUS;
1160     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1161    
1162     (*$ifdef SCROLLABLE_CURSORS*)
1163     Tisc_embed_dsql_fetch2 = function (status_vector : PISC_STATUS;
1164 tony 56 isc_arg2 : PByte;
1165 tony 45 isc_arg3 : UShort;
1166     isc_arg4 : PXSQLDA;
1167     isc_arg5 : UShort;
1168     isc_arg6 : Long): ISC_STATUS;
1169     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1170     (*$endif*)
1171    
1172     Tisc_embed_dsql_open = function (status_vector : PISC_STATUS;
1173     tran_handle : PISC_TR_HANDLE;
1174 tony 56 isc_arg3 : PByte;
1175 tony 45 isc_arg4 : UShort;
1176     isc_arg5 : PXSQLDA): ISC_STATUS;
1177     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1178    
1179     Tisc_embed_dsql_open2 = function (status_vector : PISC_STATUS;
1180     tran_handle : PISC_TR_HANDLE;
1181 tony 56 isc_arg3 : PByte;
1182 tony 45 isc_arg4 : UShort;
1183     isc_arg5 : PXSQLDA;
1184     isc_arg6 : PXSQLDA): ISC_STATUS;
1185     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1186    
1187     Tisc_embed_dsql_insert = function (status_vector : PISC_STATUS;
1188 tony 56 isc_arg2 : PByte;
1189 tony 45 isc_arg3 : UShort;
1190     isc_arg4 : PXSQLDA): ISC_STATUS;
1191     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1192    
1193     Tisc_embed_dsql_prepare = function (status_vector : PISC_STATUS;
1194     db_handle : PISC_DB_HANDLE;
1195     tran_handle : PISC_TR_HANDLE;
1196 tony 56 isc_arg4 : PByte;
1197 tony 45 isc_arg5 : UShort;
1198 tony 56 isc_arg6 : PByte;
1199 tony 45 isc_arg7 : UShort;
1200     isc_arg8 : PXSQLDA): ISC_STATUS;
1201     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1202    
1203     Tisc_embed_dsql_release = function (status_vector : PISC_STATUS;
1204 tony 56 isc_arg2 : PByte): ISC_STATUS;
1205 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1206    
1207     (********************************)
1208     (** Other Blob functions **)
1209     (********************************)
1210    
1211     TBLOB_open = function (blob_handle : TISC_BLOB_HANDLE;
1212 tony 56 isc_arg2 : PByte;
1213 tony 45 isc_arg3 : int): PBSTREAM;
1214     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1215    
1216     TBLOB_put = function (isc_arg1 : char;
1217     isc_arg2 : PBSTREAM): Int;
1218     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1219    
1220     TBLOB_close = function (isc_arg1 : PBSTREAM): Int;
1221     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1222    
1223     TBLOB_get = function (isc_arg1 : PBSTREAM): Int;
1224     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1225    
1226     TBLOB_display = function (isc_arg1 : PISC_QUAD;
1227     db_handle : TISC_DB_HANDLE;
1228     tran_handle : TISC_TR_HANDLE;
1229 tony 56 isc_arg4 : PByte): Int;
1230 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1231    
1232     TBLOB_dump = function (isc_arg1 : PISC_QUAD;
1233     db_handle : TISC_DB_HANDLE;
1234     tran_handle : TISC_TR_HANDLE;
1235 tony 56 isc_arg4 : PByte): Int;
1236 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1237    
1238     TBLOB_edit = function (isc_arg1 : PISC_QUAD;
1239     db_handle : TISC_DB_HANDLE;
1240     tran_handle : TISC_TR_HANDLE;
1241 tony 56 isc_arg4 : PByte): Int;
1242 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1243    
1244     TBLOB_load = function (isc_arg1 : PISC_QUAD;
1245     db_handle : TISC_DB_HANDLE;
1246     tran_handle : TISC_TR_HANDLE;
1247 tony 56 isc_arg4 : PByte): Int;
1248 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1249    
1250     TBLOB_text_dump = function (isc_arg1 : PISC_QUAD;
1251     db_handle : TISC_DB_HANDLE;
1252     tran_handle : TISC_TR_HANDLE;
1253 tony 56 isc_arg4 : PByte): Int;
1254 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1255    
1256     TBLOB_text_load = function (isc_arg1 : PISC_QUAD;
1257     db_handle : TISC_DB_HANDLE;
1258     tran_handle : TISC_TR_HANDLE;
1259 tony 56 isc_arg4 : PByte): Int;
1260 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1261    
1262     TBopen = function (isc_arg1 : PISC_QUAD;
1263     db_handle : TISC_DB_HANDLE;
1264     tran_handle : TISC_TR_HANDLE;
1265 tony 56 isc_arg4 : PByte): Int;
1266 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1267    
1268     TBopen2 = function (isc_arg1 : PISC_QUAD;
1269     db_handle : TISC_DB_HANDLE;
1270     tran_handle : TISC_TR_HANDLE;
1271 tony 56 isc_arg4 : PByte;
1272 tony 45 isc_arg5 : UShort): PBSTREAM;
1273     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1274    
1275     (********************************)
1276     (** Other Misc functions **)
1277     (********************************)
1278    
1279 tony 56 Tisc_ftof = function (isc_arg1 : PByte;
1280 tony 45 isc_arg2 : UShort;
1281 tony 56 isc_arg3 : PByte;
1282 tony 45 isc_arg4 : UShort): ISC_LONG;
1283     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1284    
1285 tony 56 Tisc_print_blr = function (isc_arg1 : PByte;
1286 tony 45 isc_arg2 : TISC_CALLBACK;
1287     isc_arg3 : PVoid;
1288     isc_arg4 : Short): ISC_STATUS;
1289     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1290    
1291     Tisc_set_debug = procedure (isc_arg1 : Int);
1292     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1293    
1294     Tisc_qtoq = procedure (isc_arg1 : PISC_QUAD;
1295     isc_arg2 : PISC_QUAD);
1296     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1297    
1298 tony 56 Tisc_vtof = procedure (isc_arg1 : PByte;
1299     isc_arg2 : PByte;
1300 tony 45 isc_arg3 : UShort);
1301     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1302    
1303 tony 56 Tisc_vtov = procedure (isc_arg1 : PByte;
1304     isc_arg2 : PByte;
1305 tony 45 isc_arg3 : Short);
1306     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1307    
1308     Tisc_version = function (db_handle : PISC_DB_HANDLE;
1309     isc_arg2 : TISC_CALLBACK;
1310     isc_arg3 : PVoid): Int;
1311     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1312    
1313     Tisc_reset_fpe = function (isc_arg1 : UShort): ISC_LONG;
1314     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1315    
1316     (*******************************************)
1317     (** Service manager functions **)
1318     (*******************************************)
1319    
1320     Tisc_service_attach = function (status_vector : PISC_STATUS;
1321     isc_arg2 : UShort;
1322 tony 56 isc_arg3 : PAnsiChar;
1323 tony 45 service_handle : PISC_SVC_HANDLE;
1324     isc_arg5 : UShort;
1325 tony 56 isc_arg6 : PByte): ISC_STATUS;
1326 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1327    
1328     Tisc_service_detach = function (status_vector : PISC_STATUS;
1329     service_handle : PISC_SVC_HANDLE): ISC_STATUS;
1330     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1331    
1332     Tisc_service_query = function (status_vector : PISC_STATUS;
1333     service_handle : PISC_SVC_HANDLE;
1334     recv_handle : PISC_SVC_HANDLE;
1335     isc_arg4 : UShort;
1336 tony 56 isc_arg5 : PByte;
1337 tony 45 isc_arg6 : UShort;
1338 tony 56 isc_arg7 : PByte;
1339 tony 45 isc_arg8 : UShort;
1340 tony 56 isc_arg9 : PByte): ISC_STATUS;
1341 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1342    
1343     Tisc_service_start = function (status_vector : PISC_STATUS;
1344     service_handle : PISC_SVC_HANDLE;
1345     recv_handle : PISC_SVC_HANDLE;
1346     isc_arg4 : UShort;
1347 tony 56 isc_arg5 : PByte): ISC_STATUS;
1348 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1349    
1350     (*********************************)
1351     (** Forms functions **)
1352     (*********************************)
1353    
1354     Tisc_compile_map = function (status_vector : PISC_STATUS;
1355     form_handle : PISC_FORM_HANDLE;
1356     request_handle : PISC_REQ_HANDLE;
1357     isc_arg4 : PShort;
1358 tony 56 isc_arg5 : PByte): ISC_STATUS;
1359 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1360    
1361     Tisc_compile_menu = function (status_vector : PISC_STATUS;
1362     form_handle : PISC_FORM_HANDLE;
1363     request_handle : PISC_REQ_HANDLE;
1364     isc_arg4 : PShort;
1365 tony 56 isc_arg5 : PByte): ISC_STATUS;
1366 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1367    
1368     Tisc_compile_sub_map = function (status_vector : PISC_STATUS;
1369     win_handle : PISC_WIN_HANDLE;
1370     request_handle : PISC_REQ_HANDLE;
1371     isc_arg4 : PShort;
1372 tony 56 isc_arg5 : PByte): ISC_STATUS;
1373 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1374    
1375     Tisc_create_window = function (status_vector : PISC_STATUS;
1376     win_handle : PISC_WIN_HANDLE;
1377     isc_arg3 : PShort;
1378 tony 56 isc_arg4 : PByte;
1379 tony 45 isc_arg5 : PShort;
1380     isc_arg6 : PShort): ISC_STATUS;
1381     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1382    
1383     Tisc_delete_window = function (status_vector : PISC_STATUS;
1384     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1385     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1386    
1387     Tisc_drive_form = function (status_vector : PISC_STATUS;
1388     db_handle : PISC_DB_HANDLE;
1389     tran_handle : PISC_TR_HANDLE;
1390     win_handle : PISC_WIN_HANDLE;
1391     request_handle : PISC_REQ_HANDLE;
1392     isc_arg6 : PUChar;
1393     isc_arg7 : PUChar): ISC_STATUS;
1394     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1395    
1396     Tisc_drive_menu = function (status_vector : PISC_STATUS;
1397     win_handle : PISC_WIN_HANDLE;
1398     request_handle : PISC_REQ_HANDLE;
1399     isc_arg4 : PShort;
1400 tony 56 isc_arg5 : PByte;
1401 tony 45 isc_arg6 : PShort;
1402 tony 56 isc_arg7 : PByte;
1403 tony 45 isc_arg8 : PShort;
1404     isc_arg9 : PShort;
1405 tony 56 isc_arg10 : PByte;
1406 tony 45 isc_arg11 : PISC_LONG): ISC_STATUS;
1407     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1408    
1409     Tisc_form_delete = function (status_vector : PISC_STATUS;
1410     form_handle : PISC_FORM_HANDLE): ISC_STATUS;
1411     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1412    
1413     Tisc_form_fetch = function (status_vector : PISC_STATUS;
1414     db_handle : PISC_DB_HANDLE;
1415     tran_handle : PISC_TR_HANDLE;
1416     request_handle : PISC_REQ_HANDLE;
1417     isc_arg5 : PUChar): ISC_STATUS;
1418     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1419    
1420     Tisc_form_insert = function (status_vector : PISC_STATUS;
1421     db_handle : PISC_DB_HANDLE;
1422     tran_handle : PISC_TR_HANDLE;
1423     request_handle : PISC_REQ_HANDLE;
1424     isc_arg5 : PUChar): ISC_STATUS;
1425     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1426    
1427     Tisc_get_entree = function (status_vector : PISC_STATUS;
1428     request_handle : PISC_REQ_HANDLE;
1429     isc_arg3 : PShort;
1430 tony 56 isc_arg4 : PByte;
1431 tony 45 isc_arg5 : PISC_LONG;
1432     isc_arg6 : PShort): ISC_STATUS;
1433     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1434    
1435     Tisc_initialize_menu = function (status_vector : PISC_STATUS;
1436     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
1437     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1438    
1439     Tisc_menu = function (status_vector : PISC_STATUS;
1440     win_handle : PISC_WIN_HANDLE;
1441     request_handle : PISC_REQ_HANDLE;
1442     isc_arg4 : PShort;
1443 tony 56 isc_arg5 : PByte): ISC_STATUS;
1444 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1445    
1446     Tisc_load_form = function (status_vector : PISC_STATUS;
1447     db_handle : PISC_DB_HANDLE;
1448     tran_handle : PISC_TR_HANDLE;
1449     form_handle : PISC_FORM_HANDLE;
1450     isc_arg5 : PShort;
1451 tony 56 isc_arg6 : PByte): ISC_STATUS;
1452 tony 45 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1453    
1454     Tisc_pop_window = function (status_vector : PISC_STATUS;
1455     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1456     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1457    
1458     Tisc_put_entree = function (status_vector : PISC_STATUS;
1459     request_handle : PISC_REQ_HANDLE;
1460     isc_arg3 : PShort;
1461 tony 56 isc_arg4 : PByte;
1462 tony 45 isc_arg5 : PISC_LONG): ISC_STATUS;
1463     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1464    
1465     Tisc_reset_form = function (status_vector : PISC_STATUS;
1466     request_handle : PISC_REQ_HANDLE): ISC_STATUS;
1467     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1468    
1469     Tisc_suspend_window = function (status_vector : PISC_STATUS;
1470     win_handle : PISC_WIN_HANDLE): ISC_STATUS;
1471     {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
1472    
1473     (** Constants!!! **)
1474     (*****************************************************)
1475     (** Actions to pass to the blob filter (ctl_source) **)
1476     (*****************************************************)
1477    
1478     const
1479     isc_blob_filter_open = 0;
1480     isc_blob_filter_get_segment = 1;
1481     isc_blob_filter_close = 2;
1482     isc_blob_filter_create = 3;
1483     isc_blob_filter_put_segment = 4;
1484     isc_blob_filter_alloc = 5;
1485     isc_blob_filter_free = 6;
1486     isc_blob_filter_seek = 7;
1487    
1488     (*********************)
1489     (** Blr definitions **)
1490     (*********************)
1491    
1492     // In pascal, how does one deal with the below "#define"?
1493     // blr_word(n) ((n) % 256), ((n) / 256)
1494     blr_text = 14;
1495     blr_text2 = 15;
1496     blr_short = 7;
1497     blr_long = 8;
1498     blr_quad = 9;
1499     blr_float = 10;
1500     blr_double = 27;
1501     blr_d_float = 11;
1502     blr_timestamp = 35;
1503     blr_varying = 37;
1504     blr_varying2 = 38;
1505     blr_blob = 261;
1506     blr_cstring = 40;
1507     blr_cstring2 = 41;
1508     blr_blob_id = 45;
1509     blr_sql_date = 12;
1510     blr_sql_time = 13;
1511     blr_int64 = 16;
1512     blr_date = blr_timestamp;
1513     blr_bool = 23;
1514    
1515    
1516     blr_inner = 0;
1517     blr_left = 1;
1518     blr_right = 2;
1519     blr_full = 3;
1520    
1521     blr_gds_code = 0;
1522     blr_sql_code = 1;
1523     blr_exception = 2;
1524     blr_trigger_code = 3;
1525     blr_default_code = 4;
1526    
1527     blr_version4 = 4;
1528     blr_version5 = 5;
1529     blr_eoc = 76;
1530     blr_end = -1;
1531    
1532     blr_assignment = 1;
1533     blr_begin = 2;
1534     blr_dcl_variable = 3;
1535     blr_message = 4;
1536     blr_erase = 5;
1537     blr_fetch = 6;
1538     blr_for = 7;
1539     blr_if = 8;
1540     blr_loop = 9;
1541     blr_modify = 10;
1542     blr_handler = 11;
1543     blr_receive = 12;
1544     blr_select = 13;
1545     blr_send = 14;
1546     blr_store = 15;
1547     blr_label = 17;
1548     blr_leave = 18;
1549     blr_store2 = 19;
1550     blr_post = 20;
1551    
1552     blr_literal = 21;
1553     blr_dbkey = 22;
1554     blr_field = 23;
1555     blr_fid = 24;
1556     blr_parameter = 25;
1557     blr_variable = 26;
1558     blr_average = 27;
1559     blr_count = 28;
1560     blr_maximum = 29;
1561     blr_minimum = 30;
1562     blr_total = 31;
1563     blr_add = 34;
1564     blr_subtract = 35;
1565     blr_multiply = 36;
1566     blr_divide = 37;
1567     blr_negate = 38;
1568     blr_concatenate = 39;
1569     blr_substring = 40;
1570     blr_parameter2 = 41;
1571     blr_from = 42;
1572     blr_via = 43;
1573     blr_user_name = 44;
1574     blr_null = 45;
1575    
1576     blr_eql = 47;
1577     blr_neq = 48;
1578     blr_gtr = 49;
1579     blr_geq = 50;
1580     blr_lss = 51;
1581     blr_leq = 52;
1582     blr_containing = 53;
1583     blr_matching = 54;
1584     blr_starting = 55;
1585     blr_between = 56;
1586     blr_or = 57;
1587     blr_and = 58;
1588     blr_not = 59;
1589     blr_any = 60;
1590     blr_missing = 61;
1591     blr_unique = 62;
1592     blr_like = 63;
1593    
1594     blr_stream = 65;
1595     blr_set_index = 66;
1596     blr_rse = 67;
1597     blr_first = 68;
1598     blr_project = 69;
1599     blr_sort = 70;
1600     blr_boolean = 71;
1601     blr_ascending = 72;
1602     blr_descending = 73;
1603     blr_relation = 74;
1604     blr_rid = 75;
1605     blr_union = 76;
1606     blr_map = 77;
1607     blr_group_by = 78;
1608     blr_aggregate = 79;
1609     blr_join_type = 80;
1610    
1611     blr_agg_count = 83;
1612     blr_agg_max = 84;
1613     blr_agg_min = 85;
1614     blr_agg_total = 86;
1615     blr_agg_average = 87;
1616     blr_parameter3 = 88;
1617     blr_run_count = 118;
1618     blr_run_max = 89;
1619     blr_run_min = 90;
1620     blr_run_total = 91;
1621     blr_run_average = 92;
1622     blr_agg_count2 = 93;
1623     blr_agg_count_distinct = 94;
1624     blr_agg_total_distinct = 95;
1625     blr_agg_average_distinct = 96;
1626    
1627     blr_function = 100;
1628     blr_gen_id = 101;
1629     blr_prot_mask = 102;
1630     blr_upcase = 103;
1631     blr_lock_state = 104;
1632     blr_value_if = 105;
1633     blr_matching2 = 106;
1634     blr_index = 107;
1635     blr_ansi_like = 108;
1636     blr_bookmark = 109;
1637     blr_crack = 110;
1638     blr_force_crack = 111;
1639     blr_seek = 112;
1640     blr_find = 113;
1641    
1642     blr_continue = 0;
1643     blr_forward = 1;
1644     blr_backward = 2;
1645     blr_bof_forward = 3;
1646     blr_eof_backward = 4;
1647    
1648     blr_lock_relation = 114;
1649     blr_lock_record = 115;
1650     blr_set_bookmark = 116;
1651     blr_get_bookmark = 117;
1652     blr_rs_stream = 119;
1653     blr_exec_proc = 120;
1654     blr_begin_range = 121;
1655     blr_end_range = 122;
1656     blr_delete_range = 123;
1657     blr_procedure = 124;
1658     blr_pid = 125;
1659     blr_exec_pid = 126;
1660     blr_singular = 127;
1661     blr_abort = 128;
1662     blr_block = 129;
1663     blr_error_handler = 130;
1664     blr_cast = 131;
1665     blr_release_lock = 132;
1666     blr_release_locks = 133;
1667     blr_start_savepoint = 134;
1668     blr_end_savepoint = 135;
1669     blr_find_dbkey = 136;
1670     blr_range_relation = 137;
1671     blr_delete_ranges = 138;
1672    
1673     blr_plan = 139;
1674     blr_merge = 140;
1675     blr_join = 141;
1676     blr_sequential = 142;
1677     blr_navigational = 143;
1678     blr_indices = 144;
1679     blr_retrieve = 145;
1680    
1681     blr_relation2 = 146;
1682     blr_rid2 = 147;
1683     blr_reset_stream = 148;
1684     blr_release_bookmark = 149;
1685     blr_set_generator = 150;
1686     blr_ansi_any = 151;
1687     blr_exists = 152;
1688     blr_cardinality = 153;
1689    
1690     blr_record_version = 154; (** get tid of record **)
1691     blr_stall = 155; (** fake server stall **)
1692     blr_seek_no_warn = 156;
1693     blr_find_dbkey_version = 157;
1694     blr_ansi_all = 158;
1695    
1696     blr_extract = 159;
1697    
1698     (* sub parameters for blr_extract *)
1699    
1700     blr_extract_year = 0;
1701     blr_extract_month = 1;
1702     blr_extract_day = 2;
1703     blr_extract_hour = 3;
1704     blr_extract_minute = 4;
1705     blr_extract_second = 5;
1706     blr_extract_weekday = 6;
1707     blr_extract_yearday = 7;
1708    
1709     blr_current_date = 160;
1710     blr_current_timestamp = 161;
1711     blr_current_time = 162;
1712    
1713     (* These verbs were added in 6.0,
1714     primarily to support 64-bit integers *)
1715    
1716     blr_add2 = 163;
1717     blr_subtract2 = 164;
1718     blr_multiply2 = 165;
1719     blr_divide2 = 166;
1720     blr_agg_total2 = 167;
1721     blr_agg_total_distinct2 = 168;
1722     blr_agg_average2 = 169;
1723     blr_agg_average_distinct2 = 170;
1724     blr_average2 = 171;
1725     blr_gen_id2 = 172;
1726     blr_set_generator2 = 173;
1727    
1728     (****************************************)
1729     (** Bit assignments in RDB$SYSTEM_FLAG **)
1730     (****************************************)
1731    
1732     RDB_system = 1;
1733     RDB_id_assigned = 2;
1734    
1735    
1736     (*******************************)
1737     (** Service information items **)
1738     (*******************************)
1739    
1740     {$IFDEF IB5_ONLY }
1741     (* This defines are not there in version 6.0 *)
1742     { isc_info_svc_version = 4;
1743     isc_info_svc_message = 5;
1744     isc_info_svc_total_length = 6;
1745     isc_info_svc_response = 7;
1746     isc_info_svc_response_more = 8;
1747     isc_info_svc_line = 9;
1748     isc_info_svc_to_eof = 10;
1749     isc_info_svc_timeout = 11;
1750     isc_info_svc_server_version = 12;
1751     isc_info_svc_implementation = 13;
1752     isc_info_svc_capabilities = 14;
1753     isc_info_svc_user_dbpath = 15;
1754     isc_info_svc_svr_db_info = 16;
1755     isc_info_svc_svr_online = 17;
1756     isc_info_svc_svr_offline = 18;
1757     isc_info_svc_get_config = 19;
1758     isc_info_svc_set_config = 20;
1759     isc_info_svc_default_config = 21;
1760     isc_info_svc_get_env = 22;
1761     isc_info_svc_get_env_lock = 23;
1762     isc_info_svc_get_env_msg = 24; }
1763     {$ENDIF}
1764    
1765    
1766    
1767     (*****************)
1768     (** Error codes **)
1769     (*****************)
1770    
1771     isc_facility = 20;
1772     isc_err_base = 335544320;
1773     isc_err_factor = 1;
1774     isc_arg_end = 0;
1775     isc_arg_gds = 1;
1776     isc_arg_string = 2;
1777     isc_arg_cstring = 3;
1778     isc_arg_number = 4;
1779     isc_arg_interpreted = 5;
1780     isc_arg_vms = 6;
1781     isc_arg_unix = 7;
1782     isc_arg_domain = 8;
1783     isc_arg_dos = 9;
1784     isc_arg_mpexl = 10;
1785     isc_arg_mpexl_ipc = 11;
1786     isc_arg_next_mach = 15;
1787     isc_arg_netware = 16;
1788     isc_arg_win32 = 17;
1789     isc_arg_warning = 18;
1790    
1791     (**********************************************)
1792     (** International text interpretation values **)
1793     (**********************************************)
1794    
1795     isc_interp_eng_ascii = 0;
1796     isc_interp_jpn_sjis = 5;
1797     isc_interp_jpn_euc = 6;
1798    
1799     (******************************************)
1800     (** Scroll direction for isc_dsql_fetch2 **)
1801     (******************************************)
1802    
1803     isc_fetch_next = 0;
1804     isc_fetch_prior = 1;
1805     isc_fetch_first = 2;
1806     isc_fetch_last = 3;
1807     isc_fetch_absolute = 4;
1808     isc_fetch_relative = 5;
1809    
1810    
1811    
1812     (** XSQLDA_LENGTH is defined in C as a macro, but in Pascal we must defined it
1813     as a function... **)
1814     function XSQLDA_LENGTH(n: Long): Long;
1815    
1816     implementation
1817    
1818    
1819     function XSQLDA_LENGTH(n: Long): Long;
1820     (* The C-macro reads like this:
1821     XSQLDA_LENGTH(n) (sizeof (XSQLDA) + (n-1) * sizeof (XSQLVAR)) *)
1822     begin
1823     result := SizeOf(TXSQLDA) + ((n - 1) * SizeOf(TXSQLVAR));
1824     end;
1825    
1826    
1827     end.
1828