فهرست منبع

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

joost 20 سال پیش
والد
کامیت
dac00a9080
4فایلهای تغییر یافته به همراه2664 افزوده شده و 2671 حذف شده
  1. 2653 0
      packages/base/ibase/ibase60.inc
  2. 6 628
      packages/base/ibase/ibase60.pp
  3. 5 445
      packages/base/ibase/ibase60dyn.pp
  4. 0 1598
      packages/base/ibase/ibase60types.inc

+ 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;
 
-{$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.
 {
   $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
 
   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
   In this stage only the calls needed for IBConnection are implemented
   Other calls could be simply implemented, using copy-paste from ibase60
@@ -9,452 +12,9 @@
 
 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.
 

+ 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;
-