ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/fbintf/client/2.5/IBHeader.pas
Revision: 315
Committed: Thu Feb 25 11:56:36 2021 UTC (3 years, 1 month ago) by tony
Content type: text/x-pascal
File size: 94981 byte(s)
Log Message:
Updated for IBX 4 release

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