Browse Source

- Placed dyn. loaded and stat. loaded headers in one file

joost 20 years ago
parent
commit
dac00a9080

+ 2653 - 0
packages/base/ibase/ibase60.inc

@@ -0,0 +1,2653 @@
+{
+  $Id$
+}
+
+{$MODE objfpc}
+{$MACRO on}
+
+interface
+
+{$IFDEF LinkDynamically}
+uses Dynlibs, sysutils;
+{$ENDIF}
+
+{$IFDEF Unix}
+  {$LINKLIB c}
+  {$LINKLIB crypt}
+  {$DEFINE extdecl:=cdecl}
+  const
+    gdslib = 'libgds.so';
+    fbclib = 'libfbclient.so';
+{$ENDIF}
+{$IFDEF Win32}
+  {$DEFINE extdecl:=stdcall}
+  const
+    gdslib = 'gds32.dll';
+    fbclib = 'fbclient.dll';
+{$ENDIF}
+
+type
+  {  Unsigned types }
+
+  UChar                = Byte;
+  UShort               = Word;
+  UInt                 = DWord;
+  ULong                = DWord;
+
+  { Signed types }
+
+  Int                  = LongInt;
+  Long                 = LongInt;
+  Short                = SmallInt;
+  Float                = Single;
+
+  { Pointers to basic types }
+
+  PInt                 = ^Int;
+  PShort               = ^Short;
+  PUShort              = ^UShort;
+  PLong                = ^Long;
+  PULong               = ^ULong;
+  PFloat               = ^Float;
+  PUChar               = ^UChar;
+  PVoid                = ^Pointer;
+
+{$PACKRECORDS C}
+
+  const
+     ISC_TRUE = 1;
+     ISC_FALSE = 0;
+  const
+     ISC__TRUE = ISC_TRUE;
+     ISC__FALSE = ISC_FALSE;
+
+Type
+   ISC_USHORT    = word;
+   ISC_STATUS    = longint;
+   ISC_INT64     = int64;
+   ISC_UINT64    = qword;
+   ISC_LONG      = Longint;
+
+   PISC_USHORT = ^ISC_USHORT;
+   PISC_STATUS = ^ISC_STATUS;
+   PPISC_STATUS = ^PISC_STATUS;
+   PISC_INT64 = ^ISC_INT64;
+   PISC_UINT64 = ^ISC_UINT64;
+   PISC_LONG = ^ISC_LONG;
+
+  const
+     DSQL_close = 1;
+     DSQL_drop = 2;
+
+  {!!MVC
+    Removed all ISC_FAR, ISC_EXPORT_VARARG and ISC_EXPORT
+    macros.
+    They confuse h2pas...
+  !!MVC }
+  {                                                                  }
+  { Time & Date Support                                              }
+  {                                                                  }
+{$ifndef _ISC_TIMESTAMP_}
+
+  type
+
+     ISC_DATE = longint;
+     ISC_TIME = dword;
+     ISC_TIMESTAMP = record
+          timestamp_date : ISC_DATE;
+          timestamp_time : ISC_TIME;
+       end;
+     TISC_DATE = ISC_DATE;
+     TISC_TIME = ISC_TIME;
+     TISC_TIMESTAMP = ISC_TIMESTAMP;
+     PISC_DATE = ^ISC_DATE;
+     PISC_TIME = ^ISC_TIME;
+     PISC_TIMESTAMP = ^ISC_TIMESTAMP;
+  const
+     _ISC_TIMESTAMP_ = 1;
+{$endif}
+
+  const
+     ISC_TIME_SECONDS_PRECISION = 10000;
+     ISC_TIME_SECONDS_PRECISION_SCALE = -4;
+  {                                                                  }
+  { Blob id structure                                                }
+  {                                                                  }
+
+Type
+
+   GDS_QUAD = record
+      gds_quad_high : ISC_LONG;
+      gds_quad_low : ISC_LONG;
+   end;
+   TGDS_QUAD = GDS_QUAD;
+   PGDS_QUAD = ^GDS_QUAD;
+
+Type
+     ISC_QUAD = GDS_QUAD;
+     TISC_QUAD = ISC_QUAD;
+     PISC_QUAD = ^ISC_QUAD;
+
+{ !!field redefinitions !!
+     isc_quad_high = gds_quad_high;
+     isc_quad_low = gds_quad_low;
+}
+
+type
+
+     ISC_ARRAY_BOUND = record
+          array_bound_lower : smallint;
+          array_bound_upper : smallint;
+       end;
+     TISC_ARRAY_BOUND = ISC_ARRAY_BOUND;
+     PISC_ARRAY_BOUND = ^ISC_ARRAY_BOUND;
+
+     ISC_ARRAY_DESC = record
+          array_desc_dtype : byte;
+          array_desc_scale : char;
+          array_desc_length : word;
+          array_desc_field_name : array[0..31] of char;
+          array_desc_relation_name : array[0..31] of char;
+          array_desc_dimensions : smallint;
+          array_desc_flags : smallint;
+          array_desc_bounds : array[0..15] of ISC_ARRAY_BOUND;
+       end;
+     TISC_ARRAY_DESC = ISC_ARRAY_DESC;
+     PISC_ARRAY_DESC = ^ISC_ARRAY_DESC;
+
+     ISC_BLOB_DESC = record
+          blob_desc_subtype : smallint;
+          blob_desc_charset : smallint;
+          blob_desc_segment_size : smallint;
+          blob_desc_field_name : array[0..31] of byte;
+          blob_desc_relation_name : array[0..31] of byte;
+       end;
+     TISC_BLOB_DESC = ISC_BLOB_DESC;
+     PISC_BLOB_DESC = ^ISC_BLOB_DESC ;
+  {                          }
+  { Blob control structure   }
+  {                          }
+  {!!MVC
+  !!MVC }
+  { Source filter  }
+  {!!MVC
+  !!MVC }
+  { Argument to pass to source  }
+  { filter  }
+  { Target type  }
+  { Source type  }
+  { Length of buffer  }
+  { Length of current segment  }
+  { Length of blob parameter  }
+  { block  }
+  { Address of blob parameter  }
+  { block  }
+  { Address of segment buffer  }
+  { Length of longest segment  }
+  { Total number of segments  }
+  { Total length of blob  }
+  { Address of status vector  }
+  { Application specific data  }
+  TCTLSourceFunction  = function : isc_long;
+
+     PISC_BLOB_CTL = ^ISC_BLOB_CTL ;
+     ISC_BLOB_CTL = record
+          ctl_source : TCTLSourceFunction;     //  was ISC_STATUS ( *ctl_source)();
+          ctl_source_handle : pisc_blob_ctl  ; // was struct isc_blob_ctl  * ctl_source_handle;
+          ctl_to_sub_type : smallint;
+          ctl_from_sub_type : smallint;
+          ctl_buffer_length : word;
+          ctl_segment_length : word;
+          ctl_bpb_length : word;
+          ctl_bpb : Pchar;
+          ctl_buffer : Pbyte;
+          ctl_max_segment : ISC_LONG;
+          ctl_number_segments : ISC_LONG;
+          ctl_total_length : ISC_LONG;
+          ctl_status : PISC_STATUS;
+          ctl_data : array[0..7] of longint;
+       end;
+     TISC_BLOB_CTL = ISC_BLOB_CTL;
+
+  {                          }
+  { Blob stream definitions  }
+  {                          }
+  { Blob handle  }
+  { Address of buffer  }
+  { Next character  }
+  { Length of buffer  }
+  { Characters in buffer  }
+  { (mode) ? OUTPUT : INPUT  }
+
+     BSTREAM = record
+          bstr_blob : pointer;
+          bstr_buffer : Pchar;
+          bstr_ptr : Pchar;
+          bstr_length : smallint;
+          bstr_cnt : smallint;
+          bstr_mode : char;
+       end;
+     TBSTREAM = BSTREAM;
+     PBstream = ^BSTREAM;
+  {!!MVC
+
+  #define getb(p)       (--(p)->bstr_cnt >= 0 ?  (p)->bstr_ptr++ & 0377: BLOB_get (p))
+  #define putb(x,p) (((x) == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x))))
+  #define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x))))
+
+  !!MVC  }
+  {                          }
+  { Dynamic SQL definitions  }
+  {                          }
+  {                             }
+  { Declare the extended SQLDA  }
+  {                             }
+  { datatype of field  }
+  { scale factor  }
+  { datatype subtype - BLOBs & Text  }
+  { types only  }
+  { length of data area  }
+  { address of data  }
+  { address of indicator variable  }
+  { length of sqlname field  }
+  { name of field, name length + space  }
+  { for NULL  }
+  { length of relation name  }
+  { field's relation name + space for  }
+  { NULL  }
+  { length of owner name  }
+  { relation's owner name + space for  }
+  { NULL  }
+  { length of alias name  }
+  { relation's alias name + space for  }
+  { NULL  }
+
+     XSQLVAR = record
+          sqltype : smallint;
+          sqlscale : smallint;
+          sqlsubtype : smallint;
+          sqllen : smallint;
+          sqldata : Pchar;
+          sqlind : Psmallint;
+          sqlname_length : smallint;
+          sqlname : array[0..31] of char;
+          relname_length : smallint;
+          relname : array[0..31] of char;
+          ownname_length : smallint;
+          ownname : array[0..31] of char;
+          aliasname_length : smallint;
+          aliasname : array[0..31] of char;
+       end;
+     TXSQLVAR = XSQLVAR;
+     PXSQLVAR =^XSQLVAR;
+  { version of this XSQLDA  }
+  { XSQLDA name field  }
+  { length in bytes of SQLDA  }
+  { number of fields allocated  }
+  { actual number of fields  }
+  { first field address  }
+
+     XSQLDA = record
+          version : smallint;
+          sqldaid : array[0..7] of char;
+          sqldabc : ISC_LONG;
+          sqln : smallint;
+          sqld : smallint;
+          sqlvar : array[0..0] of XSQLVAR;
+       end;
+     TXSQLDA = XSQLDA;
+     PXSQLDA =^XSQLDA;
+
+  function XSQLDA_LENGTH(n: Integer): Integer;
+
+
+  const
+     SQLDA_VERSION1 = 1;
+  { meaning is same as DIALECT_xsqlda  }
+     SQL_DIALECT_V5 = 1;
+  { flagging anything that is delimited
+                                              by double quotes as an error and
+                                              flagging keyword DATE as an error  }
+     SQL_DIALECT_V6_TRANSITION = 2;
+  { supports SQL delimited identifier,
+                                              SQLDATE/DATE, TIME, TIMESTAMP,
+                                              CURRENT_DATE, CURRENT_TIME,
+                                              CURRENT_TIMESTAMP, and 64-bit exact
+                                              numeric type  }
+     SQL_DIALECT_V6 = 3;
+  { latest IB DIALECT  }
+     SQL_DIALECT_CURRENT = SQL_DIALECT_V6;
+  {                               }
+  { InterBase Handle Definitions  }
+  {                               }
+
+  type
+     isc_att_handle = pointer;
+     isc_blob_handle = pointer;
+     isc_db_handle = pointer;
+     isc_form_handle = pointer;
+     isc_req_handle = pointer;
+     isc_stmt_handle = pointer;
+     isc_svc_handle = pointer;
+     isc_tr_handle = pointer;
+     isc_win_handle = pointer;
+     isc_callback = procedure ;extdecl;
+     isc_resv_handle = ISC_LONG;
+     tisc_att_handle = isc_att_handle;
+     tisc_blob_handle = isc_blob_handle;
+     tisc_db_handle = isc_db_handle;
+     tisc_form_handle = isc_form_handle;
+     tisc_req_handle = isc_req_handle;
+     tisc_stmt_handle = isc_stmt_handle;
+     tisc_svc_handle = isc_svc_handle;
+     tisc_tr_handle = isc_tr_handle;
+     tisc_win_handle = isc_win_handle;
+     tisc_callback = isc_callback;
+     tisc_resv_handle = isc_resv_handle;
+     pisc_att_handle  =^isc_att_handle ;
+     pisc_blob_handle  =^isc_blob_handle ;
+     pisc_db_handle  =^isc_db_handle ;
+     pisc_form_handle  =^isc_form_handle ;
+     pisc_req_handle  =^isc_req_handle ;
+     pisc_stmt_handle  =^isc_stmt_handle ;
+     pisc_svc_handle  =^isc_svc_handle ;
+     pisc_tr_handle  =^isc_tr_handle ;
+     pisc_win_handle  =^isc_win_handle ;
+     pisc_callback  = ^isc_callback;
+     pisc_resv_handle  =^isc_resv_handle ;
+
+
+  {                                    }
+  { Security structures                }
+  {                                    }
+
+  const
+     sec_uid_spec = $01;
+     sec_gid_spec = $02;
+     sec_server_spec = $04;
+     sec_password_spec = $08;
+     sec_group_name_spec = $10;
+     sec_first_name_spec = $20;
+     sec_middle_name_spec = $40;
+     sec_last_name_spec = $80;
+     sec_dba_user_name_spec = $100;
+     sec_dba_password_spec = $200;
+     sec_protocol_tcpip = 1;
+     sec_protocol_netbeui = 2;
+     sec_protocol_spx = 3;
+     sec_protocol_local = 4;
+  { which fields are specified  }
+  { the user's id  }
+  { the user's group id  }
+  { protocol to use for connection  }
+  { server to administer  }
+  { the user's name  }
+  { the user's password  }
+  { the group name  }
+  { the user's first name  }
+  { the user's middle name  }
+  { the user's last name  }
+  { the dba user name  }
+  { the dba password  }
+
+  type
+
+     USER_SEC_DATA = record
+          sec_flags : smallint;
+          uid : longint;
+          gid : longint;
+          protocol : longint;
+          server : Pchar;
+          user_name : Pchar;
+          password : Pchar;
+          group_name : Pchar;
+          first_name : Pchar;
+          middle_name : Pchar;
+          last_name : Pchar;
+          dba_user_name : Pchar;
+          dba_password : Pchar;
+       end;
+     TUSER_SEC_DATA = USER_SEC_DATA;
+     PUSER_SEC_DATA = ^USER_SEC_DATA;
+
+  {                                                  }
+  { Actions to pass to the blob filter (ctl_source)  }
+  {                                                  }
+
+  const
+     isc_blob_filter_open = 0;
+     isc_blob_filter_get_segment = 1;
+     isc_blob_filter_close = 2;
+     isc_blob_filter_create = 3;
+     isc_blob_filter_put_segment = 4;
+     isc_blob_filter_alloc = 5;
+     isc_blob_filter_free = 6;
+     isc_blob_filter_seek = 7;
+  {                  }
+  { Blr definitions  }
+  {                  }
+{$ifndef _JRD_BLR_H_}
+  {!!MVC
+  #define blr_word(n) ((n) % 256), ((n) / 256)
+  !!MVC }
+
+  const
+     blr_text = 14;
+     blr_text2 = 15;
+     blr_short = 7;
+     blr_long = 8;
+     blr_quad = 9;
+     blr_int64 = 16;
+     blr_float = 10;
+     blr_double = 27;
+     blr_d_float = 11;
+     blr_timestamp = 35;
+     blr_varying = 37;
+     blr_varying2 = 38;
+     blr_blob = 261;
+     blr_cstring = 40;
+     blr_cstring2 = 41;
+     blr_blob_id = 45;
+     blr_sql_date = 12;
+     blr_sql_time = 13;
+  { Historical alias for pre V6 applications  }
+     blr_date = blr_timestamp;
+     blr_inner = 0;
+     blr_left = 1;
+     blr_right = 2;
+     blr_full = 3;
+     blr_gds_code = 0;
+     blr_sql_code = 1;
+     blr_exception = 2;
+     blr_trigger_code = 3;
+     blr_default_code = 4;
+     blr_version4 = 4;
+     blr_version5 = 5;
+     blr_eoc = 76;
+     blr_end = 255;
+     blr_assignment = 1;
+     blr_begin = 2;
+     blr_dcl_variable = 3;
+     blr_message = 4;
+     blr_erase = 5;
+     blr_fetch = 6;
+     blr_for = 7;
+     blr_if = 8;
+     blr_loop = 9;
+     blr_modify = 10;
+     blr_handler = 11;
+     blr_receive = 12;
+     blr_select = 13;
+     blr_send = 14;
+     blr_store = 15;
+     blr_label = 17;
+     blr_leave = 18;
+     blr_store2 = 19;
+     blr_post = 20;
+     blr_literal = 21;
+     blr_dbkey = 22;
+     blr_field = 23;
+     blr_fid = 24;
+     blr_parameter = 25;
+     blr_variable = 26;
+     blr_average = 27;
+     blr_count = 28;
+     blr_maximum = 29;
+     blr_minimum = 30;
+     blr_total = 31;
+     blr_add = 34;
+     blr_subtract = 35;
+     blr_multiply = 36;
+     blr_divide = 37;
+     blr_negate = 38;
+     blr_concatenate = 39;
+     blr_substring = 40;
+     blr_parameter2 = 41;
+     blr_from = 42;
+     blr_via = 43;
+     blr_user_name = 44;
+     blr_null = 45;
+     blr_eql = 47;
+     blr_neq = 48;
+     blr_gtr = 49;
+     blr_geq = 50;
+     blr_lss = 51;
+     blr_leq = 52;
+     blr_containing = 53;
+     blr_matching = 54;
+     blr_starting = 55;
+     blr_between = 56;
+     blr_or = 57;
+     blr_and = 58;
+     blr_not = 59;
+     blr_any = 60;
+     blr_missing = 61;
+     blr_unique = 62;
+     blr_like = 63;
+     blr_stream = 65;
+     blr_set_index = 66;
+     blr_rse = 67;
+     blr_first = 68;
+     blr_project = 69;
+     blr_sort = 70;
+     blr_boolean = 71;
+     blr_ascending = 72;
+     blr_descending = 73;
+     blr_relation = 74;
+     blr_rid = 75;
+     blr_union = 76;
+     blr_map = 77;
+     blr_group_by = 78;
+     blr_aggregate = 79;
+     blr_join_type = 80;
+     blr_agg_count = 83;
+     blr_agg_max = 84;
+     blr_agg_min = 85;
+     blr_agg_total = 86;
+     blr_agg_average = 87;
+     blr_parameter3 = 88;
+     blr_run_count = 118;
+     blr_run_max = 89;
+     blr_run_min = 90;
+     blr_run_total = 91;
+     blr_run_average = 92;
+     blr_agg_count2 = 93;
+     blr_agg_count_distinct = 94;
+     blr_agg_total_distinct = 95;
+     blr_agg_average_distinct = 96;
+     blr_function = 100;
+     blr_gen_id = 101;
+     blr_prot_mask = 102;
+     blr_upcase = 103;
+     blr_lock_state = 104;
+     blr_value_if = 105;
+     blr_matching2 = 106;
+     blr_index = 107;
+     blr_ansi_like = 108;
+     blr_bookmark = 109;
+     blr_crack = 110;
+     blr_force_crack = 111;
+     blr_seek = 112;
+     blr_find = 113;
+     blr_continue = 0;
+     blr_forward = 1;
+     blr_backward = 2;
+     blr_bof_forward = 3;
+     blr_eof_backward = 4;
+     blr_lock_relation = 114;
+     blr_lock_record = 115;
+     blr_set_bookmark = 116;
+     blr_get_bookmark = 117;
+     blr_rs_stream = 119;
+     blr_exec_proc = 120;
+     blr_begin_range = 121;
+     blr_end_range = 122;
+     blr_delete_range = 123;
+     blr_procedure = 124;
+     blr_pid = 125;
+     blr_exec_pid = 126;
+     blr_singular = 127;
+     blr_abort = 128;
+     blr_block = 129;
+     blr_error_handler = 130;
+     blr_cast = 131;
+     blr_release_lock = 132;
+     blr_release_locks = 133;
+     blr_start_savepoint = 134;
+     blr_end_savepoint = 135;
+     blr_find_dbkey = 136;
+     blr_range_relation = 137;
+     blr_delete_ranges = 138;
+     blr_plan = 139;
+     blr_merge = 140;
+     blr_join = 141;
+     blr_sequential = 142;
+     blr_navigational = 143;
+     blr_indices = 144;
+     blr_retrieve = 145;
+     blr_relation2 = 146;
+     blr_rid2 = 147;
+     blr_reset_stream = 148;
+     blr_release_bookmark = 149;
+     blr_set_generator = 150;
+     blr_ansi_any = 151;
+     blr_exists = 152;
+     blr_cardinality = 153;
+  { get tid of record  }
+     blr_record_version = 154;
+  { fake server stall  }
+     blr_stall = 155;
+     blr_seek_no_warn = 156;
+     blr_find_dbkey_version = 157;
+     blr_ansi_all = 158;
+     blr_extract = 159;
+  { sub parameters for blr_extract  }
+     blr_extract_year = 0;
+     blr_extract_month = 1;
+     blr_extract_day = 2;
+     blr_extract_hour = 3;
+     blr_extract_minute = 4;
+     blr_extract_second = 5;
+     blr_extract_weekday = 6;
+     blr_extract_yearday = 7;
+     blr_current_date = 160;
+     blr_current_timestamp = 161;
+     blr_current_time = 162;
+  { These verbs were added in 6.0, primarily to support 64-bit integers  }
+     blr_add2 = 163;
+     blr_subtract2 = 164;
+     blr_multiply2 = 165;
+     blr_divide2 = 166;
+     blr_agg_total2 = 167;
+     blr_agg_total_distinct2 = 168;
+     blr_agg_average2 = 169;
+     blr_agg_average_distinct2 = 170;
+     blr_average2 = 171;
+     blr_gen_id2 = 172;
+     blr_set_generator2 = 173;
+{$endif}
+  { _JRD_BLR_H_  }
+  {                                 }
+  { Database parameter block stuff  }
+  {                                 }
+
+  const
+     isc_dpb_version1 = 1;
+     isc_dpb_cdd_pathname = 1;
+     isc_dpb_allocation = 2;
+     isc_dpb_journal = 3;
+     isc_dpb_page_size = 4;
+     isc_dpb_num_buffers = 5;
+     isc_dpb_buffer_length = 6;
+     isc_dpb_debug = 7;
+     isc_dpb_garbage_collect = 8;
+     isc_dpb_verify = 9;
+     isc_dpb_sweep = 10;
+     isc_dpb_enable_journal = 11;
+     isc_dpb_disable_journal = 12;
+     isc_dpb_dbkey_scope = 13;
+     isc_dpb_number_of_users = 14;
+     isc_dpb_trace = 15;
+     isc_dpb_no_garbage_collect = 16;
+     isc_dpb_damaged = 17;
+     isc_dpb_license = 18;
+     isc_dpb_sys_user_name = 19;
+     isc_dpb_encrypt_key = 20;
+     isc_dpb_activate_shadow = 21;
+     isc_dpb_sweep_interval = 22;
+     isc_dpb_delete_shadow = 23;
+     isc_dpb_force_write = 24;
+     isc_dpb_begin_log = 25;
+     isc_dpb_quit_log = 26;
+     isc_dpb_no_reserve = 27;
+     isc_dpb_user_name = 28;
+     isc_dpb_password = 29;
+     isc_dpb_password_enc = 30;
+     isc_dpb_sys_user_name_enc = 31;
+     isc_dpb_interp = 32;
+     isc_dpb_online_dump = 33;
+     isc_dpb_old_file_size = 34;
+     isc_dpb_old_num_files = 35;
+     isc_dpb_old_file = 36;
+     isc_dpb_old_start_page = 37;
+     isc_dpb_old_start_seqno = 38;
+     isc_dpb_old_start_file = 39;
+     isc_dpb_drop_walfile = 40;
+     isc_dpb_old_dump_id = 41;
+     isc_dpb_wal_backup_dir = 42;
+     isc_dpb_wal_chkptlen = 43;
+     isc_dpb_wal_numbufs = 44;
+     isc_dpb_wal_bufsize = 45;
+     isc_dpb_wal_grp_cmt_wait = 46;
+     isc_dpb_lc_messages = 47;
+     isc_dpb_lc_ctype = 48;
+     isc_dpb_cache_manager = 49;
+     isc_dpb_shutdown = 50;
+     isc_dpb_online = 51;
+     isc_dpb_shutdown_delay = 52;
+     isc_dpb_reserved = 53;
+     isc_dpb_overwrite = 54;
+     isc_dpb_sec_attach = 55;
+     isc_dpb_disable_wal = 56;
+     isc_dpb_connect_timeout = 57;
+     isc_dpb_dummy_packet_interval = 58;
+     isc_dpb_gbak_attach = 59;
+     isc_dpb_sql_role_name = 60;
+     isc_dpb_set_page_buffers = 61;
+     isc_dpb_working_directory = 62;
+     isc_dpb_SQL_dialect = 63;
+     isc_dpb_set_db_readonly = 64;
+     isc_dpb_set_db_SQL_dialect = 65;
+     isc_dpb_gfix_attach = 66;
+     isc_dpb_gstat_attach = 67;
+  {                                }
+  { isc_dpb_verify specific flags  }
+  {                                }
+     isc_dpb_pages = 1;
+     isc_dpb_records = 2;
+     isc_dpb_indices = 4;
+     isc_dpb_transactions = 8;
+     isc_dpb_no_update = 16;
+     isc_dpb_repair = 32;
+     isc_dpb_ignore = 64;
+  {                                  }
+  { isc_dpb_shutdown specific flags  }
+  {                                  }
+     isc_dpb_shut_cache = 1;
+     isc_dpb_shut_attachment = 2;
+     isc_dpb_shut_transaction = 4;
+     isc_dpb_shut_force = 8;
+  {                                     }
+  { Bit assignments in RDB$SYSTEM_FLAG  }
+  {                                     }
+     RDB_system = 1;
+     RDB_id_assigned = 2;
+  {                                    }
+  { Transaction parameter block stuff  }
+  {                                    }
+     isc_tpb_version1 = 1;
+     isc_tpb_version3 = 3;
+     isc_tpb_consistency = 1;
+     isc_tpb_concurrency = 2;
+     isc_tpb_shared = 3;
+     isc_tpb_protected = 4;
+     isc_tpb_exclusive = 5;
+     isc_tpb_wait = 6;
+     isc_tpb_nowait = 7;
+     isc_tpb_read = 8;
+     isc_tpb_write = 9;
+     isc_tpb_lock_read = 10;
+     isc_tpb_lock_write = 11;
+     isc_tpb_verb_time = 12;
+     isc_tpb_commit_time = 13;
+     isc_tpb_ignore_limbo = 14;
+     isc_tpb_read_committed = 15;
+     isc_tpb_autocommit = 16;
+     isc_tpb_rec_version = 17;
+     isc_tpb_no_rec_version = 18;
+     isc_tpb_restart_requests = 19;
+     isc_tpb_no_auto_undo = 20;
+  {                       }
+  { Blob Parameter Block  }
+  {                       }
+     isc_bpb_version1 = 1;
+     isc_bpb_source_type = 1;
+     isc_bpb_target_type = 2;
+     isc_bpb_type = 3;
+     isc_bpb_source_interp = 4;
+     isc_bpb_target_interp = 5;
+     isc_bpb_filter_parameter = 6;
+     isc_bpb_type_segmented = 0;
+     isc_bpb_type_stream = 1;
+  {                                }
+  { Service parameter block stuff  }
+  {                                }
+     isc_spb_version1 = 1;
+     isc_spb_current_version = 2;
+     isc_spb_version = isc_spb_current_version;
+     isc_spb_user_name = isc_dpb_user_name;
+     isc_spb_sys_user_name = isc_dpb_sys_user_name;
+     isc_spb_sys_user_name_enc = isc_dpb_sys_user_name_enc;
+     isc_spb_password = isc_dpb_password;
+     isc_spb_password_enc = isc_dpb_password_enc;
+     isc_spb_command_line = 105;
+     isc_spb_dbname = 106;
+     isc_spb_verbose = 107;
+     isc_spb_options = 108;
+     isc_spb_connect_timeout = isc_dpb_connect_timeout;
+     isc_spb_dummy_packet_interval = isc_dpb_dummy_packet_interval;
+     isc_spb_sql_role_name = isc_dpb_sql_role_name;
+  {                                }
+  { Information call declarations  }
+  {                                }
+  {                           }
+  { Common, structural codes  }
+  {                           }
+     isc_info_end = 1;
+     isc_info_truncated = 2;
+     isc_info_error = 3;
+     isc_info_data_not_ready = 4;
+     isc_info_flag_end = 127;
+  {                             }
+  { Database information items  }
+  {                             }
+     isc_info_db_id = 4;
+     isc_info_reads = 5;
+     isc_info_writes = 6;
+     isc_info_fetches = 7;
+     isc_info_marks = 8;
+     isc_info_implementation = 11;
+     isc_info_version = 12;
+     isc_info_base_level = 13;
+     isc_info_page_size = 14;
+     isc_info_num_buffers = 15;
+     isc_info_limbo = 16;
+     isc_info_current_memory = 17;
+     isc_info_max_memory = 18;
+     isc_info_window_turns = 19;
+     isc_info_license = 20;
+     isc_info_allocation = 21;
+     isc_info_attachment_id = 22;
+     isc_info_read_seq_count = 23;
+     isc_info_read_idx_count = 24;
+     isc_info_insert_count = 25;
+     isc_info_update_count = 26;
+     isc_info_delete_count = 27;
+     isc_info_backout_count = 28;
+     isc_info_purge_count = 29;
+     isc_info_expunge_count = 30;
+     isc_info_sweep_interval = 31;
+     isc_info_ods_version = 32;
+     isc_info_ods_minor_version = 33;
+     isc_info_no_reserve = 34;
+     isc_info_logfile = 35;
+     isc_info_cur_logfile_name = 36;
+     isc_info_cur_log_part_offset = 37;
+     isc_info_num_wal_buffers = 38;
+     isc_info_wal_buffer_size = 39;
+     isc_info_wal_ckpt_length = 40;
+     isc_info_wal_cur_ckpt_interval = 41;
+     isc_info_wal_prv_ckpt_fname = 42;
+     isc_info_wal_prv_ckpt_poffset = 43;
+     isc_info_wal_recv_ckpt_fname = 44;
+     isc_info_wal_recv_ckpt_poffset = 45;
+     isc_info_wal_grpc_wait_usecs = 47;
+     isc_info_wal_num_io = 48;
+     isc_info_wal_avg_io_size = 49;
+     isc_info_wal_num_commits = 50;
+     isc_info_wal_avg_grpc_size = 51;
+     isc_info_forced_writes = 52;
+     isc_info_user_names = 53;
+     isc_info_page_errors = 54;
+     isc_info_record_errors = 55;
+     isc_info_bpage_errors = 56;
+     isc_info_dpage_errors = 57;
+     isc_info_ipage_errors = 58;
+     isc_info_ppage_errors = 59;
+     isc_info_tpage_errors = 60;
+     isc_info_set_page_buffers = 61;
+     isc_info_db_SQL_dialect = 62;
+     isc_info_db_read_only = 63;
+     isc_info_db_size_in_pages = 64;
+  {                                     }
+  { Database information return values  }
+  {                                     }
+     isc_info_db_impl_rdb_vms = 1;
+     isc_info_db_impl_rdb_eln = 2;
+     isc_info_db_impl_rdb_eln_dev = 3;
+     isc_info_db_impl_rdb_vms_y = 4;
+     isc_info_db_impl_rdb_eln_y = 5;
+     isc_info_db_impl_jri = 6;
+     isc_info_db_impl_jsv = 7;
+     isc_info_db_impl_isc_a = 25;
+     isc_info_db_impl_isc_u = 26;
+     isc_info_db_impl_isc_v = 27;
+     isc_info_db_impl_isc_s = 28;
+     isc_info_db_impl_isc_apl_68K = 25;
+     isc_info_db_impl_isc_vax_ultr = 26;
+     isc_info_db_impl_isc_vms = 27;
+     isc_info_db_impl_isc_sun_68k = 28;
+     isc_info_db_impl_isc_os2 = 29;
+     isc_info_db_impl_isc_sun4 = 30;
+     isc_info_db_impl_isc_hp_ux = 31;
+     isc_info_db_impl_isc_sun_386i = 32;
+     isc_info_db_impl_isc_vms_orcl = 33;
+     isc_info_db_impl_isc_mac_aux = 34;
+     isc_info_db_impl_isc_rt_aix = 35;
+     isc_info_db_impl_isc_mips_ult = 36;
+     isc_info_db_impl_isc_xenix = 37;
+     isc_info_db_impl_isc_dg = 38;
+     isc_info_db_impl_isc_hp_mpexl = 39;
+     isc_info_db_impl_isc_hp_ux68K = 40;
+     isc_info_db_impl_isc_sgi = 41;
+     isc_info_db_impl_isc_sco_unix = 42;
+     isc_info_db_impl_isc_cray = 43;
+     isc_info_db_impl_isc_imp = 44;
+     isc_info_db_impl_isc_delta = 45;
+     isc_info_db_impl_isc_next = 46;
+     isc_info_db_impl_isc_dos = 47;
+     isc_info_db_impl_isc_winnt = 48;
+     isc_info_db_impl_isc_epson = 49;
+     isc_info_db_class_access = 1;
+     isc_info_db_class_y_valve = 2;
+     isc_info_db_class_rem_int = 3;
+     isc_info_db_class_rem_srvr = 4;
+     isc_info_db_class_pipe_int = 7;
+     isc_info_db_class_pipe_srvr = 8;
+     isc_info_db_class_sam_int = 9;
+     isc_info_db_class_sam_srvr = 10;
+     isc_info_db_class_gateway = 11;
+     isc_info_db_class_cache = 12;
+  {                            }
+  { Request information items  }
+  {                            }
+     isc_info_number_messages = 4;
+     isc_info_max_message = 5;
+     isc_info_max_send = 6;
+     isc_info_max_receive = 7;
+     isc_info_state = 8;
+     isc_info_message_number = 9;
+     isc_info_message_size = 10;
+     isc_info_request_cost = 11;
+     isc_info_access_path = 12;
+     isc_info_req_select_count = 13;
+     isc_info_req_insert_count = 14;
+     isc_info_req_update_count = 15;
+     isc_info_req_delete_count = 16;
+  {                    }
+  { Access path items  }
+  {                    }
+     isc_info_rsb_end = 0;
+     isc_info_rsb_begin = 1;
+     isc_info_rsb_type = 2;
+     isc_info_rsb_relation = 3;
+     isc_info_rsb_plan = 4;
+  {            }
+  { Rsb types  }
+  {            }
+     isc_info_rsb_unknown = 1;
+     isc_info_rsb_indexed = 2;
+     isc_info_rsb_navigate = 3;
+     isc_info_rsb_sequential = 4;
+     isc_info_rsb_cross = 5;
+     isc_info_rsb_sort = 6;
+     isc_info_rsb_first = 7;
+     isc_info_rsb_boolean = 8;
+     isc_info_rsb_union = 9;
+     isc_info_rsb_aggregate = 10;
+     isc_info_rsb_merge = 11;
+     isc_info_rsb_ext_sequential = 12;
+     isc_info_rsb_ext_indexed = 13;
+     isc_info_rsb_ext_dbkey = 14;
+     isc_info_rsb_left_cross = 15;
+     isc_info_rsb_select = 16;
+     isc_info_rsb_sql_join = 17;
+     isc_info_rsb_simulate = 18;
+     isc_info_rsb_sim_cross = 19;
+     isc_info_rsb_once = 20;
+     isc_info_rsb_procedure = 21;
+  {                     }
+  { Bitmap expressions  }
+  {                     }
+     isc_info_rsb_and = 1;
+     isc_info_rsb_or = 2;
+     isc_info_rsb_dbkey = 3;
+     isc_info_rsb_index = 4;
+     isc_info_req_active = 2;
+     isc_info_req_inactive = 3;
+     isc_info_req_send = 4;
+     isc_info_req_receive = 5;
+     isc_info_req_select = 6;
+     isc_info_req_sql_stall = 7;
+  {                         }
+  { Blob information items  }
+  {                         }
+     isc_info_blob_num_segments = 4;
+     isc_info_blob_max_segment = 5;
+     isc_info_blob_total_length = 6;
+     isc_info_blob_type = 7;
+  {                                }
+  { Transaction information items  }
+  {                                }
+     isc_info_tra_id = 4;
+  {
+     Service action items
+                                }
+  { Starts database backup process on the server  }
+     isc_action_svc_backup = 1;
+  { Starts database restore process on the server  }
+     isc_action_svc_restore = 2;
+  { Starts database repair process on the server  }
+     isc_action_svc_repair = 3;
+  { Adds a new user to the security database  }
+     isc_action_svc_add_user = 4;
+  { Deletes a user record from the security database  }
+     isc_action_svc_delete_user = 5;
+  { Modifies a user record in the security database  }
+     isc_action_svc_modify_user = 6;
+  { Displays a user record from the security database  }
+     isc_action_svc_display_user = 7;
+  { Sets database properties  }
+     isc_action_svc_properties = 8;
+  { Adds a license to the license file  }
+     isc_action_svc_add_license = 9;
+  { Removes a license from the license file  }
+     isc_action_svc_remove_license = 10;
+  { Retrieves database statistics  }
+     isc_action_svc_db_stats = 11;
+  { Retrieves the InterBase log file from the server  }
+     isc_action_svc_get_ib_log = 12;
+  {
+     Service information items
+                                }
+  { Retrieves the number of attachments and databases  }
+     isc_info_svc_svr_db_info = 50;
+  { Retrieves all license keys and IDs from the license file  }
+     isc_info_svc_get_license = 51;
+  { Retrieves a bitmask representing licensed options on the server  }
+     isc_info_svc_get_license_mask = 52;
+  { Retrieves the parameters and values for IB_CONFIG  }
+     isc_info_svc_get_config = 53;
+  { Retrieves the version of the services manager  }
+     isc_info_svc_version = 54;
+  { Retrieves the version of the InterBase server  }
+     isc_info_svc_server_version = 55;
+  { Retrieves the implementation of the InterBase server  }
+     isc_info_svc_implementation = 56;
+  { Retrieves a bitmask representing the server's capabilities  }
+     isc_info_svc_capabilities = 57;
+  { Retrieves the path to the security database in use by the server  }
+     isc_info_svc_user_dbpath = 58;
+  { Retrieves the setting of $INTERBASE  }
+     isc_info_svc_get_env = 59;
+  { Retrieves the setting of $INTERBASE_LCK  }
+     isc_info_svc_get_env_lock = 60;
+  { Retrieves the setting of $INTERBASE_MSG  }
+     isc_info_svc_get_env_msg = 61;
+  { Retrieves 1 line of service output per call  }
+     isc_info_svc_line = 62;
+  { Retrieves as much of the server output as will fit in the supplied buffer  }
+     isc_info_svc_to_eof = 63;
+  { Sets / signifies a timeout value for reading service information  }
+     isc_info_svc_timeout = 64;
+  { Retrieves the number of users licensed for accessing the server  }
+     isc_info_svc_get_licensed_users = 65;
+  { Retrieve the limbo transactions  }
+     isc_info_svc_limbo_trans = 66;
+  { Checks to see if a service is running on an attachment  }
+     isc_info_svc_running = 67;
+  { Returns the user information from isc_action_svc_display_users  }
+     isc_info_svc_get_users = 68;
+  {
+     Parameters for isc_action_(add|delete|modify)_user
+   }
+     isc_spb_sec_userid = 5;
+     isc_spb_sec_groupid = 6;
+     isc_spb_sec_username = 7;
+     isc_spb_sec_password = 8;
+     isc_spb_sec_groupname = 9;
+     isc_spb_sec_firstname = 10;
+     isc_spb_sec_middlename = 11;
+     isc_spb_sec_lastname = 12;
+  {
+     Parameters for isc_action_svc_(add|remove)_license,
+     isc_info_svc_get_license
+                                                          }
+     isc_spb_lic_key = 5;
+     isc_spb_lic_id = 6;
+     isc_spb_lic_desc = 7;
+  {
+     Parameters for isc_action_svc_backup
+                                            }
+     isc_spb_bkp_file = 5;
+     isc_spb_bkp_factor = 6;
+     isc_spb_bkp_length = 7;
+     isc_spb_bkp_ignore_checksums = $01;
+     isc_spb_bkp_ignore_limbo = $02;
+     isc_spb_bkp_metadata_only = $04;
+     isc_spb_bkp_no_garbage_collect = $08;
+     isc_spb_bkp_old_descriptions = $10;
+     isc_spb_bkp_non_transportable = $20;
+     isc_spb_bkp_convert = $40;
+     isc_spb_bkp_expand = $80;
+  {
+     Parameters for isc_action_svc_properties
+                                               }
+     isc_spb_prp_page_buffers = 5;
+     isc_spb_prp_sweep_interval = 6;
+     isc_spb_prp_shutdown_db = 7;
+     isc_spb_prp_deny_new_attachments = 9;
+     isc_spb_prp_deny_new_transactions = 10;
+     isc_spb_prp_reserve_space = 11;
+     isc_spb_prp_write_mode = 12;
+     isc_spb_prp_access_mode = 13;
+     isc_spb_prp_set_sql_dialect = 14;
+     isc_spb_prp_activate = $0100;
+     isc_spb_prp_db_online = $0200;
+  {
+     Parameters for isc_spb_prp_reserve_space
+                                               }
+     isc_spb_prp_res_use_full = 35;
+     isc_spb_prp_res = 36;
+  {
+     Parameters for isc_spb_prp_write_mode
+                                             }
+     isc_spb_prp_wm_async = 37;
+     isc_spb_prp_wm_sync = 38;
+  {
+     Parameters for isc_spb_prp_access_mode
+                                             }
+     isc_spb_prp_am_readonly = 39;
+     isc_spb_prp_am_readwrite = 40;
+  {
+     Parameters for isc_action_svc_repair
+                                            }
+     isc_spb_rpr_commit_trans = 15;
+     isc_spb_rpr_rollback_trans = 34;
+     isc_spb_rpr_recover_two_phase = 17;
+     isc_spb_tra_id = 18;
+     isc_spb_single_tra_id = 19;
+     isc_spb_multi_tra_id = 20;
+     isc_spb_tra_state = 21;
+     isc_spb_tra_state_limbo = 22;
+     isc_spb_tra_state_commit = 23;
+     isc_spb_tra_state_rollback = 24;
+     isc_spb_tra_state_unknown = 25;
+     isc_spb_tra_host_site = 26;
+     isc_spb_tra_remote_site = 27;
+     isc_spb_tra_db_path = 28;
+     isc_spb_tra_advise = 29;
+     isc_spb_tra_advise_commit = 30;
+     isc_spb_tra_advise_rollback = 31;
+     isc_spb_tra_advise_unknown = 33;
+     isc_spb_rpr_validate_db = $01;
+     isc_spb_rpr_sweep_db = $02;
+     isc_spb_rpr_mend_db = $04;
+     isc_spb_rpr_list_limbo_trans = $08;
+     isc_spb_rpr_check_db = $10;
+     isc_spb_rpr_ignore_checksum = $20;
+     isc_spb_rpr_kill_shadows = $40;
+     isc_spb_rpr_full = $80;
+  {
+     Parameters for isc_action_svc_restore
+                                            }
+     isc_spb_res_buffers = 9;
+     isc_spb_res_page_size = 10;
+     isc_spb_res_length = 11;
+     isc_spb_res_access_mode = 12;
+     isc_spb_res_deactivate_idx = $0100;
+     isc_spb_res_no_shadow = $0200;
+     isc_spb_res_no_validity = $0400;
+     isc_spb_res_one_at_a_time = $0800;
+     isc_spb_res_replace = $1000;
+     isc_spb_res_create = $2000;
+     isc_spb_res_use_all_space = $4000;
+  {
+     Parameters for isc_spb_res_access_mode
+                                             }
+     isc_spb_res_am_readonly = isc_spb_prp_am_readonly;
+     isc_spb_res_am_readwrite = isc_spb_prp_am_readwrite;
+  {
+     Parameters for isc_info_svc_svr_db_info
+                                              }
+     isc_spb_num_att = 5;
+     isc_spb_num_db = 6;
+  {
+     Parameters for isc_info_svc_db_stats
+                                            }
+     isc_spb_sts_data_pages = $01;
+     isc_spb_sts_db_log = $02;
+     isc_spb_sts_hdr_pages = $04;
+     isc_spb_sts_idx_pages = $08;
+     isc_spb_sts_sys_relations = $10;
+  {                        }
+  { SQL information items  }
+  {                        }
+     isc_info_sql_select = 4;
+     isc_info_sql_bind = 5;
+     isc_info_sql_num_variables = 6;
+     isc_info_sql_describe_vars = 7;
+     isc_info_sql_describe_end = 8;
+     isc_info_sql_sqlda_seq = 9;
+     isc_info_sql_message_seq = 10;
+     isc_info_sql_type = 11;
+     isc_info_sql_sub_type = 12;
+     isc_info_sql_scale = 13;
+     isc_info_sql_length = 14;
+     isc_info_sql_null_ind = 15;
+     isc_info_sql_field = 16;
+     isc_info_sql_relation = 17;
+     isc_info_sql_owner = 18;
+     isc_info_sql_alias = 19;
+     isc_info_sql_sqlda_start = 20;
+     isc_info_sql_stmt_type = 21;
+     isc_info_sql_get_plan = 22;
+     isc_info_sql_records = 23;
+     isc_info_sql_batch_fetch = 24;
+  {                                }
+  { SQL information return values  }
+  {                                }
+     isc_info_sql_stmt_select = 1;
+     isc_info_sql_stmt_insert = 2;
+     isc_info_sql_stmt_update = 3;
+     isc_info_sql_stmt_delete = 4;
+     isc_info_sql_stmt_ddl = 5;
+     isc_info_sql_stmt_get_segment = 6;
+     isc_info_sql_stmt_put_segment = 7;
+     isc_info_sql_stmt_exec_procedure = 8;
+     isc_info_sql_stmt_start_trans = 9;
+     isc_info_sql_stmt_commit = 10;
+     isc_info_sql_stmt_rollback = 11;
+     isc_info_sql_stmt_select_for_upd = 12;
+     isc_info_sql_stmt_set_generator = 13;
+  {                                  }
+  { Server configuration key values  }
+  {                                  }
+     ISCCFG_LOCKMEM_KEY = 0;
+     ISCCFG_LOCKSEM_KEY = 1;
+     ISCCFG_LOCKSIG_KEY = 2;
+     ISCCFG_EVNTMEM_KEY = 3;
+     ISCCFG_DBCACHE_KEY = 4;
+     ISCCFG_PRIORITY_KEY = 5;
+     ISCCFG_IPCMAP_KEY = 6;
+     ISCCFG_MEMMIN_KEY = 7;
+     ISCCFG_MEMMAX_KEY = 8;
+     ISCCFG_LOCKORDER_KEY = 9;
+     ISCCFG_ANYLOCKMEM_KEY = 10;
+     ISCCFG_ANYLOCKSEM_KEY = 11;
+     ISCCFG_ANYLOCKSIG_KEY = 12;
+     ISCCFG_ANYEVNTMEM_KEY = 13;
+     ISCCFG_LOCKHASH_KEY = 14;
+     ISCCFG_DEADLOCK_KEY = 15;
+     ISCCFG_LOCKSPIN_KEY = 16;
+     ISCCFG_CONN_TIMEOUT_KEY = 17;
+     ISCCFG_DUMMY_INTRVL_KEY = 18;
+  { Internal Use only  }
+     ISCCFG_TRACE_POOLS_KEY = 19;
+     ISCCFG_REMOTE_BUFFER_KEY = 20;
+  {              }
+  { Error codes  }
+  {              }
+     isc_facility = 20;
+     isc_err_base = 335544320;
+     isc_err_factor = 1;
+     isc_arg_end = 0;
+     isc_arg_gds = 1;
+     isc_arg_string = 2;
+     isc_arg_cstring = 3;
+     isc_arg_number = 4;
+     isc_arg_interpreted = 5;
+     isc_arg_vms = 6;
+     isc_arg_unix = 7;
+     isc_arg_domain = 8;
+     isc_arg_dos = 9;
+     isc_arg_mpexl = 10;
+     isc_arg_mpexl_ipc = 11;
+     isc_arg_next_mach = 15;
+     isc_arg_netware = 16;
+     isc_arg_win32 = 17;
+     isc_arg_warning = 18;
+
+  {                                             }
+  { Dynamic Data Definition Language operators  }
+  {                                             }
+  {                 }
+  { Version number  }
+  {                 }
+
+  const
+     isc_dyn_version_1 = 1;
+     isc_dyn_eoc = 255;
+  {                             }
+  { Operations (may be nested)  }
+  {                             }
+     isc_dyn_begin = 2;
+     isc_dyn_end = 3;
+     isc_dyn_if = 4;
+     isc_dyn_def_database = 5;
+     isc_dyn_def_global_fld = 6;
+     isc_dyn_def_local_fld = 7;
+     isc_dyn_def_idx = 8;
+     isc_dyn_def_rel = 9;
+     isc_dyn_def_sql_fld = 10;
+     isc_dyn_def_view = 12;
+     isc_dyn_def_trigger = 15;
+     isc_dyn_def_security_class = 120;
+     isc_dyn_def_dimension = 140;
+     isc_dyn_def_generator = 24;
+     isc_dyn_def_function = 25;
+     isc_dyn_def_filter = 26;
+     isc_dyn_def_function_arg = 27;
+     isc_dyn_def_shadow = 34;
+     isc_dyn_def_trigger_msg = 17;
+     isc_dyn_def_file = 36;
+     isc_dyn_mod_database = 39;
+     isc_dyn_mod_rel = 11;
+     isc_dyn_mod_global_fld = 13;
+     isc_dyn_mod_idx = 102;
+     isc_dyn_mod_local_fld = 14;
+     isc_dyn_mod_sql_fld = 216;
+     isc_dyn_mod_view = 16;
+     isc_dyn_mod_security_class = 122;
+     isc_dyn_mod_trigger = 113;
+     isc_dyn_mod_trigger_msg = 28;
+     isc_dyn_delete_database = 18;
+     isc_dyn_delete_rel = 19;
+     isc_dyn_delete_global_fld = 20;
+     isc_dyn_delete_local_fld = 21;
+     isc_dyn_delete_idx = 22;
+     isc_dyn_delete_security_class = 123;
+     isc_dyn_delete_dimensions = 143;
+     isc_dyn_delete_trigger = 23;
+     isc_dyn_delete_trigger_msg = 29;
+     isc_dyn_delete_filter = 32;
+     isc_dyn_delete_function = 33;
+     isc_dyn_delete_shadow = 35;
+     isc_dyn_grant = 30;
+     isc_dyn_revoke = 31;
+     isc_dyn_def_primary_key = 37;
+     isc_dyn_def_foreign_key = 38;
+     isc_dyn_def_unique = 40;
+     isc_dyn_def_procedure = 164;
+     isc_dyn_delete_procedure = 165;
+     isc_dyn_def_parameter = 135;
+     isc_dyn_delete_parameter = 136;
+     isc_dyn_mod_procedure = 175;
+     isc_dyn_def_log_file = 176;
+     isc_dyn_def_cache_file = 180;
+     isc_dyn_def_exception = 181;
+     isc_dyn_mod_exception = 182;
+     isc_dyn_del_exception = 183;
+     isc_dyn_drop_log = 194;
+     isc_dyn_drop_cache = 195;
+     isc_dyn_def_default_log = 202;
+  {                      }
+  { View specific stuff  }
+  {                      }
+     isc_dyn_view_blr = 43;
+     isc_dyn_view_source = 44;
+     isc_dyn_view_relation = 45;
+     isc_dyn_view_context = 46;
+     isc_dyn_view_context_name = 47;
+  {                     }
+  { Generic attributes  }
+  {                     }
+     isc_dyn_rel_name = 50;
+     isc_dyn_fld_name = 51;
+     isc_dyn_new_fld_name = 215;
+     isc_dyn_idx_name = 52;
+     isc_dyn_description = 53;
+     isc_dyn_security_class = 54;
+     isc_dyn_system_flag = 55;
+     isc_dyn_update_flag = 56;
+     isc_dyn_prc_name = 166;
+     isc_dyn_prm_name = 137;
+     isc_dyn_sql_object = 196;
+     isc_dyn_fld_character_set_name = 174;
+  {                               }
+  { Relation specific attributes  }
+  {                               }
+     isc_dyn_rel_dbkey_length = 61;
+     isc_dyn_rel_store_trig = 62;
+     isc_dyn_rel_modify_trig = 63;
+     isc_dyn_rel_erase_trig = 64;
+     isc_dyn_rel_store_trig_source = 65;
+     isc_dyn_rel_modify_trig_source = 66;
+     isc_dyn_rel_erase_trig_source = 67;
+     isc_dyn_rel_ext_file = 68;
+     isc_dyn_rel_sql_protection = 69;
+     isc_dyn_rel_constraint = 162;
+     isc_dyn_delete_rel_constraint = 163;
+  {                                   }
+  { Global field specific attributes  }
+  {                                   }
+     isc_dyn_fld_type = 70;
+     isc_dyn_fld_length = 71;
+     isc_dyn_fld_scale = 72;
+     isc_dyn_fld_sub_type = 73;
+     isc_dyn_fld_segment_length = 74;
+     isc_dyn_fld_query_header = 75;
+     isc_dyn_fld_edit_string = 76;
+     isc_dyn_fld_validation_blr = 77;
+     isc_dyn_fld_validation_source = 78;
+     isc_dyn_fld_computed_blr = 79;
+     isc_dyn_fld_computed_source = 80;
+     isc_dyn_fld_missing_value = 81;
+     isc_dyn_fld_default_value = 82;
+     isc_dyn_fld_query_name = 83;
+     isc_dyn_fld_dimensions = 84;
+     isc_dyn_fld_not_null = 85;
+     isc_dyn_fld_precision = 86;
+     isc_dyn_fld_char_length = 172;
+     isc_dyn_fld_collation = 173;
+     isc_dyn_fld_default_source = 193;
+     isc_dyn_del_default = 197;
+     isc_dyn_del_validation = 198;
+     isc_dyn_single_validation = 199;
+     isc_dyn_fld_character_set = 203;
+  {                                  }
+  { Local field specific attributes  }
+  {                                  }
+     isc_dyn_fld_source = 90;
+     isc_dyn_fld_base_fld = 91;
+     isc_dyn_fld_position = 92;
+     isc_dyn_fld_update_flag = 93;
+  {                            }
+  { Index specific attributes  }
+  {                            }
+     isc_dyn_idx_unique = 100;
+     isc_dyn_idx_inactive = 101;
+     isc_dyn_idx_type = 103;
+     isc_dyn_idx_foreign_key = 104;
+     isc_dyn_idx_ref_column = 105;
+     isc_dyn_idx_statistic = 204;
+  {                              }
+  { Trigger specific attributes  }
+  {                              }
+     isc_dyn_trg_type = 110;
+     isc_dyn_trg_blr = 111;
+     isc_dyn_trg_source = 112;
+     isc_dyn_trg_name = 114;
+     isc_dyn_trg_sequence = 115;
+     isc_dyn_trg_inactive = 116;
+     isc_dyn_trg_msg_number = 117;
+     isc_dyn_trg_msg = 118;
+  {                                     }
+  { Security Class specific attributes  }
+  {                                     }
+     isc_dyn_scl_acl = 121;
+     isc_dyn_grant_user = 130;
+     isc_dyn_grant_proc = 186;
+     isc_dyn_grant_trig = 187;
+     isc_dyn_grant_view = 188;
+     isc_dyn_grant_options = 132;
+     isc_dyn_grant_user_group = 205;
+  {                                 }
+  { Dimension specific information  }
+  {                                 }
+     isc_dyn_dim_lower = 141;
+     isc_dyn_dim_upper = 142;
+  {                           }
+  { File specific attributes  }
+  {                           }
+     isc_dyn_file_name = 125;
+     isc_dyn_file_start = 126;
+     isc_dyn_file_length = 127;
+     isc_dyn_shadow_number = 128;
+     isc_dyn_shadow_man_auto = 129;
+     isc_dyn_shadow_conditional = 130;
+  {                               }
+  { Log file specific attributes  }
+  {                               }
+     isc_dyn_log_file_sequence = 177;
+     isc_dyn_log_file_partitions = 178;
+     isc_dyn_log_file_serial = 179;
+     isc_dyn_log_file_overflow = 200;
+     isc_dyn_log_file_raw = 201;
+  {                          }
+  { Log specific attributes  }
+  {                          }
+     isc_dyn_log_group_commit_wait = 189;
+     isc_dyn_log_buffer_size = 190;
+     isc_dyn_log_check_point_length = 191;
+     isc_dyn_log_num_of_buffers = 192;
+  {                               }
+  { Function specific attributes  }
+  {                               }
+     isc_dyn_function_name = 145;
+     isc_dyn_function_type = 146;
+     isc_dyn_func_module_name = 147;
+     isc_dyn_func_entry_point = 148;
+     isc_dyn_func_return_argument = 149;
+     isc_dyn_func_arg_position = 150;
+     isc_dyn_func_mechanism = 151;
+     isc_dyn_filter_in_subtype = 152;
+     isc_dyn_filter_out_subtype = 153;
+     isc_dyn_description2 = 154;
+     isc_dyn_fld_computed_source2 = 155;
+     isc_dyn_fld_edit_string2 = 156;
+     isc_dyn_fld_query_header2 = 157;
+     isc_dyn_fld_validation_source2 = 158;
+     isc_dyn_trg_msg2 = 159;
+     isc_dyn_trg_source2 = 160;
+     isc_dyn_view_source2 = 161;
+     isc_dyn_xcp_msg2 = 184;
+  {                                }
+  { Generator specific attributes  }
+  {                                }
+     isc_dyn_generator_name = 95;
+     isc_dyn_generator_id = 96;
+  {                                }
+  { Procedure specific attributes  }
+  {                                }
+     isc_dyn_prc_inputs = 167;
+     isc_dyn_prc_outputs = 168;
+     isc_dyn_prc_source = 169;
+     isc_dyn_prc_blr = 170;
+     isc_dyn_prc_source2 = 171;
+  {                                }
+  { Parameter specific attributes  }
+  {                                }
+     isc_dyn_prm_number = 138;
+     isc_dyn_prm_type = 139;
+  {                               }
+  { Relation specific attributes  }
+  {                               }
+     isc_dyn_xcp_msg = 185;
+  {                                             }
+  { Cascading referential integrity values      }
+  {                                             }
+     isc_dyn_foreign_key_update = 205;
+     isc_dyn_foreign_key_delete = 206;
+     isc_dyn_foreign_key_cascade = 207;
+     isc_dyn_foreign_key_default = 208;
+     isc_dyn_foreign_key_null = 209;
+     isc_dyn_foreign_key_none = 210;
+  {                      }
+  { SQL role values      }
+  {                      }
+     isc_dyn_def_sql_role = 211;
+     isc_dyn_sql_role_name = 212;
+     isc_dyn_grant_admin_options = 213;
+     isc_dyn_del_sql_role = 214;
+  {                           }
+  { Last $dyn value assigned  }
+  {                           }
+     isc_dyn_last_dyn_value = 216;
+  {                                         }
+  { Array slice description language (SDL)  }
+  {                                         }
+     isc_sdl_version1 = 1;
+     isc_sdl_eoc = 255;
+     isc_sdl_relation = 2;
+     isc_sdl_rid = 3;
+     isc_sdl_field = 4;
+     isc_sdl_fid = 5;
+     isc_sdl_struct = 6;
+     isc_sdl_variable = 7;
+     isc_sdl_scalar = 8;
+     isc_sdl_tiny_integer = 9;
+     isc_sdl_short_integer = 10;
+     isc_sdl_long_integer = 11;
+     isc_sdl_literal = 12;
+     isc_sdl_add = 13;
+     isc_sdl_subtract = 14;
+     isc_sdl_multiply = 15;
+     isc_sdl_divide = 16;
+     isc_sdl_negate = 17;
+     isc_sdl_eql = 18;
+     isc_sdl_neq = 19;
+     isc_sdl_gtr = 20;
+     isc_sdl_geq = 21;
+     isc_sdl_lss = 22;
+     isc_sdl_leq = 23;
+     isc_sdl_and = 24;
+     isc_sdl_or = 25;
+     isc_sdl_not = 26;
+     isc_sdl_while = 27;
+     isc_sdl_assignment = 28;
+     isc_sdl_label = 29;
+     isc_sdl_leave = 30;
+     isc_sdl_begin = 31;
+     isc_sdl_end = 32;
+     isc_sdl_do3 = 33;
+     isc_sdl_do2 = 34;
+     isc_sdl_do1 = 35;
+     isc_sdl_element = 36;
+  {                                           }
+  { International text interpretation values  }
+  {                                           }
+     isc_interp_eng_ascii = 0;
+     isc_interp_jpn_sjis = 5;
+     isc_interp_jpn_euc = 6;
+  {                  }
+  { SQL definitions  }
+  {                  }
+     SQL_TEXT = 452;
+     SQL_VARYING = 448;
+     SQL_SHORT = 500;
+     SQL_LONG = 496;
+     SQL_FLOAT = 482;
+     SQL_DOUBLE = 480;
+     SQL_D_FLOAT = 530;
+     SQL_TIMESTAMP = 510;
+     SQL_BLOB = 520;
+     SQL_ARRAY = 540;
+     SQL_QUAD = 550;
+     SQL_TYPE_TIME = 560;
+     SQL_TYPE_DATE = 570;
+     SQL_INT64 = 580;
+  { Historical alias for pre V6 applications  }
+     SQL_DATE = SQL_TIMESTAMP;
+  {                }
+  { Blob Subtypes  }
+  {                }
+  { types less than zero are reserved for customer use  }
+     isc_blob_untyped = 0;
+  { internal subtypes  }
+     isc_blob_text = 1;
+     isc_blob_blr = 2;
+     isc_blob_acl = 3;
+     isc_blob_ranges = 4;
+     isc_blob_summary = 5;
+     isc_blob_format = 6;
+     isc_blob_tra = 7;
+     isc_blob_extfile = 8;
+  { the range 20-30 is reserved for dBASE and Paradox types  }
+     isc_blob_formatted_memo = 20;
+     isc_blob_paradox_ole = 21;
+     isc_blob_graphic = 22;
+     isc_blob_dbase_ole = 23;
+     isc_blob_typed_binary = 24;
+
+{$IFNDEF LinkDynamically}
+
+  {                          }
+  { OSRI database functions  }
+  {                          }
+
+  function isc_attach_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_gen_sdl(_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;
+             _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_lookup_bounds(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;
+             _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;
+             _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_set_desc(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint;
+             _para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;
+             _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_blob_default_desc(_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl; external gdslib;
+
+  function isc_blob_gen_bpb(_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte;
+             _para6:Pword):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_info(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pbyte; _para5:Pbyte;
+             _para6:PISC_BLOB_DESC; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_set_desc(_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint;
+             _para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_cancel_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_cancel_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_close_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_commit_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_commit_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_blob(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;
+             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;
+             _para6:Pchar; _para7:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_database_info(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_decode_date(_para1:PISC_QUAD; _para2:pointer); extdecl; external gdslib;
+
+  procedure isc_decode_sql_date(_para1:PISC_DATE; _para2:pointer); extdecl; external gdslib;
+
+  procedure isc_decode_sql_time(_para1:PISC_TIME; _para2:pointer); extdecl; external gdslib;
+
+  procedure isc_decode_timestamp(_para1:PISC_TIMESTAMP; _para2:pointer); extdecl; external gdslib;
+
+  function isc_detach_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_drop_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_allocate_statement(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_alloc_statement2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_describe(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_exec_immed2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:PXSQLDA; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;
+             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_fetch(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_finish(_para1:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_free_statement(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_insert(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_set_cursor_name(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_sql_info(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_encode_date(_para1:pointer; _para2:PISC_QUAD); extdecl; external gdslib;
+
+  procedure isc_encode_sql_date(_para1:pointer; _para2:PISC_DATE); extdecl; external gdslib;
+
+  procedure isc_encode_sql_time(_para1:pointer; _para2:PISC_TIME); extdecl; external gdslib;
+
+  procedure isc_encode_timestamp(_para1:pointer; _para2:PISC_TIMESTAMP); extdecl; external gdslib;
+
+  function isc_event_block(_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl; external gdslib;
+
+  {!!MVC
+  void         isc_event_counts (unsigned ISC_LONG   ,
+                                         short,
+                                         char   ,
+                                         char   ); extdecl; external gdslib;
+  !!MVC }
+  procedure isc_expand_dpb(_para1:PPchar; _para2:Psmallint; args:array of const); cdecl; external gdslib;
+
+  function isc_modify_dpb(_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl; external gdslib;
+
+  function isc_free(_para1:Pchar):ISC_LONG; extdecl; external gdslib;
+
+  function isc_get_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;
+             _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer;
+             _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_interprete(_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_open_blob(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_open_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;
+             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_prepare_transaction2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_print_sqlerror(_para1:smallint; _para2:PISC_STATUS); extdecl; external gdslib;
+
+  function isc_print_status(_para1:PISC_STATUS):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_put_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;
+             _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_que_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG; _para4:smallint; _para5:Pchar;
+             _para6:isc_callback; _para7:pointer):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_rollback_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_rollback_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_multiple(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl; external gdslib;
+
+  function isc_sqlcode(_para1:PISC_STATUS):ISC_LONG; extdecl; external gdslib;
+
+  procedure isc_sql_interprete(_para1:smallint; _para2:Pchar; _para3:smallint); extdecl; external gdslib;
+
+  function isc_transaction_info(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_transact_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_vax_integer(_para1:Pchar; _para2:smallint):ISC_LONG; extdecl; external gdslib;
+
+  function isc_portable_integer(_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl; external gdslib;
+
+  {                                    }
+  { Security Functions                 }
+  {                                    }
+
+
+  function isc_add_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
+
+  function isc_delete_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
+
+  function isc_modify_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
+
+  {                                 }
+  {  Other OSRI functions           }
+  {                                 }
+  function isc_compile_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_compile_request2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_ddl(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_prepare_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_receive(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;
+             _para6:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_reconnect_transaction(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_release_request(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_request_info(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;
+             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_seek_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;
+             _para6:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_and_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:smallint;
+             _para6:pointer; _para7:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_request(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_unwind_request(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_wait_for_event(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  {                            }
+  { Other Sql functions        }
+  {                            }
+  function isc_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint;
+             _para6:Pchar; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  {                                    }
+  { Other Dynamic sql functions        }
+  {                                    }
+  function isc_dsql_execute_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:word; _para8:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_execute2_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar;
+             _para11:word; _para12:word; _para13:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_execute_immediate_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;
+             _para11:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_exec_immed3_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;
+             _para11:Pchar; _para12:word; _para13:Pchar; _para14:word; _para15:word;
+             _para16:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_fetch_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;
+             _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_insert_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;
+             _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_prepare_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;
+             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_execute_immed(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_open2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;
+             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_insert(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:word;
+             _para6:Pchar; _para7:word; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_embed_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  {                             }
+  { Other Blob functions        }
+  {                             }
+  function BLOB_open(_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl; external gdslib;
+
+  function BLOB_put(_para1:char; _para2:PBSTREAM):longint; extdecl; external gdslib;
+
+  function BLOB_close(_para1:PBSTREAM):longint; extdecl; external gdslib;
+
+  function BLOB_get(_para1:PBSTREAM):longint; extdecl; external gdslib;
+
+  function BLOB_display(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function BLOB_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function BLOB_edit(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function BLOB_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function BLOB_text_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function BLOB_text_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
+
+  function Bopen(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl; external gdslib;
+
+{$IFDEF Unix}
+  function Bopen2(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl; external gdslib;
+{$ENDIF}
+
+  {                             }
+  { Other Misc functions        }
+  {                             }
+  function isc_ftof(_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl; external gdslib;
+
+  function isc_print_blr(_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_set_debug(_para1:longint); extdecl; external gdslib;
+
+  procedure isc_qtoq(_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl; external gdslib;
+
+  procedure isc_vtof(_para1:Pchar; _para2:Pchar; _para3:word); extdecl; external gdslib;
+
+  procedure isc_vtov(_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl; external gdslib;
+
+  function isc_version(_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl; external gdslib;
+
+{$IFDEF Unix}
+  function isc_reset_fpe(_para1:word):ISC_LONG; extdecl; external gdslib;
+{$ENDIF}
+
+  {                                        }
+  { Service manager functions              }
+  {                                        }
+  (*!!MVC
+  #define ADD_SPB_LENGTH(p, length)     { (p)++ = (length); \
+                                          (p)++ = (length) >> 8;}
+
+  #define ADD_SPB_NUMERIC(p, data)      { (p)++ = (data); \
+                                          (p)++ = (data) >> 8; \
+                                          (p)++ = (data) >> 16; \
+                                          (p)++ = (data) >> 24;}
+  !!MVC *)
+
+  function isc_service_attach(_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_detach(_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_query(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar;
+             _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_start(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  {                              }
+  { Forms functions              }
+  {                              }
+{$IFDEF Unix}
+  function isc_compile_map(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_compile_menu(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_compile_sub_map(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_window(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;
+             _para6:Psmallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_delete_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_drive_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_win_handle; _para5:Pisc_req_handle;
+             _para6:Pbyte; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_drive_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar;
+             _para6:Psmallint; _para7:Pchar; _para8:Psmallint; _para9:Psmallint; _para10:Pchar;
+             _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_form_delete(_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_form_fetch(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_form_insert(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_get_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;
+             _para6:Psmallint):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_initialize_menu(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_load_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_form_handle; _para5:Psmallint;
+             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_pop_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_put_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_reset_form(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
+
+  function isc_suspend_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
+{$ENDIF}
+
+  function isc_attach_database:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_gen_sdl:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_get_slice:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_lookup_bounds:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_lookup_desc:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_set_desc:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_array_put_slice:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_gen_bpb:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_info:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_lookup_desc:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_blob_set_desc:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_cancel_blob:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_cancel_events:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_close_blob:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_commit_retaining:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_commit_transaction:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_compile_request:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_compile_request2:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_blob:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_blob2:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_create_database:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_database_info:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_ddl:ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_decode_date; extdecl; external gdslib;
+
+  procedure isc_decode_sql_date; extdecl; external gdslib;
+
+  procedure isc_decode_sql_time; extdecl; external gdslib;
+
+  procedure isc_decode_timestamp; extdecl; external gdslib;
+
+  function isc_detach_database:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_drop_database:ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_encode_date; extdecl; external gdslib;
+
+  procedure isc_encode_sql_date; extdecl; external gdslib;
+
+  procedure isc_encode_sql_time; extdecl; external gdslib;
+
+  procedure isc_encode_timestamp; extdecl; external gdslib;
+
+  function isc_event_block:ISC_LONG; cdecl; external gdslib;
+
+  procedure isc_event_counts; extdecl; external gdslib;
+
+  procedure isc_expand_dpb; cdecl; external gdslib;
+
+  function isc_modify_dpb:longint; extdecl; external gdslib;
+
+  function isc_free:ISC_LONG; extdecl; external gdslib;
+
+  function isc_get_segment:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_get_slice:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_interprete:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_open_blob:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_open_blob2:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_prepare_transaction:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_prepare_transaction2:ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_print_sqlerror; extdecl; external gdslib;
+
+  function isc_print_status:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_put_segment:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_put_slice:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_que_events:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_receive:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_reconnect_transaction:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_release_request:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_request_info:ISC_STATUS; extdecl; external gdslib;
+
+{$IFDEF Unix}
+  function isc_reset_fpe:ISC_LONG; extdecl; external gdslib;
+{$ENDIF}
+
+  function isc_rollback_transaction:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_rollback_retaining:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_seek_blob:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_send:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_attach:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_detach:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_query:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_service_start:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_and_send:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_multiple:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_request:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_start_transaction:ISC_STATUS; cdecl; external gdslib;
+
+  function isc_sqlcode:ISC_LONG; extdecl; external gdslib;
+
+  function isc_transaction_info:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_transact_request:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_unwind_request:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_wait_for_event:ISC_STATUS; extdecl; external gdslib;
+
+  function isc_ftof:ISC_LONG; extdecl; external gdslib;
+
+  function isc_print_blr:ISC_STATUS; extdecl; external gdslib;
+
+  procedure isc_set_debug; extdecl; external gdslib;
+
+  procedure isc_qtoq; extdecl; external gdslib;
+
+  function isc_vax_integer:ISC_LONG; extdecl; external gdslib;
+
+  procedure isc_vtof; extdecl; external gdslib;
+
+  procedure isc_vtov; extdecl; external gdslib;
+
+  function isc_version:longint; extdecl; external gdslib;
+
+  {                 }
+  { Blob functions  }
+  {                 }
+
+  function Bopen:PBSTREAM; extdecl; external gdslib;
+
+  function BLOB_open:PBSTREAM; extdecl; external gdslib;
+
+{$IFDEF Unix}
+  function Bopen2:PBSTREAM; extdecl; external gdslib;
+{$ENDIF}
+
+{$ELSE} // LinkDynamically
+
+var
+
+{                          }
+{ OSRI database functions  }
+{                          }
+  isc_attach_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_array_gen_sdl : function (_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl;
+  isc_array_get_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;_para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl;
+  isc_array_lookup_bounds : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;_para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
+  isc_array_lookup_desc : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;_para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
+  isc_array_set_desc : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint;_para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
+  isc_array_put_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;_para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl;
+  isc_blob_default_desc : procedure (_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl;
+  isc_blob_gen_bpb : function (_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte;_para6:Pword):ISC_STATUS; extdecl;
+  isc_blob_info : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_blob_lookup_desc : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pbyte; _para5:Pbyte;_para6:PISC_BLOB_DESC; _para7:Pbyte):ISC_STATUS; extdecl;
+  isc_blob_set_desc : function (_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint;_para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; extdecl;
+  isc_cancel_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl;
+  isc_cancel_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl;
+  isc_close_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl;
+  isc_commit_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
+  isc_commit_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
+  isc_create_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl;
+  isc_create_blob2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
+  isc_create_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar; _para7:smallint):ISC_STATUS; extdecl;
+  isc_database_info : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_decode_date : procedure (_para1:PISC_QUAD; _para2:pointer); extdecl;
+  isc_decode_sql_date : procedure (_para1:PISC_DATE; _para2:pointer); extdecl;
+  isc_decode_sql_time : procedure (_para1:PISC_TIME; _para2:pointer); extdecl;
+  isc_decode_timestamp : procedure (_para1:PISC_TIMESTAMP; _para2:pointer); extdecl;
+  isc_detach_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl;
+  isc_drop_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl;
+  isc_dsql_allocate_statement : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl;
+  isc_dsql_alloc_statement2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl;
+  isc_dsql_describe : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_exec_immed2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA; _para8:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_finish : function (_para1:Pisc_db_handle):ISC_STATUS; extdecl;
+  isc_dsql_free_statement : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl;
+  isc_dsql_insert : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_prepare : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
+  isc_dsql_set_cursor_name : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl;
+  isc_dsql_sql_info : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_encode_date : procedure (_para1:pointer; _para2:PISC_QUAD); extdecl;
+  isc_encode_sql_date : procedure (_para1:pointer; _para2:PISC_DATE); extdecl;
+  isc_encode_sql_time : procedure (_para1:pointer; _para2:PISC_TIME); extdecl;
+  isc_encode_timestamp : procedure (_para1:pointer; _para2:PISC_TIMESTAMP); extdecl;
+  isc_event_block : function (_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl;
+{!!MVC
+  void         isc_event_counts (unsigned ISC_LONG   ,
+  short,
+  char   ,
+  char   ); extdecl; external gdslib;
+!!MVC }
+  isc_expand_dpb : procedure (_para1:PPchar; _para2:Psmallint; args:array of const); cdecl;
+  isc_modify_dpb : function (_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl;
+  isc_free : function (_para1:Pchar):ISC_LONG; extdecl;
+  isc_get_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_get_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;_para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer;_para11:PISC_LONG):ISC_STATUS; extdecl;
+  isc_interprete : function (_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl;
+  isc_open_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl;
+  isc_open_blob2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
+  isc_prepare_transaction2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl;
+  isc_print_sqlerror : procedure (_para1:smallint; _para2:PISC_STATUS); extdecl;
+  isc_print_status : function (_para1:PISC_STATUS):ISC_STATUS; extdecl;
+  isc_put_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl;
+  isc_put_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;_para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer):ISC_STATUS; extdecl;
+  isc_que_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG; _para4:smallint; _para5:Pchar;_para6:isc_callback; _para7:pointer):ISC_STATUS; extdecl;
+  isc_rollback_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
+  isc_rollback_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
+  isc_start_multiple : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl;
+  isc_start_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl;
+  isc_sqlcode : function (_para1:PISC_STATUS):ISC_LONG; extdecl;
+  isc_sql_interprete : procedure (_para1:smallint; _para2:Pchar; _para3:smallint); extdecl;
+  isc_transaction_info : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_transact_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
+  isc_vax_integer : function (_para1:Pchar; _para2:smallint):ISC_LONG; extdecl;
+  isc_portable_integer : function (_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl;
+{                                    }
+{ Security Functions                 }
+{                                    }
+  isc_add_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
+  isc_delete_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
+  isc_modify_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
+{                                 }
+{  Other OSRI functions           }
+{                                 }
+  isc_compile_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_compile_request2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_ddl : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_prepare_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
+  isc_receive : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl;
+  isc_reconnect_transaction : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_release_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
+  isc_request_info : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
+  isc_seek_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl;
+  isc_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl;
+  isc_start_and_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:smallint;_para6:pointer; _para7:smallint):ISC_STATUS; extdecl;
+  isc_start_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl;
+  isc_unwind_request : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl;
+  isc_wait_for_event : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl;
+{                            }
+{ Other Sql functions        }
+{                            }
+  isc_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
+  isc_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl;
+  isc_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
+  isc_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
+  isc_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
+  isc_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_prepare : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint;_para6:Pchar; _para7:PXSQLDA):ISC_STATUS; extdecl;
+{                                    }
+{ Other Dynamic sql functions        }
+{                                    }
+  isc_dsql_execute_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_execute2_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar;_para11:word; _para12:word; _para13:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_execute_immediate_m : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;_para11:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_exec_immed3_m : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;_para11:Pchar; _para12:word; _para13:Pchar; _para14:word; _para15:word;_para16:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_fetch_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_insert_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_prepare_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar):ISC_STATUS; extdecl;
+  isc_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
+  isc_embed_dsql_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
+  isc_embed_dsql_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl;
+  isc_embed_dsql_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_execute_immed : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_open2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_insert : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_prepare : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:word;_para6:Pchar; _para7:word; _para8:PXSQLDA):ISC_STATUS; extdecl;
+  isc_embed_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
+{                             }
+{ Other Blob functions        }
+{                             }
+  BLOB_open : function (_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl;
+  BLOB_put : function (_para1:char; _para2:PBSTREAM):longint; extdecl;
+  BLOB_close : function (_para1:PBSTREAM):longint; extdecl;
+  BLOB_get : function (_para1:PBSTREAM):longint; extdecl;
+  BLOB_display : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  BLOB_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  BLOB_edit : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  BLOB_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  BLOB_text_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  BLOB_text_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
+  Bopen : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl;
+{$IFDEF Unix}
+  Bopen2 : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl;
+{$ENDIF}
+{                             }
+{ Other Misc functions        }
+{                             }
+  isc_ftof : function (_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl;
+  isc_print_blr : function (_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl;
+  isc_set_debug : procedure (_para1:longint); extdecl;
+  isc_qtoq : procedure (_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl;
+  isc_vtof : procedure (_para1:Pchar; _para2:Pchar; _para3:word); extdecl;
+  isc_vtov : procedure (_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl;
+  isc_version : function (_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl;
+{$IFDEF Unix}
+  isc_reset_fpe : function (_para1:word):ISC_LONG; extdecl;
+{$ENDIF}
+{                                        }
+{ Service manager functions              }
+{                                        }
+(*!!MVC
+  #define ADD_SPB_LENGTH(p, length)     { (p)++ = (length); \
+  (p)++ = (length) >> 8;}
+
+#define ADD_SPB_NUMERIC(p, data)      { (p)++ = (data); \
+  (p)++ = (data) >> 8; \
+  (p)++ = (data) >> 16; \
+  (p)++ = (data) >> 24;}
+!!MVC *)
+  isc_service_attach : function (_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_service_detach : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl;
+  isc_service_query : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
+  isc_service_start : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl;
+{                              }
+{ Forms functions              }
+{                              }
+{$IFDEF Unix}
+  isc_compile_map : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_compile_menu : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_compile_sub_map : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_create_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;_para6:Psmallint):ISC_STATUS; extdecl;
+  isc_delete_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
+  isc_drive_form : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_win_handle; _para5:Pisc_req_handle;_para6:Pbyte; _para7:Pbyte):ISC_STATUS; extdecl;
+  isc_drive_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar;_para6:Psmallint; _para7:Pchar; _para8:Psmallint; _para9:Psmallint; _para10:Pchar;_para11:PISC_LONG):ISC_STATUS; extdecl;
+  isc_form_delete : function (_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl;
+  isc_form_fetch : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl;
+  isc_form_insert : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl;
+  isc_get_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;_para6:Psmallint):ISC_STATUS; extdecl;
+  isc_initialize_menu : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
+  isc_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
+  isc_load_form : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_form_handle; _para5:Psmallint;_para6:Pchar):ISC_STATUS; extdecl;
+  isc_pop_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
+  isc_put_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl;
+  isc_reset_form : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
+  isc_suspend_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
+{$ENDIF}
+
+Procedure InitialiseIBase60;
+Procedure ReleaseIBase60;
+
+var IBaseLibraryHandle : TLibHandle;
+
+{$ENDIF}
+
+implementation
+
+{$IFDEF LinkDynamically}
+
+var RefCount : integer;
+
+Procedure InitialiseIBase60;
+
+begin
+  inc(RefCount);
+  if RefCount = 1 then
+    begin
+    IBaseLibraryHandle := loadlibrary(fbclib);
+    if IBaseLibraryHandle = nilhandle then
+      begin
+      IBaseLibraryHandle := loadlibrary(gdslib);
+      if loadlibrary(gdslib) = nilhandle then
+        begin
+        RefCount := 0;
+        Raise EInOutError.Create('Can not load Firebird or Interbase client. Is it installed? ('+gdslib+' or '+fbclib+')');
+        end;
+      end;
+
+    pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database');
+    pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl');
+    pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice');
+    pointer(isc_array_lookup_bounds) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_bounds');
+    pointer(isc_array_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_desc');
+    pointer(isc_array_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_set_desc');
+    pointer(isc_array_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_put_slice');
+    pointer(isc_blob_default_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_default_desc');
+    pointer(isc_blob_gen_bpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_gen_bpb');
+    pointer(isc_blob_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_info');
+    pointer(isc_blob_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_lookup_desc');
+    pointer(isc_blob_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_set_desc');
+    pointer(isc_cancel_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_blob');
+    pointer(isc_cancel_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_events');
+    pointer(isc_close_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_close_blob');
+    pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining');
+    pointer(isc_commit_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_transaction');
+    pointer(isc_create_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob');
+    pointer(isc_create_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob2');
+    pointer(isc_create_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_database');
+    pointer(isc_database_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_database_info');
+    pointer(isc_decode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_date');
+    pointer(isc_decode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_date');
+    pointer(isc_decode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_time');
+    pointer(isc_decode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_timestamp');
+    pointer(isc_detach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_detach_database');
+    pointer(isc_drop_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_drop_database');
+    pointer(isc_dsql_allocate_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_allocate_statement');
+    pointer(isc_dsql_alloc_statement2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_alloc_statement2');
+    pointer(isc_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe');
+    pointer(isc_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe_bind');
+    pointer(isc_dsql_exec_immed2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed2');
+    pointer(isc_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute');
+    pointer(isc_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2');
+    pointer(isc_dsql_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate');
+    pointer(isc_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch');
+    pointer(isc_dsql_finish) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_finish');
+    pointer(isc_dsql_free_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_free_statement');
+    pointer(isc_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert');
+    pointer(isc_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare');
+    pointer(isc_dsql_set_cursor_name) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_set_cursor_name');
+    pointer(isc_dsql_sql_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_sql_info');
+    pointer(isc_encode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_date');
+    pointer(isc_encode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_date');
+    pointer(isc_encode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_time');
+    pointer(isc_encode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_timestamp');
+    pointer(isc_event_block) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_block');
+    pointer(isc_expand_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_expand_dpb');
+    pointer(isc_modify_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_dpb');
+    pointer(isc_free) := GetProcedureAddress(IBaseLibraryHandle,'isc_free');
+    pointer(isc_get_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_segment');
+    pointer(isc_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_slice');
+    pointer(isc_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_interprete');
+    pointer(isc_open_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob');
+    pointer(isc_open_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob2');
+    pointer(isc_prepare_transaction2) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction2');
+    pointer(isc_print_sqlerror) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_sqlerror');
+    pointer(isc_print_status) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_status');
+    pointer(isc_put_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_segment');
+    pointer(isc_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_slice');
+    pointer(isc_que_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_que_events');
+    pointer(isc_rollback_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_retaining');
+    pointer(isc_rollback_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_transaction');
+    pointer(isc_start_multiple) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_multiple');
+    pointer(isc_start_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_transaction');
+    pointer(isc_sqlcode) := GetProcedureAddress(IBaseLibraryHandle,'isc_sqlcode');
+    pointer(isc_sql_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_sql_interprete');
+    pointer(isc_transaction_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_transaction_info');
+    pointer(isc_transact_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_transact_request');
+    pointer(isc_vax_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_vax_integer');
+    pointer(isc_portable_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_portable_integer');
+    pointer(isc_add_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_add_user');
+    pointer(isc_delete_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_user');
+    pointer(isc_modify_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_user');
+    pointer(isc_compile_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request');
+    pointer(isc_compile_request2) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request2');
+    pointer(isc_ddl) := GetProcedureAddress(IBaseLibraryHandle,'isc_ddl');
+    pointer(isc_prepare_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction');
+    pointer(isc_receive) := GetProcedureAddress(IBaseLibraryHandle,'isc_receive');
+    pointer(isc_reconnect_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_reconnect_transaction');
+    pointer(isc_release_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_release_request');
+    pointer(isc_request_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_request_info');
+    pointer(isc_seek_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_seek_blob');
+    pointer(isc_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_send');
+    pointer(isc_start_and_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_and_send');
+    pointer(isc_start_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_request');
+    pointer(isc_unwind_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_unwind_request');
+    pointer(isc_wait_for_event) := GetProcedureAddress(IBaseLibraryHandle,'isc_wait_for_event');
+    pointer(isc_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_close');
+    pointer(isc_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_declare');
+    pointer(isc_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe');
+    pointer(isc_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe_bind');
+    pointer(isc_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute');
+    pointer(isc_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute_immediate');
+    pointer(isc_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_fetch');
+    pointer(isc_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_open');
+    pointer(isc_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare');
+    pointer(isc_dsql_execute_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_m');
+    pointer(isc_dsql_execute2_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2_m');
+    pointer(isc_dsql_execute_immediate_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate_m');
+    pointer(isc_dsql_exec_immed3_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed3_m');
+    pointer(isc_dsql_fetch_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch_m');
+    pointer(isc_dsql_insert_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert_m');
+    pointer(isc_dsql_prepare_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare_m');
+    pointer(isc_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_release');
+    pointer(isc_embed_dsql_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_close');
+    pointer(isc_embed_dsql_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_declare');
+    pointer(isc_embed_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe');
+    pointer(isc_embed_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe_bind');
+    pointer(isc_embed_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute');
+    pointer(isc_embed_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute2');
+    pointer(isc_embed_dsql_execute_immed) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute_immed');
+    pointer(isc_embed_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_fetch');
+    pointer(isc_embed_dsql_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open');
+    pointer(isc_embed_dsql_open2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open2');
+    pointer(isc_embed_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_insert');
+    pointer(isc_embed_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_prepare');
+    pointer(isc_embed_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_release');
+    pointer(BLOB_open) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_open');
+    pointer(BLOB_put) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_put');
+    pointer(BLOB_close) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_close');
+    pointer(BLOB_get) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_get');
+    pointer(BLOB_display) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_display');
+    pointer(BLOB_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_dump');
+    pointer(BLOB_edit) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_edit');
+    pointer(BLOB_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_load');
+    pointer(BLOB_text_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_dump');
+    pointer(BLOB_text_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_load');
+    pointer(Bopen) := GetProcedureAddress(IBaseLibraryHandle,'Bopen');
+{$IFDEF Unix}
+    pointer(Bopen2) := GetProcedureAddress(IBaseLibraryHandle,'Bopen2');
+{$ENDIF}
+    pointer(isc_ftof) := GetProcedureAddress(IBaseLibraryHandle,'isc_ftof');
+    pointer(isc_print_blr) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_blr');
+    pointer(isc_set_debug) := GetProcedureAddress(IBaseLibraryHandle,'isc_set_debug');
+    pointer(isc_qtoq) := GetProcedureAddress(IBaseLibraryHandle,'isc_qtoq');
+    pointer(isc_vtof) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtof');
+    pointer(isc_vtov) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtov');
+    pointer(isc_version) := GetProcedureAddress(IBaseLibraryHandle,'isc_version');
+{$IFDEF Unix}
+    pointer(isc_reset_fpe) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_fpe');
+{$ENDIF}
+    pointer(isc_service_attach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_attach');
+    pointer(isc_service_detach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_detach');
+    pointer(isc_service_query) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_query');
+    pointer(isc_service_start) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_start');
+{$IFDEF Unix}
+    pointer(isc_compile_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_map');
+    pointer(isc_compile_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_menu');
+    pointer(isc_compile_sub_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_sub_map');
+    pointer(isc_create_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_window');
+    pointer(isc_delete_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_window');
+    pointer(isc_drive_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_form');
+    pointer(isc_drive_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_menu');
+    pointer(isc_form_delete) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_delete');
+    pointer(isc_form_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_fetch');
+    pointer(isc_form_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_insert');
+    pointer(isc_get_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_entree');
+    pointer(isc_initialize_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_initialize_menu');
+    pointer(isc_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_menu');
+    pointer(isc_load_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_load_form');
+    pointer(isc_pop_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_pop_window');
+    pointer(isc_put_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_entree');
+    pointer(isc_reset_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_form');
+    pointer(isc_suspend_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_suspend_window');
+{$ENDIF}
+    end;
+end;
+
+Procedure ReleaseIBase60;
+
+begin
+  if RefCount > 0 then dec(RefCount);
+  if RefCount = 0 then
+    begin
+    if not UnloadLibrary(IBaseLibraryHandle) then inc(RefCount);
+    end;
+end;
+
+{$ENDIF}
+
+function XSQLDA_LENGTH(n: Integer): Integer;
+begin
+  Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR);
+end;
+
+

+ 6 - 628
packages/base/ibase/ibase60.pp

@@ -3,639 +3,17 @@
 }
 }
 unit ibase60;
 unit ibase60;
 
 
-{$MODE objfpc}
-{$MACRO on}
-
-interface
-
-{$IFDEF Unix}
-  {$LINKLIB c}
-  {$LINKLIB crypt}
-  {$DEFINE extdecl:=cdecl}
-  const
-    gdslib = 'gds';
-{$ENDIF}
-{$IFDEF Win32}
-  {$DEFINE extdecl:=stdcall}
-  const
-    gdslib = 'gds32.dll';
-{$ENDIF}
-
-{$i ibase60types.inc}
-
-  {                          }
-  { OSRI database functions  }
-  {                          }
-
-  function isc_attach_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_gen_sdl(_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;
-             _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_lookup_bounds(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;
-             _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;
-             _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_set_desc(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint;
-             _para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;
-             _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_blob_default_desc(_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl; external gdslib;
-
-  function isc_blob_gen_bpb(_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte;
-             _para6:Pword):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_info(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pbyte; _para5:Pbyte;
-             _para6:PISC_BLOB_DESC; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_set_desc(_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint;
-             _para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_cancel_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_cancel_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_close_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_commit_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_commit_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_blob(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;
-             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;
-             _para6:Pchar; _para7:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_database_info(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_decode_date(_para1:PISC_QUAD; _para2:pointer); extdecl; external gdslib;
-
-  procedure isc_decode_sql_date(_para1:PISC_DATE; _para2:pointer); extdecl; external gdslib;
-
-  procedure isc_decode_sql_time(_para1:PISC_TIME; _para2:pointer); extdecl; external gdslib;
-
-  procedure isc_decode_timestamp(_para1:PISC_TIMESTAMP; _para2:pointer); extdecl; external gdslib;
-
-  function isc_detach_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_drop_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_allocate_statement(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_alloc_statement2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_describe(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_exec_immed2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:PXSQLDA; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;
-             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_fetch(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_finish(_para1:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_free_statement(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_insert(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_set_cursor_name(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_sql_info(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_encode_date(_para1:pointer; _para2:PISC_QUAD); extdecl; external gdslib;
-
-  procedure isc_encode_sql_date(_para1:pointer; _para2:PISC_DATE); extdecl; external gdslib;
-
-  procedure isc_encode_sql_time(_para1:pointer; _para2:PISC_TIME); extdecl; external gdslib;
-
-  procedure isc_encode_timestamp(_para1:pointer; _para2:PISC_TIMESTAMP); extdecl; external gdslib;
-
-  function isc_event_block(_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl; external gdslib;
-
-  {!!MVC
-  void         isc_event_counts (unsigned ISC_LONG   ,
-                                         short,
-                                         char   ,
-                                         char   ); extdecl; external gdslib;
-  !!MVC }
-  procedure isc_expand_dpb(_para1:PPchar; _para2:Psmallint; args:array of const); cdecl; external gdslib;
-
-  function isc_modify_dpb(_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl; external gdslib;
-
-  function isc_free(_para1:Pchar):ISC_LONG; extdecl; external gdslib;
-
-  function isc_get_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;
-             _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer;
-             _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_interprete(_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_open_blob(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_open_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;
-             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_prepare_transaction2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_print_sqlerror(_para1:smallint; _para2:PISC_STATUS); extdecl; external gdslib;
-
-  function isc_print_status(_para1:PISC_STATUS):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_put_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;
-             _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_que_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG; _para4:smallint; _para5:Pchar;
-             _para6:isc_callback; _para7:pointer):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_rollback_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_rollback_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_multiple(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl; external gdslib;
-
-  function isc_sqlcode(_para1:PISC_STATUS):ISC_LONG; extdecl; external gdslib;
-
-  procedure isc_sql_interprete(_para1:smallint; _para2:Pchar; _para3:smallint); extdecl; external gdslib;
-
-  function isc_transaction_info(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_transact_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_vax_integer(_para1:Pchar; _para2:smallint):ISC_LONG; extdecl; external gdslib;
-
-  function isc_portable_integer(_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl; external gdslib;
-
-  {                                    }
-  { Security Functions                 }
-  {                                    }
-
-
-  function isc_add_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
-
-  function isc_delete_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
-
-  function isc_modify_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib;
-
-  {                                 }
-  {  Other OSRI functions           }
-  {                                 }
-  function isc_compile_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_compile_request2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_ddl(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_prepare_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_receive(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;
-             _para6:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_reconnect_transaction(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_release_request(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_request_info(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;
-             _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_seek_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;
-             _para6:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_and_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:smallint;
-             _para6:pointer; _para7:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_request(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_unwind_request(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_wait_for_event(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  {                            }
-  { Other Sql functions        }
-  {                            }
-  function isc_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint;
-             _para6:Pchar; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  {                                    }
-  { Other Dynamic sql functions        }
-  {                                    }
-  function isc_dsql_execute_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:word; _para8:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_execute2_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar;
-             _para11:word; _para12:word; _para13:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_execute_immediate_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;
-             _para11:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_exec_immed3_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;
-             _para11:Pchar; _para12:word; _para13:Pchar; _para14:word; _para15:word;
-             _para16:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_fetch_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;
-             _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_insert_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;
-             _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_prepare_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;
-             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_execute_immed(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_open2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;
-             _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_insert(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:word;
-             _para6:Pchar; _para7:word; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_embed_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  {                             }
-  { Other Blob functions        }
-  {                             }
-  function BLOB_open(_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl; external gdslib;
-
-  function BLOB_put(_para1:char; _para2:PBSTREAM):longint; extdecl; external gdslib;
-
-  function BLOB_close(_para1:PBSTREAM):longint; extdecl; external gdslib;
-
-  function BLOB_get(_para1:PBSTREAM):longint; extdecl; external gdslib;
-
-  function BLOB_display(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function BLOB_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function BLOB_edit(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function BLOB_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function BLOB_text_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function BLOB_text_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib;
-
-  function Bopen(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl; external gdslib;
-
-{$IFDEF Unix}
-  function Bopen2(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl; external gdslib;
-{$ENDIF}
-
-  {                             }
-  { Other Misc functions        }
-  {                             }
-  function isc_ftof(_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl; external gdslib;
-
-  function isc_print_blr(_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_set_debug(_para1:longint); extdecl; external gdslib;
-
-  procedure isc_qtoq(_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl; external gdslib;
-
-  procedure isc_vtof(_para1:Pchar; _para2:Pchar; _para3:word); extdecl; external gdslib;
-
-  procedure isc_vtov(_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl; external gdslib;
-
-  function isc_version(_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl; external gdslib;
-
-{$IFDEF Unix}
-  function isc_reset_fpe(_para1:word):ISC_LONG; extdecl; external gdslib;
-{$ENDIF}
-
-  {                                        }
-  { Service manager functions              }
-  {                                        }
-  (*!!MVC
-  #define ADD_SPB_LENGTH(p, length)     { (p)++ = (length); \
-                                          (p)++ = (length) >> 8;}
-
-  #define ADD_SPB_NUMERIC(p, data)      { (p)++ = (data); \
-                                          (p)++ = (data) >> 8; \
-                                          (p)++ = (data) >> 16; \
-                                          (p)++ = (data) >> 24;}
-  !!MVC *)
-
-  function isc_service_attach(_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_detach(_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_query(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar;
-             _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_start(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  {                              }
-  { Forms functions              }
-  {                              }
-{$IFDEF Unix}
-  function isc_compile_map(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_compile_menu(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_compile_sub_map(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_window(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;
-             _para6:Psmallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_delete_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_drive_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_win_handle; _para5:Pisc_req_handle;
-             _para6:Pbyte; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_drive_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar;
-             _para6:Psmallint; _para7:Pchar; _para8:Psmallint; _para9:Psmallint; _para10:Pchar;
-             _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_form_delete(_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_form_fetch(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_form_insert(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_get_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;
-             _para6:Psmallint):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_initialize_menu(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_load_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_form_handle; _para5:Psmallint;
-             _para6:Pchar):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_pop_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_put_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_reset_form(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib;
-
-  function isc_suspend_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
-{$ENDIF}
-
-  function isc_attach_database:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_gen_sdl:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_get_slice:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_lookup_bounds:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_lookup_desc:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_set_desc:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_array_put_slice:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_gen_bpb:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_info:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_lookup_desc:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_blob_set_desc:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_cancel_blob:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_cancel_events:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_close_blob:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_commit_retaining:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_commit_transaction:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_compile_request:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_compile_request2:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_blob:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_blob2:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_create_database:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_database_info:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_ddl:ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_decode_date; extdecl; external gdslib;
-
-  procedure isc_decode_sql_date; extdecl; external gdslib;
-
-  procedure isc_decode_sql_time; extdecl; external gdslib;
-
-  procedure isc_decode_timestamp; extdecl; external gdslib;
-
-  function isc_detach_database:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_drop_database:ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_encode_date; extdecl; external gdslib;
-
-  procedure isc_encode_sql_date; extdecl; external gdslib;
-
-  procedure isc_encode_sql_time; extdecl; external gdslib;
-
-  procedure isc_encode_timestamp; extdecl; external gdslib;
-
-  function isc_event_block:ISC_LONG; cdecl; external gdslib;
-
-  procedure isc_event_counts; extdecl; external gdslib;
-
-  procedure isc_expand_dpb; cdecl; external gdslib;
-
-  function isc_modify_dpb:longint; extdecl; external gdslib;
-
-  function isc_free:ISC_LONG; extdecl; external gdslib;
-
-  function isc_get_segment:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_get_slice:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_interprete:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_open_blob:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_open_blob2:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_prepare_transaction:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_prepare_transaction2:ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_print_sqlerror; extdecl; external gdslib;
-
-  function isc_print_status:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_put_segment:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_put_slice:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_que_events:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_receive:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_reconnect_transaction:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_release_request:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_request_info:ISC_STATUS; extdecl; external gdslib;
-
-{$IFDEF Unix}
-  function isc_reset_fpe:ISC_LONG; extdecl; external gdslib;
-{$ENDIF}
-
-  function isc_rollback_transaction:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_rollback_retaining:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_seek_blob:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_send:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_attach:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_detach:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_query:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_service_start:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_and_send:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_multiple:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_request:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_start_transaction:ISC_STATUS; cdecl; external gdslib;
-
-  function isc_sqlcode:ISC_LONG; extdecl; external gdslib;
-
-  function isc_transaction_info:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_transact_request:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_unwind_request:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_wait_for_event:ISC_STATUS; extdecl; external gdslib;
-
-  function isc_ftof:ISC_LONG; extdecl; external gdslib;
-
-  function isc_print_blr:ISC_STATUS; extdecl; external gdslib;
-
-  procedure isc_set_debug; extdecl; external gdslib;
-
-  procedure isc_qtoq; extdecl; external gdslib;
-
-  function isc_vax_integer:ISC_LONG; extdecl; external gdslib;
-
-  procedure isc_vtof; extdecl; external gdslib;
-
-  procedure isc_vtov; extdecl; external gdslib;
-
-  function isc_version:longint; extdecl; external gdslib;
-
-  {                 }
-  { Blob functions  }
-  {                 }
-
-  function Bopen:PBSTREAM; extdecl; external gdslib;
-
-  function BLOB_open:PBSTREAM; extdecl; external gdslib;
-
-{$IFDEF Unix}
-  function Bopen2:PBSTREAM; extdecl; external gdslib;
-{$ENDIF}
-
-  implementation
-
-// This function is also defined in ibase60dyn!
-
-function XSQLDA_LENGTH(n: Integer): Integer;
-begin
-  Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR);
-end;
+{$UNDEF LinkDynamically}
 
 
+{$i ibase60.inc}
 
 
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.6  2005-02-14 17:13:19  peter
+  Revision 1.7  2005-04-24 19:55:55  joost
+  - Placed dyn. loaded and stat. loaded headers in one file
+
+  Revision 1.6  2005/02/14 17:13:19  peter
     * truncate log
     * truncate log
 
 
   Revision 1.5  2005/02/04 18:14:22  joost
   Revision 1.5  2005/02/04 18:14:22  joost

+ 5 - 445
packages/base/ibase/ibase60dyn.pp

@@ -1,4 +1,7 @@
 {
 {
+  $Id$
+
+
   Contains the Interbase/Firebird-functions calls
   Contains the Interbase/Firebird-functions calls
   In this stage only the calls needed for IBConnection are implemented
   In this stage only the calls needed for IBConnection are implemented
   Other calls could be simply implemented, using copy-paste from ibase60
   Other calls could be simply implemented, using copy-paste from ibase60
@@ -9,452 +12,9 @@
 
 
 unit ibase60dyn;
 unit ibase60dyn;
 
 
-{$mode objfpc}{$H+}
-{$MACRO on}
-
-interface
-
-uses
-  dynlibs,sysutils;
-
-{$IFDEF Unix}
-  {$LINKLIB c}
-  {$LINKLIB crypt}
-  {$DEFINE extdecl:=cdecl}
-  const
-    gdslib = 'libgds.so';
-    fbclib = 'libfbclient.so';
-{$ENDIF}
-{$IFDEF Win32}
-  {$DEFINE extdecl:=stdcall}
-  const
-    gdslib = 'gds32.dll';
-    fbclib = 'fbclient.dll';
-{$ENDIF}
-
-{$i ibase60types.inc}
-
-var
-
-{                          }
-{ OSRI database functions  }
-{                          }
-  isc_attach_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_array_gen_sdl : function (_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl;
-  isc_array_get_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;_para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl;
-  isc_array_lookup_bounds : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;_para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
-  isc_array_lookup_desc : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar;_para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
-  isc_array_set_desc : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint;_para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; extdecl;
-  isc_array_put_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC;_para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl;
-  isc_blob_default_desc : procedure (_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl;
-  isc_blob_gen_bpb : function (_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte;_para6:Pword):ISC_STATUS; extdecl;
-  isc_blob_info : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_blob_lookup_desc : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pbyte; _para5:Pbyte;_para6:PISC_BLOB_DESC; _para7:Pbyte):ISC_STATUS; extdecl;
-  isc_blob_set_desc : function (_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint;_para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; extdecl;
-  isc_cancel_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl;
-  isc_cancel_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl;
-  isc_close_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl;
-  isc_commit_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
-  isc_commit_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
-  isc_create_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl;
-  isc_create_blob2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
-  isc_create_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar; _para7:smallint):ISC_STATUS; extdecl;
-  isc_database_info : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_decode_date : procedure (_para1:PISC_QUAD; _para2:pointer); extdecl;
-  isc_decode_sql_date : procedure (_para1:PISC_DATE; _para2:pointer); extdecl;
-  isc_decode_sql_time : procedure (_para1:PISC_TIME; _para2:pointer); extdecl;
-  isc_decode_timestamp : procedure (_para1:PISC_TIMESTAMP; _para2:pointer); extdecl;
-  isc_detach_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl;
-  isc_drop_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl;
-  isc_dsql_allocate_statement : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl;
-  isc_dsql_alloc_statement2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl;
-  isc_dsql_describe : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_exec_immed2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA; _para8:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_finish : function (_para1:Pisc_db_handle):ISC_STATUS; extdecl;
-  isc_dsql_free_statement : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl;
-  isc_dsql_insert : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_prepare : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
-  isc_dsql_set_cursor_name : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl;
-  isc_dsql_sql_info : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_encode_date : procedure (_para1:pointer; _para2:PISC_QUAD); extdecl;
-  isc_encode_sql_date : procedure (_para1:pointer; _para2:PISC_DATE); extdecl;
-  isc_encode_sql_time : procedure (_para1:pointer; _para2:PISC_TIME); extdecl;
-  isc_encode_timestamp : procedure (_para1:pointer; _para2:PISC_TIMESTAMP); extdecl;
-  isc_event_block : function (_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl;
-{!!MVC
-  void         isc_event_counts (unsigned ISC_LONG   ,
-  short,
-  char   ,
-  char   ); extdecl; external gdslib;
-!!MVC }
-  isc_expand_dpb : procedure (_para1:PPchar; _para2:Psmallint; args:array of const); cdecl;
-  isc_modify_dpb : function (_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl;
-  isc_free : function (_para1:Pchar):ISC_LONG; extdecl;
-  isc_get_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_get_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;_para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer;_para11:PISC_LONG):ISC_STATUS; extdecl;
-  isc_interprete : function (_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl;
-  isc_open_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; extdecl;
-  isc_open_blob2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
-  isc_prepare_transaction2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl;
-  isc_print_sqlerror : procedure (_para1:smallint; _para2:PISC_STATUS); extdecl;
-  isc_print_status : function (_para1:PISC_STATUS):ISC_STATUS; extdecl;
-  isc_put_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl;
-  isc_put_slice : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint;_para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer):ISC_STATUS; extdecl;
-  isc_que_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG; _para4:smallint; _para5:Pchar;_para6:isc_callback; _para7:pointer):ISC_STATUS; extdecl;
-  isc_rollback_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
-  isc_rollback_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
-  isc_start_multiple : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl;
-  isc_start_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl;
-  isc_sqlcode : function (_para1:PISC_STATUS):ISC_LONG; extdecl;
-  isc_sql_interprete : procedure (_para1:smallint; _para2:Pchar; _para3:smallint); extdecl;
-  isc_transaction_info : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_transact_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
-  isc_vax_integer : function (_para1:Pchar; _para2:smallint):ISC_LONG; extdecl;
-  isc_portable_integer : function (_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl;
-{                                    }
-{ Security Functions                 }
-{                                    }
-  isc_add_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
-  isc_delete_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
-  isc_modify_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl;
-{                                 }
-{  Other OSRI functions           }
-{                                 }
-  isc_compile_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_compile_request2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_ddl : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_prepare_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl;
-  isc_receive : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl;
-  isc_reconnect_transaction : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_release_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
-  isc_request_info : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl;
-  isc_seek_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl;
-  isc_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl;
-  isc_start_and_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:smallint;_para6:pointer; _para7:smallint):ISC_STATUS; extdecl;
-  isc_start_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl;
-  isc_unwind_request : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl;
-  isc_wait_for_event : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl;
-{                            }
-{ Other Sql functions        }
-{                            }
-  isc_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
-  isc_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl;
-  isc_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
-  isc_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
-  isc_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl;
-  isc_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_prepare : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint;_para6:Pchar; _para7:PXSQLDA):ISC_STATUS; extdecl;
-{                                    }
-{ Other Dynamic sql functions        }
-{                                    }
-  isc_dsql_execute_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_execute2_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar;_para11:word; _para12:word; _para13:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_execute_immediate_m : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;_para11:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_exec_immed3_m : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word;_para11:Pchar; _para12:word; _para13:Pchar; _para14:word; _para15:word;_para16:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_fetch_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_insert_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_prepare_m : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar;_para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar):ISC_STATUS; extdecl;
-  isc_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
-  isc_embed_dsql_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
-  isc_embed_dsql_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl;
-  isc_embed_dsql_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_execute_immed : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_open2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_insert : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_prepare : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:word;_para6:Pchar; _para7:word; _para8:PXSQLDA):ISC_STATUS; extdecl;
-  isc_embed_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl;
-{                             }
-{ Other Blob functions        }
-{                             }
-  BLOB_open : function (_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl;
-  BLOB_put : function (_para1:char; _para2:PBSTREAM):longint; extdecl;
-  BLOB_close : function (_para1:PBSTREAM):longint; extdecl;
-  BLOB_get : function (_para1:PBSTREAM):longint; extdecl;
-  BLOB_display : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  BLOB_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  BLOB_edit : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  BLOB_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  BLOB_text_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  BLOB_text_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl;
-  Bopen : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl;
-{$IFDEF Unix}
-  Bopen2 : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl;
-{$ENDIF}
-{                             }
-{ Other Misc functions        }
-{                             }
-  isc_ftof : function (_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl;
-  isc_print_blr : function (_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl;
-  isc_set_debug : procedure (_para1:longint); extdecl;
-  isc_qtoq : procedure (_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl;
-  isc_vtof : procedure (_para1:Pchar; _para2:Pchar; _para3:word); extdecl;
-  isc_vtov : procedure (_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl;
-  isc_version : function (_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl;
-{$IFDEF Unix}
-  isc_reset_fpe : function (_para1:word):ISC_LONG; extdecl;
-{$ENDIF}
-{                                        }
-{ Service manager functions              }
-{                                        }
-(*!!MVC
-  #define ADD_SPB_LENGTH(p, length)     { (p)++ = (length); \
-  (p)++ = (length) >> 8;}
-
-#define ADD_SPB_NUMERIC(p, data)      { (p)++ = (data); \
-  (p)++ = (data) >> 8; \
-  (p)++ = (data) >> 16; \
-  (p)++ = (data) >> 24;}
-!!MVC *)
-  isc_service_attach : function (_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_service_detach : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl;
-  isc_service_query : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
-  isc_service_start : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl;
-{                              }
-{ Forms functions              }
-{                              }
-{$IFDEF Unix}
-  isc_compile_map : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_compile_menu : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_compile_sub_map : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_create_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;_para6:Psmallint):ISC_STATUS; extdecl;
-  isc_delete_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
-  isc_drive_form : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_win_handle; _para5:Pisc_req_handle;_para6:Pbyte; _para7:Pbyte):ISC_STATUS; extdecl;
-  isc_drive_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar;_para6:Psmallint; _para7:Pchar; _para8:Psmallint; _para9:Psmallint; _para10:Pchar;_para11:PISC_LONG):ISC_STATUS; extdecl;
-  isc_form_delete : function (_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl;
-  isc_form_fetch : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl;
-  isc_form_insert : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl;
-  isc_get_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;_para6:Psmallint):ISC_STATUS; extdecl;
-  isc_initialize_menu : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
-  isc_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl;
-  isc_load_form : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_form_handle; _para5:Psmallint;_para6:Pchar):ISC_STATUS; extdecl;
-  isc_pop_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
-  isc_put_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl;
-  isc_reset_form : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl;
-  isc_suspend_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl;
-{$ENDIF}
-
-Procedure InitialiseIBase60;
-Procedure ReleaseIBase60;
-
-var IBaseLibraryHandle : TLibHandle;
-
-implementation
-
-var RefCount : integer;
-
-Procedure InitialiseIBase60;
-
-begin
-  inc(RefCount);
-  if RefCount = 1 then
-    begin
-    IBaseLibraryHandle := loadlibrary(fbclib);
-    if IBaseLibraryHandle = nilhandle then
-      begin
-      IBaseLibraryHandle := loadlibrary(gdslib);
-      if loadlibrary(gdslib) = nilhandle then
-        begin
-        RefCount := 0;
-        Raise EInOutError.Create('Can not load Firebird or Interbase client. Is it installed? ('+gdslib+' or '+fbclib+')');
-        end;
-      end;
-
-    pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database');
-    pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl');
-    pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice');
-    pointer(isc_array_lookup_bounds) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_bounds');
-    pointer(isc_array_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_desc');
-    pointer(isc_array_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_set_desc');
-    pointer(isc_array_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_put_slice');
-    pointer(isc_blob_default_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_default_desc');
-    pointer(isc_blob_gen_bpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_gen_bpb');
-    pointer(isc_blob_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_info');
-    pointer(isc_blob_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_lookup_desc');
-    pointer(isc_blob_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_set_desc');
-    pointer(isc_cancel_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_blob');
-    pointer(isc_cancel_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_events');
-    pointer(isc_close_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_close_blob');
-    pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining');
-    pointer(isc_commit_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_transaction');
-    pointer(isc_create_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob');
-    pointer(isc_create_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob2');
-    pointer(isc_create_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_database');
-    pointer(isc_database_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_database_info');
-    pointer(isc_decode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_date');
-    pointer(isc_decode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_date');
-    pointer(isc_decode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_time');
-    pointer(isc_decode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_timestamp');
-    pointer(isc_detach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_detach_database');
-    pointer(isc_drop_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_drop_database');
-    pointer(isc_dsql_allocate_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_allocate_statement');
-    pointer(isc_dsql_alloc_statement2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_alloc_statement2');
-    pointer(isc_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe');
-    pointer(isc_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe_bind');
-    pointer(isc_dsql_exec_immed2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed2');
-    pointer(isc_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute');
-    pointer(isc_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2');
-    pointer(isc_dsql_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate');
-    pointer(isc_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch');
-    pointer(isc_dsql_finish) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_finish');
-    pointer(isc_dsql_free_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_free_statement');
-    pointer(isc_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert');
-    pointer(isc_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare');
-    pointer(isc_dsql_set_cursor_name) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_set_cursor_name');
-    pointer(isc_dsql_sql_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_sql_info');
-    pointer(isc_encode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_date');
-    pointer(isc_encode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_date');
-    pointer(isc_encode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_time');
-    pointer(isc_encode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_timestamp');
-    pointer(isc_event_block) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_block');
-    pointer(isc_expand_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_expand_dpb');
-    pointer(isc_modify_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_dpb');
-    pointer(isc_free) := GetProcedureAddress(IBaseLibraryHandle,'isc_free');
-    pointer(isc_get_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_segment');
-    pointer(isc_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_slice');
-    pointer(isc_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_interprete');
-    pointer(isc_open_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob');
-    pointer(isc_open_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob2');
-    pointer(isc_prepare_transaction2) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction2');
-    pointer(isc_print_sqlerror) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_sqlerror');
-    pointer(isc_print_status) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_status');
-    pointer(isc_put_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_segment');
-    pointer(isc_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_slice');
-    pointer(isc_que_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_que_events');
-    pointer(isc_rollback_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_retaining');
-    pointer(isc_rollback_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_transaction');
-    pointer(isc_start_multiple) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_multiple');
-    pointer(isc_start_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_transaction');
-    pointer(isc_sqlcode) := GetProcedureAddress(IBaseLibraryHandle,'isc_sqlcode');
-    pointer(isc_sql_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_sql_interprete');
-    pointer(isc_transaction_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_transaction_info');
-    pointer(isc_transact_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_transact_request');
-    pointer(isc_vax_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_vax_integer');
-    pointer(isc_portable_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_portable_integer');
-    pointer(isc_add_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_add_user');
-    pointer(isc_delete_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_user');
-    pointer(isc_modify_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_user');
-    pointer(isc_compile_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request');
-    pointer(isc_compile_request2) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request2');
-    pointer(isc_ddl) := GetProcedureAddress(IBaseLibraryHandle,'isc_ddl');
-    pointer(isc_prepare_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction');
-    pointer(isc_receive) := GetProcedureAddress(IBaseLibraryHandle,'isc_receive');
-    pointer(isc_reconnect_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_reconnect_transaction');
-    pointer(isc_release_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_release_request');
-    pointer(isc_request_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_request_info');
-    pointer(isc_seek_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_seek_blob');
-    pointer(isc_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_send');
-    pointer(isc_start_and_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_and_send');
-    pointer(isc_start_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_request');
-    pointer(isc_unwind_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_unwind_request');
-    pointer(isc_wait_for_event) := GetProcedureAddress(IBaseLibraryHandle,'isc_wait_for_event');
-    pointer(isc_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_close');
-    pointer(isc_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_declare');
-    pointer(isc_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe');
-    pointer(isc_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe_bind');
-    pointer(isc_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute');
-    pointer(isc_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute_immediate');
-    pointer(isc_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_fetch');
-    pointer(isc_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_open');
-    pointer(isc_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare');
-    pointer(isc_dsql_execute_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_m');
-    pointer(isc_dsql_execute2_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2_m');
-    pointer(isc_dsql_execute_immediate_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate_m');
-    pointer(isc_dsql_exec_immed3_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed3_m');
-    pointer(isc_dsql_fetch_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch_m');
-    pointer(isc_dsql_insert_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert_m');
-    pointer(isc_dsql_prepare_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare_m');
-    pointer(isc_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_release');
-    pointer(isc_embed_dsql_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_close');
-    pointer(isc_embed_dsql_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_declare');
-    pointer(isc_embed_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe');
-    pointer(isc_embed_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe_bind');
-    pointer(isc_embed_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute');
-    pointer(isc_embed_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute2');
-    pointer(isc_embed_dsql_execute_immed) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute_immed');
-    pointer(isc_embed_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_fetch');
-    pointer(isc_embed_dsql_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open');
-    pointer(isc_embed_dsql_open2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open2');
-    pointer(isc_embed_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_insert');
-    pointer(isc_embed_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_prepare');
-    pointer(isc_embed_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_release');
-    pointer(BLOB_open) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_open');
-    pointer(BLOB_put) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_put');
-    pointer(BLOB_close) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_close');
-    pointer(BLOB_get) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_get');
-    pointer(BLOB_display) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_display');
-    pointer(BLOB_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_dump');
-    pointer(BLOB_edit) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_edit');
-    pointer(BLOB_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_load');
-    pointer(BLOB_text_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_dump');
-    pointer(BLOB_text_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_load');
-    pointer(Bopen) := GetProcedureAddress(IBaseLibraryHandle,'Bopen');
-{$IFDEF Unix}
-    pointer(Bopen2) := GetProcedureAddress(IBaseLibraryHandle,'Bopen2');
-{$ENDIF}
-    pointer(isc_ftof) := GetProcedureAddress(IBaseLibraryHandle,'isc_ftof');
-    pointer(isc_print_blr) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_blr');
-    pointer(isc_set_debug) := GetProcedureAddress(IBaseLibraryHandle,'isc_set_debug');
-    pointer(isc_qtoq) := GetProcedureAddress(IBaseLibraryHandle,'isc_qtoq');
-    pointer(isc_vtof) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtof');
-    pointer(isc_vtov) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtov');
-    pointer(isc_version) := GetProcedureAddress(IBaseLibraryHandle,'isc_version');
-{$IFDEF Unix}
-    pointer(isc_reset_fpe) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_fpe');
-{$ENDIF}
-    pointer(isc_service_attach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_attach');
-    pointer(isc_service_detach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_detach');
-    pointer(isc_service_query) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_query');
-    pointer(isc_service_start) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_start');
-{$IFDEF Unix}
-    pointer(isc_compile_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_map');
-    pointer(isc_compile_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_menu');
-    pointer(isc_compile_sub_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_sub_map');
-    pointer(isc_create_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_window');
-    pointer(isc_delete_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_window');
-    pointer(isc_drive_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_form');
-    pointer(isc_drive_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_menu');
-    pointer(isc_form_delete) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_delete');
-    pointer(isc_form_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_fetch');
-    pointer(isc_form_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_insert');
-    pointer(isc_get_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_entree');
-    pointer(isc_initialize_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_initialize_menu');
-    pointer(isc_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_menu');
-    pointer(isc_load_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_load_form');
-    pointer(isc_pop_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_pop_window');
-    pointer(isc_put_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_entree');
-    pointer(isc_reset_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_form');
-    pointer(isc_suspend_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_suspend_window');
-{$ENDIF}
-    end;
-end;
-
-Procedure ReleaseIBase60;
-
-begin
-  if RefCount > 0 then dec(RefCount);
-  if RefCount = 0 then
-    begin
-    if not UnloadLibrary(IBaseLibraryHandle) then inc(RefCount);
-    end;
-end;
+{$DEFINE LinkDynamically}
 
 
-// This function is also defined in ibase60!
-function XSQLDA_LENGTH(n: Integer): Integer;
-begin
-  Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR);
-end;
+{$i ibase60.inc}
 
 
 end.
 end.
 
 

+ 0 - 1598
packages/base/ibase/ibase60types.inc

@@ -1,1598 +0,0 @@
-{
-  Contains the types needed for use with Interbase/Firebird
-}
-
-type
-  {  Unsigned types }
-
-  UChar                = Byte;
-  UShort               = Word;
-  UInt                 = DWord;
-  ULong                = DWord;
-
-  { Signed types }
-
-  Int                  = LongInt;
-  Long                 = LongInt;
-  Short                = SmallInt;
-  Float                = Single;
-
-  { Pointers to basic types }
-
-  PInt                 = ^Int;
-  PShort               = ^Short;
-  PUShort              = ^UShort;
-  PLong                = ^Long;
-  PULong               = ^ULong;
-  PFloat               = ^Float;
-  PUChar               = ^UChar;
-  PVoid                = ^Pointer;
-
-{$PACKRECORDS C}
-
-  const
-     ISC_TRUE = 1;
-     ISC_FALSE = 0;
-  const
-     ISC__TRUE = ISC_TRUE;
-     ISC__FALSE = ISC_FALSE;
-
-Type
-   ISC_USHORT    = word;
-   ISC_STATUS    = longint;
-   ISC_INT64     = int64;
-   ISC_UINT64    = qword;
-   ISC_LONG      = Longint;
-
-   PISC_USHORT = ^ISC_USHORT;
-   PISC_STATUS = ^ISC_STATUS;
-   PPISC_STATUS = ^PISC_STATUS;
-   PISC_INT64 = ^ISC_INT64;
-   PISC_UINT64 = ^ISC_UINT64;
-   PISC_LONG = ^ISC_LONG;
-
-  const
-     DSQL_close = 1;
-     DSQL_drop = 2;
-
-  {!!MVC
-    Removed all ISC_FAR, ISC_EXPORT_VARARG and ISC_EXPORT
-    macros.
-    They confuse h2pas...
-  !!MVC }
-  {                                                                  }
-  { Time & Date Support                                              }
-  {                                                                  }
-{$ifndef _ISC_TIMESTAMP_}
-
-  type
-
-     ISC_DATE = longint;
-     ISC_TIME = dword;
-     ISC_TIMESTAMP = record
-          timestamp_date : ISC_DATE;
-          timestamp_time : ISC_TIME;
-       end;
-     TISC_DATE = ISC_DATE;
-     TISC_TIME = ISC_TIME;
-     TISC_TIMESTAMP = ISC_TIMESTAMP;
-     PISC_DATE = ^ISC_DATE;
-     PISC_TIME = ^ISC_TIME;
-     PISC_TIMESTAMP = ^ISC_TIMESTAMP;
-  const
-     _ISC_TIMESTAMP_ = 1;
-{$endif}
-
-  const
-     ISC_TIME_SECONDS_PRECISION = 10000;
-     ISC_TIME_SECONDS_PRECISION_SCALE = -4;
-  {                                                                  }
-  { Blob id structure                                                }
-  {                                                                  }
-
-Type
-
-   GDS_QUAD = record
-      gds_quad_high : ISC_LONG;
-      gds_quad_low : ISC_LONG;
-   end;
-   TGDS_QUAD = GDS_QUAD;
-   PGDS_QUAD = ^GDS_QUAD;
-
-Type
-     ISC_QUAD = GDS_QUAD;
-     TISC_QUAD = ISC_QUAD;
-     PISC_QUAD = ^ISC_QUAD;
-
-{ !!field redefinitions !!
-     isc_quad_high = gds_quad_high;
-     isc_quad_low = gds_quad_low;
-}
-
-type
-
-     ISC_ARRAY_BOUND = record
-          array_bound_lower : smallint;
-          array_bound_upper : smallint;
-       end;
-     TISC_ARRAY_BOUND = ISC_ARRAY_BOUND;
-     PISC_ARRAY_BOUND = ^ISC_ARRAY_BOUND;
-
-     ISC_ARRAY_DESC = record
-          array_desc_dtype : byte;
-          array_desc_scale : char;
-          array_desc_length : word;
-          array_desc_field_name : array[0..31] of char;
-          array_desc_relation_name : array[0..31] of char;
-          array_desc_dimensions : smallint;
-          array_desc_flags : smallint;
-          array_desc_bounds : array[0..15] of ISC_ARRAY_BOUND;
-       end;
-     TISC_ARRAY_DESC = ISC_ARRAY_DESC;
-     PISC_ARRAY_DESC = ^ISC_ARRAY_DESC;
-
-     ISC_BLOB_DESC = record
-          blob_desc_subtype : smallint;
-          blob_desc_charset : smallint;
-          blob_desc_segment_size : smallint;
-          blob_desc_field_name : array[0..31] of byte;
-          blob_desc_relation_name : array[0..31] of byte;
-       end;
-     TISC_BLOB_DESC = ISC_BLOB_DESC;
-     PISC_BLOB_DESC = ^ISC_BLOB_DESC ;
-  {                          }
-  { Blob control structure   }
-  {                          }
-  {!!MVC
-  !!MVC }
-  { Source filter  }
-  {!!MVC
-  !!MVC }
-  { Argument to pass to source  }
-  { filter  }
-  { Target type  }
-  { Source type  }
-  { Length of buffer  }
-  { Length of current segment  }
-  { Length of blob parameter  }
-  { block  }
-  { Address of blob parameter  }
-  { block  }
-  { Address of segment buffer  }
-  { Length of longest segment  }
-  { Total number of segments  }
-  { Total length of blob  }
-  { Address of status vector  }
-  { Application specific data  }
-  TCTLSourceFunction  = function : isc_long;
-
-     PISC_BLOB_CTL = ^ISC_BLOB_CTL ;
-     ISC_BLOB_CTL = record
-          ctl_source : TCTLSourceFunction;     //  was ISC_STATUS ( *ctl_source)();
-          ctl_source_handle : pisc_blob_ctl  ; // was struct isc_blob_ctl  * ctl_source_handle;
-          ctl_to_sub_type : smallint;
-          ctl_from_sub_type : smallint;
-          ctl_buffer_length : word;
-          ctl_segment_length : word;
-          ctl_bpb_length : word;
-          ctl_bpb : Pchar;
-          ctl_buffer : Pbyte;
-          ctl_max_segment : ISC_LONG;
-          ctl_number_segments : ISC_LONG;
-          ctl_total_length : ISC_LONG;
-          ctl_status : PISC_STATUS;
-          ctl_data : array[0..7] of longint;
-       end;
-     TISC_BLOB_CTL = ISC_BLOB_CTL;
-
-  {                          }
-  { Blob stream definitions  }
-  {                          }
-  { Blob handle  }
-  { Address of buffer  }
-  { Next character  }
-  { Length of buffer  }
-  { Characters in buffer  }
-  { (mode) ? OUTPUT : INPUT  }
-
-     BSTREAM = record
-          bstr_blob : pointer;
-          bstr_buffer : Pchar;
-          bstr_ptr : Pchar;
-          bstr_length : smallint;
-          bstr_cnt : smallint;
-          bstr_mode : char;
-       end;
-     TBSTREAM = BSTREAM;
-     PBstream = ^BSTREAM;
-  {!!MVC
-
-  #define getb(p)       (--(p)->bstr_cnt >= 0 ?  (p)->bstr_ptr++ & 0377: BLOB_get (p))
-  #define putb(x,p) (((x) == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x))))
-  #define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x))))
-
-  !!MVC  }
-  {                          }
-  { Dynamic SQL definitions  }
-  {                          }
-  {                             }
-  { Declare the extended SQLDA  }
-  {                             }
-  { datatype of field  }
-  { scale factor  }
-  { datatype subtype - BLOBs & Text  }
-  { types only  }
-  { length of data area  }
-  { address of data  }
-  { address of indicator variable  }
-  { length of sqlname field  }
-  { name of field, name length + space  }
-  { for NULL  }
-  { length of relation name  }
-  { field's relation name + space for  }
-  { NULL  }
-  { length of owner name  }
-  { relation's owner name + space for  }
-  { NULL  }
-  { length of alias name  }
-  { relation's alias name + space for  }
-  { NULL  }
-
-     XSQLVAR = record
-          sqltype : smallint;
-          sqlscale : smallint;
-          sqlsubtype : smallint;
-          sqllen : smallint;
-          sqldata : Pchar;
-          sqlind : Psmallint;
-          sqlname_length : smallint;
-          sqlname : array[0..31] of char;
-          relname_length : smallint;
-          relname : array[0..31] of char;
-          ownname_length : smallint;
-          ownname : array[0..31] of char;
-          aliasname_length : smallint;
-          aliasname : array[0..31] of char;
-       end;
-     TXSQLVAR = XSQLVAR;
-     PXSQLVAR =^XSQLVAR;
-  { version of this XSQLDA  }
-  { XSQLDA name field  }
-  { length in bytes of SQLDA  }
-  { number of fields allocated  }
-  { actual number of fields  }
-  { first field address  }
-
-     XSQLDA = record
-          version : smallint;
-          sqldaid : array[0..7] of char;
-          sqldabc : ISC_LONG;
-          sqln : smallint;
-          sqld : smallint;
-          sqlvar : array[0..0] of XSQLVAR;
-       end;
-     TXSQLDA = XSQLDA;
-     PXSQLDA =^XSQLDA;
-
-  function XSQLDA_LENGTH(n: Integer): Integer;
-
-
-  const
-     SQLDA_VERSION1 = 1;
-  { meaning is same as DIALECT_xsqlda  }
-     SQL_DIALECT_V5 = 1;
-  { flagging anything that is delimited
-                                              by double quotes as an error and
-                                              flagging keyword DATE as an error  }
-     SQL_DIALECT_V6_TRANSITION = 2;
-  { supports SQL delimited identifier,
-                                              SQLDATE/DATE, TIME, TIMESTAMP,
-                                              CURRENT_DATE, CURRENT_TIME,
-                                              CURRENT_TIMESTAMP, and 64-bit exact
-                                              numeric type  }
-     SQL_DIALECT_V6 = 3;
-  { latest IB DIALECT  }
-     SQL_DIALECT_CURRENT = SQL_DIALECT_V6;
-  {                               }
-  { InterBase Handle Definitions  }
-  {                               }
-
-  type
-     isc_att_handle = pointer;
-     isc_blob_handle = pointer;
-     isc_db_handle = pointer;
-     isc_form_handle = pointer;
-     isc_req_handle = pointer;
-     isc_stmt_handle = pointer;
-     isc_svc_handle = pointer;
-     isc_tr_handle = pointer;
-     isc_win_handle = pointer;
-     isc_callback = procedure ;extdecl;
-     isc_resv_handle = ISC_LONG;
-     tisc_att_handle = isc_att_handle;
-     tisc_blob_handle = isc_blob_handle;
-     tisc_db_handle = isc_db_handle;
-     tisc_form_handle = isc_form_handle;
-     tisc_req_handle = isc_req_handle;
-     tisc_stmt_handle = isc_stmt_handle;
-     tisc_svc_handle = isc_svc_handle;
-     tisc_tr_handle = isc_tr_handle;
-     tisc_win_handle = isc_win_handle;
-     tisc_callback = isc_callback;
-     tisc_resv_handle = isc_resv_handle;
-     pisc_att_handle  =^isc_att_handle ;
-     pisc_blob_handle  =^isc_blob_handle ;
-     pisc_db_handle  =^isc_db_handle ;
-     pisc_form_handle  =^isc_form_handle ;
-     pisc_req_handle  =^isc_req_handle ;
-     pisc_stmt_handle  =^isc_stmt_handle ;
-     pisc_svc_handle  =^isc_svc_handle ;
-     pisc_tr_handle  =^isc_tr_handle ;
-     pisc_win_handle  =^isc_win_handle ;
-     pisc_callback  = ^isc_callback;
-     pisc_resv_handle  =^isc_resv_handle ;
-
-
-  {                                    }
-  { Security structures                }
-  {                                    }
-
-  const
-     sec_uid_spec = $01;
-     sec_gid_spec = $02;
-     sec_server_spec = $04;
-     sec_password_spec = $08;
-     sec_group_name_spec = $10;
-     sec_first_name_spec = $20;
-     sec_middle_name_spec = $40;
-     sec_last_name_spec = $80;
-     sec_dba_user_name_spec = $100;
-     sec_dba_password_spec = $200;
-     sec_protocol_tcpip = 1;
-     sec_protocol_netbeui = 2;
-     sec_protocol_spx = 3;
-     sec_protocol_local = 4;
-  { which fields are specified  }
-  { the user's id  }
-  { the user's group id  }
-  { protocol to use for connection  }
-  { server to administer  }
-  { the user's name  }
-  { the user's password  }
-  { the group name  }
-  { the user's first name  }
-  { the user's middle name  }
-  { the user's last name  }
-  { the dba user name  }
-  { the dba password  }
-
-  type
-
-     USER_SEC_DATA = record
-          sec_flags : smallint;
-          uid : longint;
-          gid : longint;
-          protocol : longint;
-          server : Pchar;
-          user_name : Pchar;
-          password : Pchar;
-          group_name : Pchar;
-          first_name : Pchar;
-          middle_name : Pchar;
-          last_name : Pchar;
-          dba_user_name : Pchar;
-          dba_password : Pchar;
-       end;
-     TUSER_SEC_DATA = USER_SEC_DATA;
-     PUSER_SEC_DATA = ^USER_SEC_DATA;
-
-  {                                                  }
-  { Actions to pass to the blob filter (ctl_source)  }
-  {                                                  }
-
-  const
-     isc_blob_filter_open = 0;
-     isc_blob_filter_get_segment = 1;
-     isc_blob_filter_close = 2;
-     isc_blob_filter_create = 3;
-     isc_blob_filter_put_segment = 4;
-     isc_blob_filter_alloc = 5;
-     isc_blob_filter_free = 6;
-     isc_blob_filter_seek = 7;
-  {                  }
-  { Blr definitions  }
-  {                  }
-{$ifndef _JRD_BLR_H_}
-  {!!MVC
-  #define blr_word(n) ((n) % 256), ((n) / 256)
-  !!MVC }
-
-  const
-     blr_text = 14;
-     blr_text2 = 15;
-     blr_short = 7;
-     blr_long = 8;
-     blr_quad = 9;
-     blr_int64 = 16;
-     blr_float = 10;
-     blr_double = 27;
-     blr_d_float = 11;
-     blr_timestamp = 35;
-     blr_varying = 37;
-     blr_varying2 = 38;
-     blr_blob = 261;
-     blr_cstring = 40;
-     blr_cstring2 = 41;
-     blr_blob_id = 45;
-     blr_sql_date = 12;
-     blr_sql_time = 13;
-  { Historical alias for pre V6 applications  }
-     blr_date = blr_timestamp;
-     blr_inner = 0;
-     blr_left = 1;
-     blr_right = 2;
-     blr_full = 3;
-     blr_gds_code = 0;
-     blr_sql_code = 1;
-     blr_exception = 2;
-     blr_trigger_code = 3;
-     blr_default_code = 4;
-     blr_version4 = 4;
-     blr_version5 = 5;
-     blr_eoc = 76;
-     blr_end = 255;
-     blr_assignment = 1;
-     blr_begin = 2;
-     blr_dcl_variable = 3;
-     blr_message = 4;
-     blr_erase = 5;
-     blr_fetch = 6;
-     blr_for = 7;
-     blr_if = 8;
-     blr_loop = 9;
-     blr_modify = 10;
-     blr_handler = 11;
-     blr_receive = 12;
-     blr_select = 13;
-     blr_send = 14;
-     blr_store = 15;
-     blr_label = 17;
-     blr_leave = 18;
-     blr_store2 = 19;
-     blr_post = 20;
-     blr_literal = 21;
-     blr_dbkey = 22;
-     blr_field = 23;
-     blr_fid = 24;
-     blr_parameter = 25;
-     blr_variable = 26;
-     blr_average = 27;
-     blr_count = 28;
-     blr_maximum = 29;
-     blr_minimum = 30;
-     blr_total = 31;
-     blr_add = 34;
-     blr_subtract = 35;
-     blr_multiply = 36;
-     blr_divide = 37;
-     blr_negate = 38;
-     blr_concatenate = 39;
-     blr_substring = 40;
-     blr_parameter2 = 41;
-     blr_from = 42;
-     blr_via = 43;
-     blr_user_name = 44;
-     blr_null = 45;
-     blr_eql = 47;
-     blr_neq = 48;
-     blr_gtr = 49;
-     blr_geq = 50;
-     blr_lss = 51;
-     blr_leq = 52;
-     blr_containing = 53;
-     blr_matching = 54;
-     blr_starting = 55;
-     blr_between = 56;
-     blr_or = 57;
-     blr_and = 58;
-     blr_not = 59;
-     blr_any = 60;
-     blr_missing = 61;
-     blr_unique = 62;
-     blr_like = 63;
-     blr_stream = 65;
-     blr_set_index = 66;
-     blr_rse = 67;
-     blr_first = 68;
-     blr_project = 69;
-     blr_sort = 70;
-     blr_boolean = 71;
-     blr_ascending = 72;
-     blr_descending = 73;
-     blr_relation = 74;
-     blr_rid = 75;
-     blr_union = 76;
-     blr_map = 77;
-     blr_group_by = 78;
-     blr_aggregate = 79;
-     blr_join_type = 80;
-     blr_agg_count = 83;
-     blr_agg_max = 84;
-     blr_agg_min = 85;
-     blr_agg_total = 86;
-     blr_agg_average = 87;
-     blr_parameter3 = 88;
-     blr_run_count = 118;
-     blr_run_max = 89;
-     blr_run_min = 90;
-     blr_run_total = 91;
-     blr_run_average = 92;
-     blr_agg_count2 = 93;
-     blr_agg_count_distinct = 94;
-     blr_agg_total_distinct = 95;
-     blr_agg_average_distinct = 96;
-     blr_function = 100;
-     blr_gen_id = 101;
-     blr_prot_mask = 102;
-     blr_upcase = 103;
-     blr_lock_state = 104;
-     blr_value_if = 105;
-     blr_matching2 = 106;
-     blr_index = 107;
-     blr_ansi_like = 108;
-     blr_bookmark = 109;
-     blr_crack = 110;
-     blr_force_crack = 111;
-     blr_seek = 112;
-     blr_find = 113;
-     blr_continue = 0;
-     blr_forward = 1;
-     blr_backward = 2;
-     blr_bof_forward = 3;
-     blr_eof_backward = 4;
-     blr_lock_relation = 114;
-     blr_lock_record = 115;
-     blr_set_bookmark = 116;
-     blr_get_bookmark = 117;
-     blr_rs_stream = 119;
-     blr_exec_proc = 120;
-     blr_begin_range = 121;
-     blr_end_range = 122;
-     blr_delete_range = 123;
-     blr_procedure = 124;
-     blr_pid = 125;
-     blr_exec_pid = 126;
-     blr_singular = 127;
-     blr_abort = 128;
-     blr_block = 129;
-     blr_error_handler = 130;
-     blr_cast = 131;
-     blr_release_lock = 132;
-     blr_release_locks = 133;
-     blr_start_savepoint = 134;
-     blr_end_savepoint = 135;
-     blr_find_dbkey = 136;
-     blr_range_relation = 137;
-     blr_delete_ranges = 138;
-     blr_plan = 139;
-     blr_merge = 140;
-     blr_join = 141;
-     blr_sequential = 142;
-     blr_navigational = 143;
-     blr_indices = 144;
-     blr_retrieve = 145;
-     blr_relation2 = 146;
-     blr_rid2 = 147;
-     blr_reset_stream = 148;
-     blr_release_bookmark = 149;
-     blr_set_generator = 150;
-     blr_ansi_any = 151;
-     blr_exists = 152;
-     blr_cardinality = 153;
-  { get tid of record  }
-     blr_record_version = 154;
-  { fake server stall  }
-     blr_stall = 155;
-     blr_seek_no_warn = 156;
-     blr_find_dbkey_version = 157;
-     blr_ansi_all = 158;
-     blr_extract = 159;
-  { sub parameters for blr_extract  }
-     blr_extract_year = 0;
-     blr_extract_month = 1;
-     blr_extract_day = 2;
-     blr_extract_hour = 3;
-     blr_extract_minute = 4;
-     blr_extract_second = 5;
-     blr_extract_weekday = 6;
-     blr_extract_yearday = 7;
-     blr_current_date = 160;
-     blr_current_timestamp = 161;
-     blr_current_time = 162;
-  { These verbs were added in 6.0, primarily to support 64-bit integers  }
-     blr_add2 = 163;
-     blr_subtract2 = 164;
-     blr_multiply2 = 165;
-     blr_divide2 = 166;
-     blr_agg_total2 = 167;
-     blr_agg_total_distinct2 = 168;
-     blr_agg_average2 = 169;
-     blr_agg_average_distinct2 = 170;
-     blr_average2 = 171;
-     blr_gen_id2 = 172;
-     blr_set_generator2 = 173;
-{$endif}
-  { _JRD_BLR_H_  }
-  {                                 }
-  { Database parameter block stuff  }
-  {                                 }
-
-  const
-     isc_dpb_version1 = 1;
-     isc_dpb_cdd_pathname = 1;
-     isc_dpb_allocation = 2;
-     isc_dpb_journal = 3;
-     isc_dpb_page_size = 4;
-     isc_dpb_num_buffers = 5;
-     isc_dpb_buffer_length = 6;
-     isc_dpb_debug = 7;
-     isc_dpb_garbage_collect = 8;
-     isc_dpb_verify = 9;
-     isc_dpb_sweep = 10;
-     isc_dpb_enable_journal = 11;
-     isc_dpb_disable_journal = 12;
-     isc_dpb_dbkey_scope = 13;
-     isc_dpb_number_of_users = 14;
-     isc_dpb_trace = 15;
-     isc_dpb_no_garbage_collect = 16;
-     isc_dpb_damaged = 17;
-     isc_dpb_license = 18;
-     isc_dpb_sys_user_name = 19;
-     isc_dpb_encrypt_key = 20;
-     isc_dpb_activate_shadow = 21;
-     isc_dpb_sweep_interval = 22;
-     isc_dpb_delete_shadow = 23;
-     isc_dpb_force_write = 24;
-     isc_dpb_begin_log = 25;
-     isc_dpb_quit_log = 26;
-     isc_dpb_no_reserve = 27;
-     isc_dpb_user_name = 28;
-     isc_dpb_password = 29;
-     isc_dpb_password_enc = 30;
-     isc_dpb_sys_user_name_enc = 31;
-     isc_dpb_interp = 32;
-     isc_dpb_online_dump = 33;
-     isc_dpb_old_file_size = 34;
-     isc_dpb_old_num_files = 35;
-     isc_dpb_old_file = 36;
-     isc_dpb_old_start_page = 37;
-     isc_dpb_old_start_seqno = 38;
-     isc_dpb_old_start_file = 39;
-     isc_dpb_drop_walfile = 40;
-     isc_dpb_old_dump_id = 41;
-     isc_dpb_wal_backup_dir = 42;
-     isc_dpb_wal_chkptlen = 43;
-     isc_dpb_wal_numbufs = 44;
-     isc_dpb_wal_bufsize = 45;
-     isc_dpb_wal_grp_cmt_wait = 46;
-     isc_dpb_lc_messages = 47;
-     isc_dpb_lc_ctype = 48;
-     isc_dpb_cache_manager = 49;
-     isc_dpb_shutdown = 50;
-     isc_dpb_online = 51;
-     isc_dpb_shutdown_delay = 52;
-     isc_dpb_reserved = 53;
-     isc_dpb_overwrite = 54;
-     isc_dpb_sec_attach = 55;
-     isc_dpb_disable_wal = 56;
-     isc_dpb_connect_timeout = 57;
-     isc_dpb_dummy_packet_interval = 58;
-     isc_dpb_gbak_attach = 59;
-     isc_dpb_sql_role_name = 60;
-     isc_dpb_set_page_buffers = 61;
-     isc_dpb_working_directory = 62;
-     isc_dpb_SQL_dialect = 63;
-     isc_dpb_set_db_readonly = 64;
-     isc_dpb_set_db_SQL_dialect = 65;
-     isc_dpb_gfix_attach = 66;
-     isc_dpb_gstat_attach = 67;
-  {                                }
-  { isc_dpb_verify specific flags  }
-  {                                }
-     isc_dpb_pages = 1;
-     isc_dpb_records = 2;
-     isc_dpb_indices = 4;
-     isc_dpb_transactions = 8;
-     isc_dpb_no_update = 16;
-     isc_dpb_repair = 32;
-     isc_dpb_ignore = 64;
-  {                                  }
-  { isc_dpb_shutdown specific flags  }
-  {                                  }
-     isc_dpb_shut_cache = 1;
-     isc_dpb_shut_attachment = 2;
-     isc_dpb_shut_transaction = 4;
-     isc_dpb_shut_force = 8;
-  {                                     }
-  { Bit assignments in RDB$SYSTEM_FLAG  }
-  {                                     }
-     RDB_system = 1;
-     RDB_id_assigned = 2;
-  {                                    }
-  { Transaction parameter block stuff  }
-  {                                    }
-     isc_tpb_version1 = 1;
-     isc_tpb_version3 = 3;
-     isc_tpb_consistency = 1;
-     isc_tpb_concurrency = 2;
-     isc_tpb_shared = 3;
-     isc_tpb_protected = 4;
-     isc_tpb_exclusive = 5;
-     isc_tpb_wait = 6;
-     isc_tpb_nowait = 7;
-     isc_tpb_read = 8;
-     isc_tpb_write = 9;
-     isc_tpb_lock_read = 10;
-     isc_tpb_lock_write = 11;
-     isc_tpb_verb_time = 12;
-     isc_tpb_commit_time = 13;
-     isc_tpb_ignore_limbo = 14;
-     isc_tpb_read_committed = 15;
-     isc_tpb_autocommit = 16;
-     isc_tpb_rec_version = 17;
-     isc_tpb_no_rec_version = 18;
-     isc_tpb_restart_requests = 19;
-     isc_tpb_no_auto_undo = 20;
-  {                       }
-  { Blob Parameter Block  }
-  {                       }
-     isc_bpb_version1 = 1;
-     isc_bpb_source_type = 1;
-     isc_bpb_target_type = 2;
-     isc_bpb_type = 3;
-     isc_bpb_source_interp = 4;
-     isc_bpb_target_interp = 5;
-     isc_bpb_filter_parameter = 6;
-     isc_bpb_type_segmented = 0;
-     isc_bpb_type_stream = 1;
-  {                                }
-  { Service parameter block stuff  }
-  {                                }
-     isc_spb_version1 = 1;
-     isc_spb_current_version = 2;
-     isc_spb_version = isc_spb_current_version;
-     isc_spb_user_name = isc_dpb_user_name;
-     isc_spb_sys_user_name = isc_dpb_sys_user_name;
-     isc_spb_sys_user_name_enc = isc_dpb_sys_user_name_enc;
-     isc_spb_password = isc_dpb_password;
-     isc_spb_password_enc = isc_dpb_password_enc;
-     isc_spb_command_line = 105;
-     isc_spb_dbname = 106;
-     isc_spb_verbose = 107;
-     isc_spb_options = 108;
-     isc_spb_connect_timeout = isc_dpb_connect_timeout;
-     isc_spb_dummy_packet_interval = isc_dpb_dummy_packet_interval;
-     isc_spb_sql_role_name = isc_dpb_sql_role_name;
-  {                                }
-  { Information call declarations  }
-  {                                }
-  {                           }
-  { Common, structural codes  }
-  {                           }
-     isc_info_end = 1;
-     isc_info_truncated = 2;
-     isc_info_error = 3;
-     isc_info_data_not_ready = 4;
-     isc_info_flag_end = 127;
-  {                             }
-  { Database information items  }
-  {                             }
-     isc_info_db_id = 4;
-     isc_info_reads = 5;
-     isc_info_writes = 6;
-     isc_info_fetches = 7;
-     isc_info_marks = 8;
-     isc_info_implementation = 11;
-     isc_info_version = 12;
-     isc_info_base_level = 13;
-     isc_info_page_size = 14;
-     isc_info_num_buffers = 15;
-     isc_info_limbo = 16;
-     isc_info_current_memory = 17;
-     isc_info_max_memory = 18;
-     isc_info_window_turns = 19;
-     isc_info_license = 20;
-     isc_info_allocation = 21;
-     isc_info_attachment_id = 22;
-     isc_info_read_seq_count = 23;
-     isc_info_read_idx_count = 24;
-     isc_info_insert_count = 25;
-     isc_info_update_count = 26;
-     isc_info_delete_count = 27;
-     isc_info_backout_count = 28;
-     isc_info_purge_count = 29;
-     isc_info_expunge_count = 30;
-     isc_info_sweep_interval = 31;
-     isc_info_ods_version = 32;
-     isc_info_ods_minor_version = 33;
-     isc_info_no_reserve = 34;
-     isc_info_logfile = 35;
-     isc_info_cur_logfile_name = 36;
-     isc_info_cur_log_part_offset = 37;
-     isc_info_num_wal_buffers = 38;
-     isc_info_wal_buffer_size = 39;
-     isc_info_wal_ckpt_length = 40;
-     isc_info_wal_cur_ckpt_interval = 41;
-     isc_info_wal_prv_ckpt_fname = 42;
-     isc_info_wal_prv_ckpt_poffset = 43;
-     isc_info_wal_recv_ckpt_fname = 44;
-     isc_info_wal_recv_ckpt_poffset = 45;
-     isc_info_wal_grpc_wait_usecs = 47;
-     isc_info_wal_num_io = 48;
-     isc_info_wal_avg_io_size = 49;
-     isc_info_wal_num_commits = 50;
-     isc_info_wal_avg_grpc_size = 51;
-     isc_info_forced_writes = 52;
-     isc_info_user_names = 53;
-     isc_info_page_errors = 54;
-     isc_info_record_errors = 55;
-     isc_info_bpage_errors = 56;
-     isc_info_dpage_errors = 57;
-     isc_info_ipage_errors = 58;
-     isc_info_ppage_errors = 59;
-     isc_info_tpage_errors = 60;
-     isc_info_set_page_buffers = 61;
-     isc_info_db_SQL_dialect = 62;
-     isc_info_db_read_only = 63;
-     isc_info_db_size_in_pages = 64;
-  {                                     }
-  { Database information return values  }
-  {                                     }
-     isc_info_db_impl_rdb_vms = 1;
-     isc_info_db_impl_rdb_eln = 2;
-     isc_info_db_impl_rdb_eln_dev = 3;
-     isc_info_db_impl_rdb_vms_y = 4;
-     isc_info_db_impl_rdb_eln_y = 5;
-     isc_info_db_impl_jri = 6;
-     isc_info_db_impl_jsv = 7;
-     isc_info_db_impl_isc_a = 25;
-     isc_info_db_impl_isc_u = 26;
-     isc_info_db_impl_isc_v = 27;
-     isc_info_db_impl_isc_s = 28;
-     isc_info_db_impl_isc_apl_68K = 25;
-     isc_info_db_impl_isc_vax_ultr = 26;
-     isc_info_db_impl_isc_vms = 27;
-     isc_info_db_impl_isc_sun_68k = 28;
-     isc_info_db_impl_isc_os2 = 29;
-     isc_info_db_impl_isc_sun4 = 30;
-     isc_info_db_impl_isc_hp_ux = 31;
-     isc_info_db_impl_isc_sun_386i = 32;
-     isc_info_db_impl_isc_vms_orcl = 33;
-     isc_info_db_impl_isc_mac_aux = 34;
-     isc_info_db_impl_isc_rt_aix = 35;
-     isc_info_db_impl_isc_mips_ult = 36;
-     isc_info_db_impl_isc_xenix = 37;
-     isc_info_db_impl_isc_dg = 38;
-     isc_info_db_impl_isc_hp_mpexl = 39;
-     isc_info_db_impl_isc_hp_ux68K = 40;
-     isc_info_db_impl_isc_sgi = 41;
-     isc_info_db_impl_isc_sco_unix = 42;
-     isc_info_db_impl_isc_cray = 43;
-     isc_info_db_impl_isc_imp = 44;
-     isc_info_db_impl_isc_delta = 45;
-     isc_info_db_impl_isc_next = 46;
-     isc_info_db_impl_isc_dos = 47;
-     isc_info_db_impl_isc_winnt = 48;
-     isc_info_db_impl_isc_epson = 49;
-     isc_info_db_class_access = 1;
-     isc_info_db_class_y_valve = 2;
-     isc_info_db_class_rem_int = 3;
-     isc_info_db_class_rem_srvr = 4;
-     isc_info_db_class_pipe_int = 7;
-     isc_info_db_class_pipe_srvr = 8;
-     isc_info_db_class_sam_int = 9;
-     isc_info_db_class_sam_srvr = 10;
-     isc_info_db_class_gateway = 11;
-     isc_info_db_class_cache = 12;
-  {                            }
-  { Request information items  }
-  {                            }
-     isc_info_number_messages = 4;
-     isc_info_max_message = 5;
-     isc_info_max_send = 6;
-     isc_info_max_receive = 7;
-     isc_info_state = 8;
-     isc_info_message_number = 9;
-     isc_info_message_size = 10;
-     isc_info_request_cost = 11;
-     isc_info_access_path = 12;
-     isc_info_req_select_count = 13;
-     isc_info_req_insert_count = 14;
-     isc_info_req_update_count = 15;
-     isc_info_req_delete_count = 16;
-  {                    }
-  { Access path items  }
-  {                    }
-     isc_info_rsb_end = 0;
-     isc_info_rsb_begin = 1;
-     isc_info_rsb_type = 2;
-     isc_info_rsb_relation = 3;
-     isc_info_rsb_plan = 4;
-  {            }
-  { Rsb types  }
-  {            }
-     isc_info_rsb_unknown = 1;
-     isc_info_rsb_indexed = 2;
-     isc_info_rsb_navigate = 3;
-     isc_info_rsb_sequential = 4;
-     isc_info_rsb_cross = 5;
-     isc_info_rsb_sort = 6;
-     isc_info_rsb_first = 7;
-     isc_info_rsb_boolean = 8;
-     isc_info_rsb_union = 9;
-     isc_info_rsb_aggregate = 10;
-     isc_info_rsb_merge = 11;
-     isc_info_rsb_ext_sequential = 12;
-     isc_info_rsb_ext_indexed = 13;
-     isc_info_rsb_ext_dbkey = 14;
-     isc_info_rsb_left_cross = 15;
-     isc_info_rsb_select = 16;
-     isc_info_rsb_sql_join = 17;
-     isc_info_rsb_simulate = 18;
-     isc_info_rsb_sim_cross = 19;
-     isc_info_rsb_once = 20;
-     isc_info_rsb_procedure = 21;
-  {                     }
-  { Bitmap expressions  }
-  {                     }
-     isc_info_rsb_and = 1;
-     isc_info_rsb_or = 2;
-     isc_info_rsb_dbkey = 3;
-     isc_info_rsb_index = 4;
-     isc_info_req_active = 2;
-     isc_info_req_inactive = 3;
-     isc_info_req_send = 4;
-     isc_info_req_receive = 5;
-     isc_info_req_select = 6;
-     isc_info_req_sql_stall = 7;
-  {                         }
-  { Blob information items  }
-  {                         }
-     isc_info_blob_num_segments = 4;
-     isc_info_blob_max_segment = 5;
-     isc_info_blob_total_length = 6;
-     isc_info_blob_type = 7;
-  {                                }
-  { Transaction information items  }
-  {                                }
-     isc_info_tra_id = 4;
-  {
-     Service action items
-                                }
-  { Starts database backup process on the server  }
-     isc_action_svc_backup = 1;
-  { Starts database restore process on the server  }
-     isc_action_svc_restore = 2;
-  { Starts database repair process on the server  }
-     isc_action_svc_repair = 3;
-  { Adds a new user to the security database  }
-     isc_action_svc_add_user = 4;
-  { Deletes a user record from the security database  }
-     isc_action_svc_delete_user = 5;
-  { Modifies a user record in the security database  }
-     isc_action_svc_modify_user = 6;
-  { Displays a user record from the security database  }
-     isc_action_svc_display_user = 7;
-  { Sets database properties  }
-     isc_action_svc_properties = 8;
-  { Adds a license to the license file  }
-     isc_action_svc_add_license = 9;
-  { Removes a license from the license file  }
-     isc_action_svc_remove_license = 10;
-  { Retrieves database statistics  }
-     isc_action_svc_db_stats = 11;
-  { Retrieves the InterBase log file from the server  }
-     isc_action_svc_get_ib_log = 12;
-  {
-     Service information items
-                                }
-  { Retrieves the number of attachments and databases  }
-     isc_info_svc_svr_db_info = 50;
-  { Retrieves all license keys and IDs from the license file  }
-     isc_info_svc_get_license = 51;
-  { Retrieves a bitmask representing licensed options on the server  }
-     isc_info_svc_get_license_mask = 52;
-  { Retrieves the parameters and values for IB_CONFIG  }
-     isc_info_svc_get_config = 53;
-  { Retrieves the version of the services manager  }
-     isc_info_svc_version = 54;
-  { Retrieves the version of the InterBase server  }
-     isc_info_svc_server_version = 55;
-  { Retrieves the implementation of the InterBase server  }
-     isc_info_svc_implementation = 56;
-  { Retrieves a bitmask representing the server's capabilities  }
-     isc_info_svc_capabilities = 57;
-  { Retrieves the path to the security database in use by the server  }
-     isc_info_svc_user_dbpath = 58;
-  { Retrieves the setting of $INTERBASE  }
-     isc_info_svc_get_env = 59;
-  { Retrieves the setting of $INTERBASE_LCK  }
-     isc_info_svc_get_env_lock = 60;
-  { Retrieves the setting of $INTERBASE_MSG  }
-     isc_info_svc_get_env_msg = 61;
-  { Retrieves 1 line of service output per call  }
-     isc_info_svc_line = 62;
-  { Retrieves as much of the server output as will fit in the supplied buffer  }
-     isc_info_svc_to_eof = 63;
-  { Sets / signifies a timeout value for reading service information  }
-     isc_info_svc_timeout = 64;
-  { Retrieves the number of users licensed for accessing the server  }
-     isc_info_svc_get_licensed_users = 65;
-  { Retrieve the limbo transactions  }
-     isc_info_svc_limbo_trans = 66;
-  { Checks to see if a service is running on an attachment  }
-     isc_info_svc_running = 67;
-  { Returns the user information from isc_action_svc_display_users  }
-     isc_info_svc_get_users = 68;
-  {
-     Parameters for isc_action_(add|delete|modify)_user
-   }
-     isc_spb_sec_userid = 5;
-     isc_spb_sec_groupid = 6;
-     isc_spb_sec_username = 7;
-     isc_spb_sec_password = 8;
-     isc_spb_sec_groupname = 9;
-     isc_spb_sec_firstname = 10;
-     isc_spb_sec_middlename = 11;
-     isc_spb_sec_lastname = 12;
-  {
-     Parameters for isc_action_svc_(add|remove)_license,
-     isc_info_svc_get_license
-                                                          }
-     isc_spb_lic_key = 5;
-     isc_spb_lic_id = 6;
-     isc_spb_lic_desc = 7;
-  {
-     Parameters for isc_action_svc_backup
-                                            }
-     isc_spb_bkp_file = 5;
-     isc_spb_bkp_factor = 6;
-     isc_spb_bkp_length = 7;
-     isc_spb_bkp_ignore_checksums = $01;
-     isc_spb_bkp_ignore_limbo = $02;
-     isc_spb_bkp_metadata_only = $04;
-     isc_spb_bkp_no_garbage_collect = $08;
-     isc_spb_bkp_old_descriptions = $10;
-     isc_spb_bkp_non_transportable = $20;
-     isc_spb_bkp_convert = $40;
-     isc_spb_bkp_expand = $80;
-  {
-     Parameters for isc_action_svc_properties
-                                               }
-     isc_spb_prp_page_buffers = 5;
-     isc_spb_prp_sweep_interval = 6;
-     isc_spb_prp_shutdown_db = 7;
-     isc_spb_prp_deny_new_attachments = 9;
-     isc_spb_prp_deny_new_transactions = 10;
-     isc_spb_prp_reserve_space = 11;
-     isc_spb_prp_write_mode = 12;
-     isc_spb_prp_access_mode = 13;
-     isc_spb_prp_set_sql_dialect = 14;
-     isc_spb_prp_activate = $0100;
-     isc_spb_prp_db_online = $0200;
-  {
-     Parameters for isc_spb_prp_reserve_space
-                                               }
-     isc_spb_prp_res_use_full = 35;
-     isc_spb_prp_res = 36;
-  {
-     Parameters for isc_spb_prp_write_mode
-                                             }
-     isc_spb_prp_wm_async = 37;
-     isc_spb_prp_wm_sync = 38;
-  {
-     Parameters for isc_spb_prp_access_mode
-                                             }
-     isc_spb_prp_am_readonly = 39;
-     isc_spb_prp_am_readwrite = 40;
-  {
-     Parameters for isc_action_svc_repair
-                                            }
-     isc_spb_rpr_commit_trans = 15;
-     isc_spb_rpr_rollback_trans = 34;
-     isc_spb_rpr_recover_two_phase = 17;
-     isc_spb_tra_id = 18;
-     isc_spb_single_tra_id = 19;
-     isc_spb_multi_tra_id = 20;
-     isc_spb_tra_state = 21;
-     isc_spb_tra_state_limbo = 22;
-     isc_spb_tra_state_commit = 23;
-     isc_spb_tra_state_rollback = 24;
-     isc_spb_tra_state_unknown = 25;
-     isc_spb_tra_host_site = 26;
-     isc_spb_tra_remote_site = 27;
-     isc_spb_tra_db_path = 28;
-     isc_spb_tra_advise = 29;
-     isc_spb_tra_advise_commit = 30;
-     isc_spb_tra_advise_rollback = 31;
-     isc_spb_tra_advise_unknown = 33;
-     isc_spb_rpr_validate_db = $01;
-     isc_spb_rpr_sweep_db = $02;
-     isc_spb_rpr_mend_db = $04;
-     isc_spb_rpr_list_limbo_trans = $08;
-     isc_spb_rpr_check_db = $10;
-     isc_spb_rpr_ignore_checksum = $20;
-     isc_spb_rpr_kill_shadows = $40;
-     isc_spb_rpr_full = $80;
-  {
-     Parameters for isc_action_svc_restore
-                                            }
-     isc_spb_res_buffers = 9;
-     isc_spb_res_page_size = 10;
-     isc_spb_res_length = 11;
-     isc_spb_res_access_mode = 12;
-     isc_spb_res_deactivate_idx = $0100;
-     isc_spb_res_no_shadow = $0200;
-     isc_spb_res_no_validity = $0400;
-     isc_spb_res_one_at_a_time = $0800;
-     isc_spb_res_replace = $1000;
-     isc_spb_res_create = $2000;
-     isc_spb_res_use_all_space = $4000;
-  {
-     Parameters for isc_spb_res_access_mode
-                                             }
-     isc_spb_res_am_readonly = isc_spb_prp_am_readonly;
-     isc_spb_res_am_readwrite = isc_spb_prp_am_readwrite;
-  {
-     Parameters for isc_info_svc_svr_db_info
-                                              }
-     isc_spb_num_att = 5;
-     isc_spb_num_db = 6;
-  {
-     Parameters for isc_info_svc_db_stats
-                                            }
-     isc_spb_sts_data_pages = $01;
-     isc_spb_sts_db_log = $02;
-     isc_spb_sts_hdr_pages = $04;
-     isc_spb_sts_idx_pages = $08;
-     isc_spb_sts_sys_relations = $10;
-  {                        }
-  { SQL information items  }
-  {                        }
-     isc_info_sql_select = 4;
-     isc_info_sql_bind = 5;
-     isc_info_sql_num_variables = 6;
-     isc_info_sql_describe_vars = 7;
-     isc_info_sql_describe_end = 8;
-     isc_info_sql_sqlda_seq = 9;
-     isc_info_sql_message_seq = 10;
-     isc_info_sql_type = 11;
-     isc_info_sql_sub_type = 12;
-     isc_info_sql_scale = 13;
-     isc_info_sql_length = 14;
-     isc_info_sql_null_ind = 15;
-     isc_info_sql_field = 16;
-     isc_info_sql_relation = 17;
-     isc_info_sql_owner = 18;
-     isc_info_sql_alias = 19;
-     isc_info_sql_sqlda_start = 20;
-     isc_info_sql_stmt_type = 21;
-     isc_info_sql_get_plan = 22;
-     isc_info_sql_records = 23;
-     isc_info_sql_batch_fetch = 24;
-  {                                }
-  { SQL information return values  }
-  {                                }
-     isc_info_sql_stmt_select = 1;
-     isc_info_sql_stmt_insert = 2;
-     isc_info_sql_stmt_update = 3;
-     isc_info_sql_stmt_delete = 4;
-     isc_info_sql_stmt_ddl = 5;
-     isc_info_sql_stmt_get_segment = 6;
-     isc_info_sql_stmt_put_segment = 7;
-     isc_info_sql_stmt_exec_procedure = 8;
-     isc_info_sql_stmt_start_trans = 9;
-     isc_info_sql_stmt_commit = 10;
-     isc_info_sql_stmt_rollback = 11;
-     isc_info_sql_stmt_select_for_upd = 12;
-     isc_info_sql_stmt_set_generator = 13;
-  {                                  }
-  { Server configuration key values  }
-  {                                  }
-     ISCCFG_LOCKMEM_KEY = 0;
-     ISCCFG_LOCKSEM_KEY = 1;
-     ISCCFG_LOCKSIG_KEY = 2;
-     ISCCFG_EVNTMEM_KEY = 3;
-     ISCCFG_DBCACHE_KEY = 4;
-     ISCCFG_PRIORITY_KEY = 5;
-     ISCCFG_IPCMAP_KEY = 6;
-     ISCCFG_MEMMIN_KEY = 7;
-     ISCCFG_MEMMAX_KEY = 8;
-     ISCCFG_LOCKORDER_KEY = 9;
-     ISCCFG_ANYLOCKMEM_KEY = 10;
-     ISCCFG_ANYLOCKSEM_KEY = 11;
-     ISCCFG_ANYLOCKSIG_KEY = 12;
-     ISCCFG_ANYEVNTMEM_KEY = 13;
-     ISCCFG_LOCKHASH_KEY = 14;
-     ISCCFG_DEADLOCK_KEY = 15;
-     ISCCFG_LOCKSPIN_KEY = 16;
-     ISCCFG_CONN_TIMEOUT_KEY = 17;
-     ISCCFG_DUMMY_INTRVL_KEY = 18;
-  { Internal Use only  }
-     ISCCFG_TRACE_POOLS_KEY = 19;
-     ISCCFG_REMOTE_BUFFER_KEY = 20;
-  {              }
-  { Error codes  }
-  {              }
-     isc_facility = 20;
-     isc_err_base = 335544320;
-     isc_err_factor = 1;
-     isc_arg_end = 0;
-     isc_arg_gds = 1;
-     isc_arg_string = 2;
-     isc_arg_cstring = 3;
-     isc_arg_number = 4;
-     isc_arg_interpreted = 5;
-     isc_arg_vms = 6;
-     isc_arg_unix = 7;
-     isc_arg_domain = 8;
-     isc_arg_dos = 9;
-     isc_arg_mpexl = 10;
-     isc_arg_mpexl_ipc = 11;
-     isc_arg_next_mach = 15;
-     isc_arg_netware = 16;
-     isc_arg_win32 = 17;
-     isc_arg_warning = 18;
-
-  {                                             }
-  { Dynamic Data Definition Language operators  }
-  {                                             }
-  {                 }
-  { Version number  }
-  {                 }
-
-  const
-     isc_dyn_version_1 = 1;
-     isc_dyn_eoc = 255;
-  {                             }
-  { Operations (may be nested)  }
-  {                             }
-     isc_dyn_begin = 2;
-     isc_dyn_end = 3;
-     isc_dyn_if = 4;
-     isc_dyn_def_database = 5;
-     isc_dyn_def_global_fld = 6;
-     isc_dyn_def_local_fld = 7;
-     isc_dyn_def_idx = 8;
-     isc_dyn_def_rel = 9;
-     isc_dyn_def_sql_fld = 10;
-     isc_dyn_def_view = 12;
-     isc_dyn_def_trigger = 15;
-     isc_dyn_def_security_class = 120;
-     isc_dyn_def_dimension = 140;
-     isc_dyn_def_generator = 24;
-     isc_dyn_def_function = 25;
-     isc_dyn_def_filter = 26;
-     isc_dyn_def_function_arg = 27;
-     isc_dyn_def_shadow = 34;
-     isc_dyn_def_trigger_msg = 17;
-     isc_dyn_def_file = 36;
-     isc_dyn_mod_database = 39;
-     isc_dyn_mod_rel = 11;
-     isc_dyn_mod_global_fld = 13;
-     isc_dyn_mod_idx = 102;
-     isc_dyn_mod_local_fld = 14;
-     isc_dyn_mod_sql_fld = 216;
-     isc_dyn_mod_view = 16;
-     isc_dyn_mod_security_class = 122;
-     isc_dyn_mod_trigger = 113;
-     isc_dyn_mod_trigger_msg = 28;
-     isc_dyn_delete_database = 18;
-     isc_dyn_delete_rel = 19;
-     isc_dyn_delete_global_fld = 20;
-     isc_dyn_delete_local_fld = 21;
-     isc_dyn_delete_idx = 22;
-     isc_dyn_delete_security_class = 123;
-     isc_dyn_delete_dimensions = 143;
-     isc_dyn_delete_trigger = 23;
-     isc_dyn_delete_trigger_msg = 29;
-     isc_dyn_delete_filter = 32;
-     isc_dyn_delete_function = 33;
-     isc_dyn_delete_shadow = 35;
-     isc_dyn_grant = 30;
-     isc_dyn_revoke = 31;
-     isc_dyn_def_primary_key = 37;
-     isc_dyn_def_foreign_key = 38;
-     isc_dyn_def_unique = 40;
-     isc_dyn_def_procedure = 164;
-     isc_dyn_delete_procedure = 165;
-     isc_dyn_def_parameter = 135;
-     isc_dyn_delete_parameter = 136;
-     isc_dyn_mod_procedure = 175;
-     isc_dyn_def_log_file = 176;
-     isc_dyn_def_cache_file = 180;
-     isc_dyn_def_exception = 181;
-     isc_dyn_mod_exception = 182;
-     isc_dyn_del_exception = 183;
-     isc_dyn_drop_log = 194;
-     isc_dyn_drop_cache = 195;
-     isc_dyn_def_default_log = 202;
-  {                      }
-  { View specific stuff  }
-  {                      }
-     isc_dyn_view_blr = 43;
-     isc_dyn_view_source = 44;
-     isc_dyn_view_relation = 45;
-     isc_dyn_view_context = 46;
-     isc_dyn_view_context_name = 47;
-  {                     }
-  { Generic attributes  }
-  {                     }
-     isc_dyn_rel_name = 50;
-     isc_dyn_fld_name = 51;
-     isc_dyn_new_fld_name = 215;
-     isc_dyn_idx_name = 52;
-     isc_dyn_description = 53;
-     isc_dyn_security_class = 54;
-     isc_dyn_system_flag = 55;
-     isc_dyn_update_flag = 56;
-     isc_dyn_prc_name = 166;
-     isc_dyn_prm_name = 137;
-     isc_dyn_sql_object = 196;
-     isc_dyn_fld_character_set_name = 174;
-  {                               }
-  { Relation specific attributes  }
-  {                               }
-     isc_dyn_rel_dbkey_length = 61;
-     isc_dyn_rel_store_trig = 62;
-     isc_dyn_rel_modify_trig = 63;
-     isc_dyn_rel_erase_trig = 64;
-     isc_dyn_rel_store_trig_source = 65;
-     isc_dyn_rel_modify_trig_source = 66;
-     isc_dyn_rel_erase_trig_source = 67;
-     isc_dyn_rel_ext_file = 68;
-     isc_dyn_rel_sql_protection = 69;
-     isc_dyn_rel_constraint = 162;
-     isc_dyn_delete_rel_constraint = 163;
-  {                                   }
-  { Global field specific attributes  }
-  {                                   }
-     isc_dyn_fld_type = 70;
-     isc_dyn_fld_length = 71;
-     isc_dyn_fld_scale = 72;
-     isc_dyn_fld_sub_type = 73;
-     isc_dyn_fld_segment_length = 74;
-     isc_dyn_fld_query_header = 75;
-     isc_dyn_fld_edit_string = 76;
-     isc_dyn_fld_validation_blr = 77;
-     isc_dyn_fld_validation_source = 78;
-     isc_dyn_fld_computed_blr = 79;
-     isc_dyn_fld_computed_source = 80;
-     isc_dyn_fld_missing_value = 81;
-     isc_dyn_fld_default_value = 82;
-     isc_dyn_fld_query_name = 83;
-     isc_dyn_fld_dimensions = 84;
-     isc_dyn_fld_not_null = 85;
-     isc_dyn_fld_precision = 86;
-     isc_dyn_fld_char_length = 172;
-     isc_dyn_fld_collation = 173;
-     isc_dyn_fld_default_source = 193;
-     isc_dyn_del_default = 197;
-     isc_dyn_del_validation = 198;
-     isc_dyn_single_validation = 199;
-     isc_dyn_fld_character_set = 203;
-  {                                  }
-  { Local field specific attributes  }
-  {                                  }
-     isc_dyn_fld_source = 90;
-     isc_dyn_fld_base_fld = 91;
-     isc_dyn_fld_position = 92;
-     isc_dyn_fld_update_flag = 93;
-  {                            }
-  { Index specific attributes  }
-  {                            }
-     isc_dyn_idx_unique = 100;
-     isc_dyn_idx_inactive = 101;
-     isc_dyn_idx_type = 103;
-     isc_dyn_idx_foreign_key = 104;
-     isc_dyn_idx_ref_column = 105;
-     isc_dyn_idx_statistic = 204;
-  {                              }
-  { Trigger specific attributes  }
-  {                              }
-     isc_dyn_trg_type = 110;
-     isc_dyn_trg_blr = 111;
-     isc_dyn_trg_source = 112;
-     isc_dyn_trg_name = 114;
-     isc_dyn_trg_sequence = 115;
-     isc_dyn_trg_inactive = 116;
-     isc_dyn_trg_msg_number = 117;
-     isc_dyn_trg_msg = 118;
-  {                                     }
-  { Security Class specific attributes  }
-  {                                     }
-     isc_dyn_scl_acl = 121;
-     isc_dyn_grant_user = 130;
-     isc_dyn_grant_proc = 186;
-     isc_dyn_grant_trig = 187;
-     isc_dyn_grant_view = 188;
-     isc_dyn_grant_options = 132;
-     isc_dyn_grant_user_group = 205;
-  {                                 }
-  { Dimension specific information  }
-  {                                 }
-     isc_dyn_dim_lower = 141;
-     isc_dyn_dim_upper = 142;
-  {                           }
-  { File specific attributes  }
-  {                           }
-     isc_dyn_file_name = 125;
-     isc_dyn_file_start = 126;
-     isc_dyn_file_length = 127;
-     isc_dyn_shadow_number = 128;
-     isc_dyn_shadow_man_auto = 129;
-     isc_dyn_shadow_conditional = 130;
-  {                               }
-  { Log file specific attributes  }
-  {                               }
-     isc_dyn_log_file_sequence = 177;
-     isc_dyn_log_file_partitions = 178;
-     isc_dyn_log_file_serial = 179;
-     isc_dyn_log_file_overflow = 200;
-     isc_dyn_log_file_raw = 201;
-  {                          }
-  { Log specific attributes  }
-  {                          }
-     isc_dyn_log_group_commit_wait = 189;
-     isc_dyn_log_buffer_size = 190;
-     isc_dyn_log_check_point_length = 191;
-     isc_dyn_log_num_of_buffers = 192;
-  {                               }
-  { Function specific attributes  }
-  {                               }
-     isc_dyn_function_name = 145;
-     isc_dyn_function_type = 146;
-     isc_dyn_func_module_name = 147;
-     isc_dyn_func_entry_point = 148;
-     isc_dyn_func_return_argument = 149;
-     isc_dyn_func_arg_position = 150;
-     isc_dyn_func_mechanism = 151;
-     isc_dyn_filter_in_subtype = 152;
-     isc_dyn_filter_out_subtype = 153;
-     isc_dyn_description2 = 154;
-     isc_dyn_fld_computed_source2 = 155;
-     isc_dyn_fld_edit_string2 = 156;
-     isc_dyn_fld_query_header2 = 157;
-     isc_dyn_fld_validation_source2 = 158;
-     isc_dyn_trg_msg2 = 159;
-     isc_dyn_trg_source2 = 160;
-     isc_dyn_view_source2 = 161;
-     isc_dyn_xcp_msg2 = 184;
-  {                                }
-  { Generator specific attributes  }
-  {                                }
-     isc_dyn_generator_name = 95;
-     isc_dyn_generator_id = 96;
-  {                                }
-  { Procedure specific attributes  }
-  {                                }
-     isc_dyn_prc_inputs = 167;
-     isc_dyn_prc_outputs = 168;
-     isc_dyn_prc_source = 169;
-     isc_dyn_prc_blr = 170;
-     isc_dyn_prc_source2 = 171;
-  {                                }
-  { Parameter specific attributes  }
-  {                                }
-     isc_dyn_prm_number = 138;
-     isc_dyn_prm_type = 139;
-  {                               }
-  { Relation specific attributes  }
-  {                               }
-     isc_dyn_xcp_msg = 185;
-  {                                             }
-  { Cascading referential integrity values      }
-  {                                             }
-     isc_dyn_foreign_key_update = 205;
-     isc_dyn_foreign_key_delete = 206;
-     isc_dyn_foreign_key_cascade = 207;
-     isc_dyn_foreign_key_default = 208;
-     isc_dyn_foreign_key_null = 209;
-     isc_dyn_foreign_key_none = 210;
-  {                      }
-  { SQL role values      }
-  {                      }
-     isc_dyn_def_sql_role = 211;
-     isc_dyn_sql_role_name = 212;
-     isc_dyn_grant_admin_options = 213;
-     isc_dyn_del_sql_role = 214;
-  {                           }
-  { Last $dyn value assigned  }
-  {                           }
-     isc_dyn_last_dyn_value = 216;
-  {                                         }
-  { Array slice description language (SDL)  }
-  {                                         }
-     isc_sdl_version1 = 1;
-     isc_sdl_eoc = 255;
-     isc_sdl_relation = 2;
-     isc_sdl_rid = 3;
-     isc_sdl_field = 4;
-     isc_sdl_fid = 5;
-     isc_sdl_struct = 6;
-     isc_sdl_variable = 7;
-     isc_sdl_scalar = 8;
-     isc_sdl_tiny_integer = 9;
-     isc_sdl_short_integer = 10;
-     isc_sdl_long_integer = 11;
-     isc_sdl_literal = 12;
-     isc_sdl_add = 13;
-     isc_sdl_subtract = 14;
-     isc_sdl_multiply = 15;
-     isc_sdl_divide = 16;
-     isc_sdl_negate = 17;
-     isc_sdl_eql = 18;
-     isc_sdl_neq = 19;
-     isc_sdl_gtr = 20;
-     isc_sdl_geq = 21;
-     isc_sdl_lss = 22;
-     isc_sdl_leq = 23;
-     isc_sdl_and = 24;
-     isc_sdl_or = 25;
-     isc_sdl_not = 26;
-     isc_sdl_while = 27;
-     isc_sdl_assignment = 28;
-     isc_sdl_label = 29;
-     isc_sdl_leave = 30;
-     isc_sdl_begin = 31;
-     isc_sdl_end = 32;
-     isc_sdl_do3 = 33;
-     isc_sdl_do2 = 34;
-     isc_sdl_do1 = 35;
-     isc_sdl_element = 36;
-  {                                           }
-  { International text interpretation values  }
-  {                                           }
-     isc_interp_eng_ascii = 0;
-     isc_interp_jpn_sjis = 5;
-     isc_interp_jpn_euc = 6;
-  {                  }
-  { SQL definitions  }
-  {                  }
-     SQL_TEXT = 452;
-     SQL_VARYING = 448;
-     SQL_SHORT = 500;
-     SQL_LONG = 496;
-     SQL_FLOAT = 482;
-     SQL_DOUBLE = 480;
-     SQL_D_FLOAT = 530;
-     SQL_TIMESTAMP = 510;
-     SQL_BLOB = 520;
-     SQL_ARRAY = 540;
-     SQL_QUAD = 550;
-     SQL_TYPE_TIME = 560;
-     SQL_TYPE_DATE = 570;
-     SQL_INT64 = 580;
-  { Historical alias for pre V6 applications  }
-     SQL_DATE = SQL_TIMESTAMP;
-  {                }
-  { Blob Subtypes  }
-  {                }
-  { types less than zero are reserved for customer use  }
-     isc_blob_untyped = 0;
-  { internal subtypes  }
-     isc_blob_text = 1;
-     isc_blob_blr = 2;
-     isc_blob_acl = 3;
-     isc_blob_ranges = 4;
-     isc_blob_summary = 5;
-     isc_blob_format = 6;
-     isc_blob_tra = 7;
-     isc_blob_extfile = 8;
-  { the range 20-30 is reserved for dBASE and Paradox types  }
-     isc_blob_formatted_memo = 20;
-     isc_blob_paradox_ole = 21;
-     isc_blob_graphic = 22;
-     isc_blob_dbase_ole = 23;
-     isc_blob_typed_binary = 24;
-