1{ 2} 3 4{$MODE objfpc} 5{$MACRO on} 6 7 8interface 9 10{$IFDEF LinkDynamically} 11uses Dynlibs, sysutils,ctypes; 12 13Var 14 UseEmbeddedFirebird : Boolean = False; 15 16{$ELSE} 17uses Dynlibs,ctypes; 18{$ENDIF} 19 20{$IFDEF Unix} 21 {$DEFINE extdecl:=cdecl} 22 const 23 gdslib = 'libgds.'+sharedsuffix; // Needs completion ? 24 libfc = 'libfbclient.'+sharedsuffix; 25 libem = 'libfbembed.'+sharedsuffix; 26 v2 = {$ifndef darwin}'.2'{$else}''{$endif}; 27 v21 = {$ifndef darwin}'.2.1'{$else}''{$endif}; 28 v25 = {$ifndef darwin}'.2.5'{$else}''{$endif}; 29 v251 = {$ifndef darwin}'.2.5.1'{$else}''{$endif}; 30 fbclib2 = libfc+v2; 31 fbembedlib2 = libem+v2; 32 fbclib21 = libfc+v21; 33 fbembedlib21 = libem+v21; 34 fbclib25 = libfc+v25; 35 fbembedlib25 = libem+v25; 36 fbclib251 = libfc+v251; 37 fbembedlib251 = libem+v25; 38 // Set default here 39 fbclib = fbclib251; 40 fbembedlib = fbembedlib251; 41{$ENDIF} 42{$IFDEF Windows} 43 {$DEFINE extdecl:=stdcall} 44 const 45 gdslib = 'gds32.dll'; 46 fbclib = 'fbclient.dll'; 47 fbembedlib = 'fbembed.dll'; 48 libfc = fbclib; 49 libem = fbembedlib; 50{$ENDIF} 51 52type 53 { Unsigned types } 54 55 UChar = Byte; 56 UShort = Word; 57 UInt = DWord; 58 ULong = DWord; 59 60 { Signed types } 61 62 Int = LongInt; 63 Long = LongInt; 64 Short = SmallInt; 65 Float = Single; 66 67 { Pointers to basic types } 68 69 PInt = ^Int; 70 PShort = ^Short; 71 PUShort = ^UShort; 72 PLong = ^Long; 73 PULong = ^ULong; 74 PFloat = ^Float; 75 PUChar = ^UChar; 76 PVoid = ^Pointer; 77 78{$PACKRECORDS C} 79 80 const 81 ISC_TRUE = 1; 82 ISC_FALSE = 0; 83 const 84 ISC__TRUE = ISC_TRUE; 85 ISC__FALSE = ISC_FALSE; 86 87Type 88 ISC_USHORT = word; 89 ISC_STATUS = ptrint; { CLong according the sources but they ifdef 90 for win64, the only significant platform 91 where clong<>ptrint} 92 ISC_INT64 = int64; 93 ISC_UINT64 = qword; 94 ISC_LONG = Longint; 95 ISC_ULONG = dword; 96 97 PISC_USHORT = ^ISC_USHORT; 98 PISC_STATUS = ^ISC_STATUS; 99 PPISC_STATUS = ^PISC_STATUS; 100 PISC_INT64 = ^ISC_INT64; 101 PISC_UINT64 = ^ISC_UINT64; 102 PISC_LONG = ^ISC_LONG; 103 104 {$IFDEF CPU64} 105 FB_API_HANDLE = cuint; 106 {$ELSE} 107 FB_API_HANDLE = pointer; 108 {$ENDIF} 109 110 111 const 112 {$IFDEF CPU64} 113 FB_API_NULLHANDLE = 0; 114 {$ELSE} 115 FB_API_NULLHANDLE = nil; 116 {$ENDIF} 117 DSQL_close = 1; 118 DSQL_drop = 2; 119 120 {!!MVC 121 Removed all ISC_FAR, ISC_EXPORT_VARARG and ISC_EXPORT 122 macros. 123 They confuse h2pas... 124 !!MVC } 125 { } 126 { Time & Date Support } 127 { } 128{$ifndef _ISC_TIMESTAMP_} 129 130 type 131 132 ISC_DATE = longint; 133 ISC_TIME = dword; 134 ISC_TIMESTAMP = record 135 timestamp_date : ISC_DATE; 136 timestamp_time : ISC_TIME; 137 end; 138 TISC_DATE = ISC_DATE; 139 TISC_TIME = ISC_TIME; 140 TISC_TIMESTAMP = ISC_TIMESTAMP; 141 PISC_DATE = ^ISC_DATE; 142 PISC_TIME = ^ISC_TIME; 143 PISC_TIMESTAMP = ^ISC_TIMESTAMP; 144 const 145 _ISC_TIMESTAMP_ = 1; 146{$endif} 147 148 const 149 ISC_TIME_SECONDS_PRECISION = 10000; 150 ISC_TIME_SECONDS_PRECISION_SCALE = -4; 151 { } 152 { Blob id structure } 153 { } 154 155Type 156 157 GDS_QUAD = record 158 gds_quad_high : ISC_LONG; 159 gds_quad_low : ISC_ULONG; 160 end; 161 TGDS_QUAD = GDS_QUAD; 162 PGDS_QUAD = ^GDS_QUAD; 163 164Type 165 ISC_QUAD = GDS_QUAD; 166 TISC_QUAD = ISC_QUAD; 167 PISC_QUAD = ^ISC_QUAD; 168 169{ !!field redefinitions !! 170 isc_quad_high = gds_quad_high; 171 isc_quad_low = gds_quad_low; 172} 173 174type 175 176 ISC_ARRAY_BOUND = record 177 array_bound_lower : smallint; 178 array_bound_upper : smallint; 179 end; 180 TISC_ARRAY_BOUND = ISC_ARRAY_BOUND; 181 PISC_ARRAY_BOUND = ^ISC_ARRAY_BOUND; 182 183 ISC_ARRAY_DESC = record 184 array_desc_dtype : byte; 185 array_desc_scale : char; 186 array_desc_length : word; 187 array_desc_field_name : array[0..31] of char; 188 array_desc_relation_name : array[0..31] of char; 189 array_desc_dimensions : smallint; 190 array_desc_flags : smallint; 191 array_desc_bounds : array[0..15] of ISC_ARRAY_BOUND; 192 end; 193 TISC_ARRAY_DESC = ISC_ARRAY_DESC; 194 PISC_ARRAY_DESC = ^ISC_ARRAY_DESC; 195 196 ISC_BLOB_DESC = record 197 blob_desc_subtype : smallint; 198 blob_desc_charset : smallint; 199 blob_desc_segment_size : smallint; 200 blob_desc_field_name : array[0..31] of byte; 201 blob_desc_relation_name : array[0..31] of byte; 202 end; 203 TISC_BLOB_DESC = ISC_BLOB_DESC; 204 PISC_BLOB_DESC = ^ISC_BLOB_DESC ; 205 { } 206 { Blob control structure } 207 { } 208 {!!MVC 209 !!MVC } 210 { Source filter } 211 {!!MVC 212 !!MVC } 213 { Argument to pass to source } 214 { filter } 215 { Target type } 216 { Source type } 217 { Length of buffer } 218 { Length of current segment } 219 { Length of blob parameter } 220 { block } 221 { Address of blob parameter } 222 { block } 223 { Address of segment buffer } 224 { Length of longest segment } 225 { Total number of segments } 226 { Total length of blob } 227 { Address of status vector } 228 { Application specific data } 229 TCTLSourceFunction = function : isc_long; 230 231 PISC_BLOB_CTL = ^ISC_BLOB_CTL ; 232 ISC_BLOB_CTL = record 233 ctl_source : TCTLSourceFunction; // was ISC_STATUS ( *ctl_source)(); 234 ctl_source_handle : pisc_blob_ctl ; // was struct isc_blob_ctl * ctl_source_handle; 235 ctl_to_sub_type : smallint; 236 ctl_from_sub_type : smallint; 237 ctl_buffer_length : word; 238 ctl_segment_length : word; 239 ctl_bpb_length : word; 240 ctl_bpb : Pchar; 241 ctl_buffer : Pbyte; 242 ctl_max_segment : ISC_LONG; 243 ctl_number_segments : ISC_LONG; 244 ctl_total_length : ISC_LONG; 245 ctl_status : PISC_STATUS; 246 ctl_data : array[0..7] of longint; 247 end; 248 TISC_BLOB_CTL = ISC_BLOB_CTL; 249 250 { } 251 { Blob stream definitions } 252 { } 253 { Blob handle } 254 { Address of buffer } 255 { Next character } 256 { Length of buffer } 257 { Characters in buffer } 258 { (mode) ? OUTPUT : INPUT } 259 260 BSTREAM = record 261 bstr_blob : pointer; 262 bstr_buffer : Pchar; 263 bstr_ptr : Pchar; 264 bstr_length : smallint; 265 bstr_cnt : smallint; 266 bstr_mode : char; 267 end; 268 TBSTREAM = BSTREAM; 269 PBstream = ^BSTREAM; 270 {!!MVC 271 272 #define getb(p) (--(p)->bstr_cnt >= 0 ? (p)->bstr_ptr++ & 0377: BLOB_get (p)) 273 #define putb(x,p) (((x) == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x)))) 274 #define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put ((x),p) : ((int) ( (p)->bstr_ptr++ = (unsigned) (x)))) 275 276 !!MVC } 277 { } 278 { Dynamic SQL definitions } 279 { } 280 { } 281 { Declare the extended SQLDA } 282 { } 283 { datatype of field } 284 { scale factor } 285 { datatype subtype - BLOBs & Text } 286 { types only } 287 { length of data area } 288 { address of data } 289 { address of indicator variable } 290 { length of sqlname field } 291 { name of field, name length + space } 292 { for NULL } 293 { length of relation name } 294 { field's relation name + space for } 295 { NULL } 296 { length of owner name } 297 { relation's owner name + space for } 298 { NULL } 299 { length of alias name } 300 { relation's alias name + space for } 301 { NULL } 302 303 XSQLVAR = record 304 sqltype : smallint; 305 sqlscale : smallint; 306 sqlsubtype : smallint; 307 sqllen : smallint; 308 sqldata : Pchar; 309 sqlind : Psmallint; 310 sqlname_length : smallint; 311 sqlname : array[0..31] of char; 312 relname_length : smallint; 313 relname : array[0..31] of char; 314 ownname_length : smallint; 315 ownname : array[0..31] of char; 316 aliasname_length : smallint; 317 aliasname : array[0..31] of char; 318 end; 319 TXSQLVAR = XSQLVAR; 320 PXSQLVAR =^XSQLVAR; 321 { version of this XSQLDA } 322 { XSQLDA name field } 323 { length in bytes of SQLDA } 324 { number of fields allocated } 325 { actual number of fields } 326 { first field address } 327 328 XSQLDA = record 329 version : smallint; 330 sqldaid : array[0..7] of char; 331 sqldabc : ISC_LONG; 332 sqln : smallint; 333 sqld : smallint; 334 sqlvar : array[0..0] of XSQLVAR; 335 end; 336 TXSQLDA = XSQLDA; 337 PXSQLDA =^XSQLDA; 338 339 function XSQLDA_LENGTH(n: Integer): Integer; 340 341 342 const 343 SQLDA_VERSION1 = 1; 344 { meaning is same as DIALECT_xsqlda } 345 SQL_DIALECT_V5 = 1; 346 { flagging anything that is delimited 347 by double quotes as an error and 348 flagging keyword DATE as an error } 349 SQL_DIALECT_V6_TRANSITION = 2; 350 { supports SQL delimited identifier, 351 SQLDATE/DATE, TIME, TIMESTAMP, 352 CURRENT_DATE, CURRENT_TIME, 353 CURRENT_TIMESTAMP, and 64-bit exact 354 numeric type } 355 SQL_DIALECT_V6 = 3; 356 { latest IB DIALECT } 357 SQL_DIALECT_CURRENT = SQL_DIALECT_V6; 358 { } 359 { InterBase Handle Definitions } 360 { } 361 362 type 363 364 isc_att_handle = FB_API_HANDLE; 365 isc_blob_handle = FB_API_HANDLE; 366 isc_db_handle = FB_API_HANDLE; 367 isc_form_handle = FB_API_HANDLE; // can't find in 2.5.1 368 isc_req_handle = FB_API_HANDLE; 369 isc_stmt_handle = FB_API_HANDLE; 370 isc_svc_handle = FB_API_HANDLE; 371 isc_tr_handle = FB_API_HANDLE; 372 isc_win_handle = pointer; // can't find in 2.5.1 373 isc_callback = procedure ;extdecl; 374 isc_resv_handle = ISC_LONG; 375 tisc_att_handle = isc_att_handle; 376 tisc_blob_handle = isc_blob_handle; 377 tisc_db_handle = isc_db_handle; 378 tisc_form_handle = isc_form_handle; 379 tisc_req_handle = isc_req_handle; 380 tisc_stmt_handle = isc_stmt_handle; 381 tisc_svc_handle = isc_svc_handle; 382 tisc_tr_handle = isc_tr_handle; 383 tisc_win_handle = isc_win_handle; 384 tisc_callback = isc_callback; 385 tisc_resv_handle = isc_resv_handle; 386 pisc_att_handle =^isc_att_handle ; 387 pisc_blob_handle =^isc_blob_handle ; 388 pisc_db_handle =^isc_db_handle ; 389 pisc_form_handle =^isc_form_handle ; 390 pisc_req_handle =^isc_req_handle ; 391 pisc_stmt_handle =^isc_stmt_handle ; 392 pisc_svc_handle =^isc_svc_handle ; 393 pisc_tr_handle =^isc_tr_handle ; 394 pisc_win_handle =^isc_win_handle ; 395 pisc_callback = ^isc_callback; 396 pisc_resv_handle =^isc_resv_handle ; 397 398 399 { } 400 { Security structures } 401 { } 402 403 const 404 sec_uid_spec = $01; 405 sec_gid_spec = $02; 406 sec_server_spec = $04; 407 sec_password_spec = $08; 408 sec_group_name_spec = $10; 409 sec_first_name_spec = $20; 410 sec_middle_name_spec = $40; 411 sec_last_name_spec = $80; 412 sec_dba_user_name_spec = $100; 413 sec_dba_password_spec = $200; 414 sec_protocol_tcpip = 1; 415 sec_protocol_netbeui = 2; 416 sec_protocol_spx = 3; 417 sec_protocol_local = 4; 418 { which fields are specified } 419 { the user's id } 420 { the user's group id } 421 { protocol to use for connection } 422 { server to administer } 423 { the user's name } 424 { the user's password } 425 { the group name } 426 { the user's first name } 427 { the user's middle name } 428 { the user's last name } 429 { the dba user name } 430 { the dba password } 431 432 type 433 434 USER_SEC_DATA = record 435 sec_flags : smallint; 436 uid : longint; 437 gid : longint; 438 protocol : longint; 439 server : Pchar; 440 user_name : Pchar; 441 password : Pchar; 442 group_name : Pchar; 443 first_name : Pchar; 444 middle_name : Pchar; 445 last_name : Pchar; 446 dba_user_name : Pchar; 447 dba_password : Pchar; 448 end; 449 TUSER_SEC_DATA = USER_SEC_DATA; 450 PUSER_SEC_DATA = ^USER_SEC_DATA; 451 452 { } 453 { Actions to pass to the blob filter (ctl_source) } 454 { } 455 456 const 457 isc_blob_filter_open = 0; 458 isc_blob_filter_get_segment = 1; 459 isc_blob_filter_close = 2; 460 isc_blob_filter_create = 3; 461 isc_blob_filter_put_segment = 4; 462 isc_blob_filter_alloc = 5; 463 isc_blob_filter_free = 6; 464 isc_blob_filter_seek = 7; 465 { } 466 { Blr definitions } 467 { } 468{$ifndef _JRD_BLR_H_} 469 {!!MVC 470 #define blr_word(n) ((n) % 256), ((n) / 256) 471 !!MVC } 472 473 const 474 blr_text = 14; 475 blr_text2 = 15; 476 blr_short = 7; 477 blr_long = 8; 478 blr_quad = 9; 479 blr_int64 = 16; 480 blr_float = 10; 481 blr_double = 27; 482 blr_d_float = 11; 483 blr_timestamp = 35; 484 blr_varying = 37; 485 blr_varying2 = 38; 486 blr_blob = 261; 487 blr_cstring = 40; 488 blr_cstring2 = 41; 489 blr_blob_id = 45; 490 blr_sql_date = 12; 491 blr_sql_time = 13; 492 { Historical alias for pre V6 applications } 493 blr_date = blr_timestamp; 494 blr_inner = 0; 495 blr_left = 1; 496 blr_right = 2; 497 blr_full = 3; 498 blr_gds_code = 0; 499 blr_sql_code = 1; 500 blr_exception = 2; 501 blr_trigger_code = 3; 502 blr_default_code = 4; 503 blr_version4 = 4; 504 blr_version5 = 5; 505 blr_eoc = 76; 506 blr_end = 255; 507 blr_assignment = 1; 508 blr_begin = 2; 509 blr_dcl_variable = 3; 510 blr_message = 4; 511 blr_erase = 5; 512 blr_fetch = 6; 513 blr_for = 7; 514 blr_if = 8; 515 blr_loop = 9; 516 blr_modify = 10; 517 blr_handler = 11; 518 blr_receive = 12; 519 blr_select = 13; 520 blr_send = 14; 521 blr_store = 15; 522 blr_label = 17; 523 blr_leave = 18; 524 blr_store2 = 19; 525 blr_post = 20; 526 blr_literal = 21; 527 blr_dbkey = 22; 528 blr_field = 23; 529 blr_fid = 24; 530 blr_parameter = 25; 531 blr_variable = 26; 532 blr_average = 27; 533 blr_count = 28; 534 blr_maximum = 29; 535 blr_minimum = 30; 536 blr_total = 31; 537 blr_add = 34; 538 blr_subtract = 35; 539 blr_multiply = 36; 540 blr_divide = 37; 541 blr_negate = 38; 542 blr_concatenate = 39; 543 blr_substring = 40; 544 blr_parameter2 = 41; 545 blr_from = 42; 546 blr_via = 43; 547 blr_user_name = 44; 548 blr_null = 45; 549 blr_eql = 47; 550 blr_neq = 48; 551 blr_gtr = 49; 552 blr_geq = 50; 553 blr_lss = 51; 554 blr_leq = 52; 555 blr_containing = 53; 556 blr_matching = 54; 557 blr_starting = 55; 558 blr_between = 56; 559 blr_or = 57; 560 blr_and = 58; 561 blr_not = 59; 562 blr_any = 60; 563 blr_missing = 61; 564 blr_unique = 62; 565 blr_like = 63; 566 blr_stream = 65; 567 blr_set_index = 66; 568 blr_rse = 67; 569 blr_first = 68; 570 blr_project = 69; 571 blr_sort = 70; 572 blr_boolean = 71; 573 blr_ascending = 72; 574 blr_descending = 73; 575 blr_relation = 74; 576 blr_rid = 75; 577 blr_union = 76; 578 blr_map = 77; 579 blr_group_by = 78; 580 blr_aggregate = 79; 581 blr_join_type = 80; 582 blr_agg_count = 83; 583 blr_agg_max = 84; 584 blr_agg_min = 85; 585 blr_agg_total = 86; 586 blr_agg_average = 87; 587 blr_parameter3 = 88; 588 blr_run_count = 118; 589 blr_run_max = 89; 590 blr_run_min = 90; 591 blr_run_total = 91; 592 blr_run_average = 92; 593 blr_agg_count2 = 93; 594 blr_agg_count_distinct = 94; 595 blr_agg_total_distinct = 95; 596 blr_agg_average_distinct = 96; 597 blr_function = 100; 598 blr_gen_id = 101; 599 blr_prot_mask = 102; 600 blr_upcase = 103; 601 blr_lock_state = 104; 602 blr_value_if = 105; 603 blr_matching2 = 106; 604 blr_index = 107; 605 blr_ansi_like = 108; 606 blr_bookmark = 109; 607 blr_crack = 110; 608 blr_force_crack = 111; 609 blr_seek = 112; 610 blr_find = 113; 611 blr_continue = 0; 612 blr_forward = 1; 613 blr_backward = 2; 614 blr_bof_forward = 3; 615 blr_eof_backward = 4; 616 blr_lock_relation = 114; 617 blr_lock_record = 115; 618 blr_set_bookmark = 116; 619 blr_get_bookmark = 117; 620 blr_rs_stream = 119; 621 blr_exec_proc = 120; 622 blr_begin_range = 121; 623 blr_end_range = 122; 624 blr_delete_range = 123; 625 blr_procedure = 124; 626 blr_pid = 125; 627 blr_exec_pid = 126; 628 blr_singular = 127; 629 blr_abort = 128; 630 blr_block = 129; 631 blr_error_handler = 130; 632 blr_cast = 131; 633 blr_release_lock = 132; 634 blr_release_locks = 133; 635 blr_start_savepoint = 134; 636 blr_end_savepoint = 135; 637 blr_find_dbkey = 136; 638 blr_range_relation = 137; 639 blr_delete_ranges = 138; 640 blr_plan = 139; 641 blr_merge = 140; 642 blr_join = 141; 643 blr_sequential = 142; 644 blr_navigational = 143; 645 blr_indices = 144; 646 blr_retrieve = 145; 647 blr_relation2 = 146; 648 blr_rid2 = 147; 649 blr_reset_stream = 148; 650 blr_release_bookmark = 149; 651 blr_set_generator = 150; 652 blr_ansi_any = 151; 653 blr_exists = 152; 654 blr_cardinality = 153; 655 { get tid of record } 656 blr_record_version = 154; 657 { fake server stall } 658 blr_stall = 155; 659 blr_seek_no_warn = 156; 660 blr_find_dbkey_version = 157; 661 blr_ansi_all = 158; 662 blr_extract = 159; 663 { sub parameters for blr_extract } 664 blr_extract_year = 0; 665 blr_extract_month = 1; 666 blr_extract_day = 2; 667 blr_extract_hour = 3; 668 blr_extract_minute = 4; 669 blr_extract_second = 5; 670 blr_extract_weekday = 6; 671 blr_extract_yearday = 7; 672 blr_current_date = 160; 673 blr_current_timestamp = 161; 674 blr_current_time = 162; 675 { These verbs were added in 6.0, primarily to support 64-bit integers } 676 blr_add2 = 163; 677 blr_subtract2 = 164; 678 blr_multiply2 = 165; 679 blr_divide2 = 166; 680 blr_agg_total2 = 167; 681 blr_agg_total_distinct2 = 168; 682 blr_agg_average2 = 169; 683 blr_agg_average_distinct2 = 170; 684 blr_average2 = 171; 685 blr_gen_id2 = 172; 686 blr_set_generator2 = 173; 687{$endif} 688 { _JRD_BLR_H_ } 689 { } 690 { Database parameter block stuff } 691 { } 692 693 const 694 isc_dpb_version1 = 1; 695 isc_dpb_cdd_pathname = 1; 696 isc_dpb_allocation = 2; 697 isc_dpb_journal = 3; 698 isc_dpb_page_size = 4; 699 isc_dpb_num_buffers = 5; 700 isc_dpb_buffer_length = 6; 701 isc_dpb_debug = 7; 702 isc_dpb_garbage_collect = 8; 703 isc_dpb_verify = 9; 704 isc_dpb_sweep = 10; 705 isc_dpb_enable_journal = 11; 706 isc_dpb_disable_journal = 12; 707 isc_dpb_dbkey_scope = 13; 708 isc_dpb_number_of_users = 14; 709 isc_dpb_trace = 15; 710 isc_dpb_no_garbage_collect = 16; 711 isc_dpb_damaged = 17; 712 isc_dpb_license = 18; 713 isc_dpb_sys_user_name = 19; 714 isc_dpb_encrypt_key = 20; 715 isc_dpb_activate_shadow = 21; 716 isc_dpb_sweep_interval = 22; 717 isc_dpb_delete_shadow = 23; 718 isc_dpb_force_write = 24; 719 isc_dpb_begin_log = 25; 720 isc_dpb_quit_log = 26; 721 isc_dpb_no_reserve = 27; 722 isc_dpb_user_name = 28; 723 isc_dpb_password = 29; 724 isc_dpb_password_enc = 30; 725 isc_dpb_sys_user_name_enc = 31; 726 isc_dpb_interp = 32; 727 isc_dpb_online_dump = 33; 728 isc_dpb_old_file_size = 34; 729 isc_dpb_old_num_files = 35; 730 isc_dpb_old_file = 36; 731 isc_dpb_old_start_page = 37; 732 isc_dpb_old_start_seqno = 38; 733 isc_dpb_old_start_file = 39; 734 isc_dpb_drop_walfile = 40; 735 isc_dpb_old_dump_id = 41; 736 isc_dpb_wal_backup_dir = 42; 737 isc_dpb_wal_chkptlen = 43; 738 isc_dpb_wal_numbufs = 44; 739 isc_dpb_wal_bufsize = 45; 740 isc_dpb_wal_grp_cmt_wait = 46; 741 isc_dpb_lc_messages = 47; 742 isc_dpb_lc_ctype = 48; 743 isc_dpb_cache_manager = 49; 744 isc_dpb_shutdown = 50; 745 isc_dpb_online = 51; 746 isc_dpb_shutdown_delay = 52; 747 isc_dpb_reserved = 53; 748 isc_dpb_overwrite = 54; 749 isc_dpb_sec_attach = 55; 750 isc_dpb_disable_wal = 56; 751 isc_dpb_connect_timeout = 57; 752 isc_dpb_dummy_packet_interval = 58; 753 isc_dpb_gbak_attach = 59; 754 isc_dpb_sql_role_name = 60; 755 isc_dpb_set_page_buffers = 61; 756 isc_dpb_working_directory = 62; 757 isc_dpb_SQL_dialect = 63; 758 isc_dpb_set_db_readonly = 64; 759 isc_dpb_set_db_SQL_dialect = 65; 760 isc_dpb_gfix_attach = 66; 761 isc_dpb_gstat_attach = 67; 762 { } 763 { isc_dpb_verify specific flags } 764 { } 765 isc_dpb_pages = 1; 766 isc_dpb_records = 2; 767 isc_dpb_indices = 4; 768 isc_dpb_transactions = 8; 769 isc_dpb_no_update = 16; 770 isc_dpb_repair = 32; 771 isc_dpb_ignore = 64; 772 { } 773 { isc_dpb_shutdown specific flags } 774 { } 775 isc_dpb_shut_cache = 1; 776 isc_dpb_shut_attachment = 2; 777 isc_dpb_shut_transaction = 4; 778 isc_dpb_shut_force = 8; 779 { } 780 { Bit assignments in RDB$SYSTEM_FLAG } 781 { } 782 RDB_system = 1; 783 RDB_id_assigned = 2; 784 { } 785 { Transaction parameter block stuff } 786 { } 787 isc_tpb_version1 = 1; 788 isc_tpb_version3 = 3; 789 isc_tpb_consistency = 1; 790 isc_tpb_concurrency = 2; 791 isc_tpb_shared = 3; 792 isc_tpb_protected = 4; 793 isc_tpb_exclusive = 5; 794 isc_tpb_wait = 6; 795 isc_tpb_nowait = 7; 796 isc_tpb_read = 8; 797 isc_tpb_write = 9; 798 isc_tpb_lock_read = 10; 799 isc_tpb_lock_write = 11; 800 isc_tpb_verb_time = 12; 801 isc_tpb_commit_time = 13; 802 isc_tpb_ignore_limbo = 14; 803 isc_tpb_read_committed = 15; 804 isc_tpb_autocommit = 16; 805 isc_tpb_rec_version = 17; 806 isc_tpb_no_rec_version = 18; 807 isc_tpb_restart_requests = 19; 808 isc_tpb_no_auto_undo = 20; 809 isc_tpb_lock_timeout = 21; 810 811 { } 812 { Blob Parameter Block } 813 { } 814 isc_bpb_version1 = 1; 815 isc_bpb_source_type = 1; 816 isc_bpb_target_type = 2; 817 isc_bpb_type = 3; 818 isc_bpb_source_interp = 4; 819 isc_bpb_target_interp = 5; 820 isc_bpb_filter_parameter = 6; 821 isc_bpb_type_segmented = 0; 822 isc_bpb_type_stream = 1; 823 { } 824 { Service parameter block stuff } 825 { } 826 isc_spb_version1 = 1; 827 isc_spb_current_version = 2; 828 isc_spb_version = isc_spb_current_version; 829 isc_spb_user_name = isc_dpb_user_name; 830 isc_spb_sys_user_name = isc_dpb_sys_user_name; 831 isc_spb_sys_user_name_enc = isc_dpb_sys_user_name_enc; 832 isc_spb_password = isc_dpb_password; 833 isc_spb_password_enc = isc_dpb_password_enc; 834 isc_spb_command_line = 105; 835 isc_spb_dbname = 106; 836 isc_spb_verbose = 107; 837 isc_spb_options = 108; 838 isc_spb_connect_timeout = isc_dpb_connect_timeout; 839 isc_spb_dummy_packet_interval = isc_dpb_dummy_packet_interval; 840 isc_spb_sql_role_name = isc_dpb_sql_role_name; 841 { } 842 { Information call declarations } 843 { } 844 { } 845 { Common, structural codes } 846 { } 847 isc_info_end = 1; 848 isc_info_truncated = 2; 849 isc_info_error = 3; 850 isc_info_data_not_ready = 4; 851 isc_info_flag_end = 127; 852 { } 853 { Database information items } 854 { } 855 isc_info_db_id = 4; 856 isc_info_reads = 5; 857 isc_info_writes = 6; 858 isc_info_fetches = 7; 859 isc_info_marks = 8; 860 isc_info_implementation = 11; 861 isc_info_version = 12; 862 isc_info_base_level = 13; 863 isc_info_page_size = 14; 864 isc_info_num_buffers = 15; 865 isc_info_limbo = 16; 866 isc_info_current_memory = 17; 867 isc_info_max_memory = 18; 868 isc_info_window_turns = 19; 869 isc_info_license = 20; 870 isc_info_allocation = 21; 871 isc_info_attachment_id = 22; 872 isc_info_read_seq_count = 23; 873 isc_info_read_idx_count = 24; 874 isc_info_insert_count = 25; 875 isc_info_update_count = 26; 876 isc_info_delete_count = 27; 877 isc_info_backout_count = 28; 878 isc_info_purge_count = 29; 879 isc_info_expunge_count = 30; 880 isc_info_sweep_interval = 31; 881 isc_info_ods_version = 32; 882 isc_info_ods_minor_version = 33; 883 isc_info_no_reserve = 34; 884 isc_info_logfile = 35; 885 isc_info_cur_logfile_name = 36; 886 isc_info_cur_log_part_offset = 37; 887 isc_info_num_wal_buffers = 38; 888 isc_info_wal_buffer_size = 39; 889 isc_info_wal_ckpt_length = 40; 890 isc_info_wal_cur_ckpt_interval = 41; 891 isc_info_wal_prv_ckpt_fname = 42; 892 isc_info_wal_prv_ckpt_poffset = 43; 893 isc_info_wal_recv_ckpt_fname = 44; 894 isc_info_wal_recv_ckpt_poffset = 45; 895 isc_info_wal_grpc_wait_usecs = 47; 896 isc_info_wal_num_io = 48; 897 isc_info_wal_avg_io_size = 49; 898 isc_info_wal_num_commits = 50; 899 isc_info_wal_avg_grpc_size = 51; 900 isc_info_forced_writes = 52; 901 isc_info_user_names = 53; 902 isc_info_page_errors = 54; 903 isc_info_record_errors = 55; 904 isc_info_bpage_errors = 56; 905 isc_info_dpage_errors = 57; 906 isc_info_ipage_errors = 58; 907 isc_info_ppage_errors = 59; 908 isc_info_tpage_errors = 60; 909 isc_info_set_page_buffers = 61; 910 isc_info_db_SQL_dialect = 62; 911 isc_info_db_read_only = 63; 912 isc_info_db_size_in_pages = 64; 913 { } 914 { Database information return values } 915 { } 916 isc_info_db_impl_rdb_vms = 1; 917 isc_info_db_impl_rdb_eln = 2; 918 isc_info_db_impl_rdb_eln_dev = 3; 919 isc_info_db_impl_rdb_vms_y = 4; 920 isc_info_db_impl_rdb_eln_y = 5; 921 isc_info_db_impl_jri = 6; 922 isc_info_db_impl_jsv = 7; 923 isc_info_db_impl_isc_a = 25; 924 isc_info_db_impl_isc_u = 26; 925 isc_info_db_impl_isc_v = 27; 926 isc_info_db_impl_isc_s = 28; 927 isc_info_db_impl_isc_apl_68K = 25; 928 isc_info_db_impl_isc_vax_ultr = 26; 929 isc_info_db_impl_isc_vms = 27; 930 isc_info_db_impl_isc_sun_68k = 28; 931 isc_info_db_impl_isc_os2 = 29; 932 isc_info_db_impl_isc_sun4 = 30; 933 isc_info_db_impl_isc_hp_ux = 31; 934 isc_info_db_impl_isc_sun_386i = 32; 935 isc_info_db_impl_isc_vms_orcl = 33; 936 isc_info_db_impl_isc_mac_aux = 34; 937 isc_info_db_impl_isc_rt_aix = 35; 938 isc_info_db_impl_isc_mips_ult = 36; 939 isc_info_db_impl_isc_xenix = 37; 940 isc_info_db_impl_isc_dg = 38; 941 isc_info_db_impl_isc_hp_mpexl = 39; 942 isc_info_db_impl_isc_hp_ux68K = 40; 943 isc_info_db_impl_isc_sgi = 41; 944 isc_info_db_impl_isc_sco_unix = 42; 945 isc_info_db_impl_isc_cray = 43; 946 isc_info_db_impl_isc_imp = 44; 947 isc_info_db_impl_isc_delta = 45; 948 isc_info_db_impl_isc_next = 46; 949 isc_info_db_impl_isc_dos = 47; 950 isc_info_db_impl_isc_winnt = 48; 951 isc_info_db_impl_isc_epson = 49; 952 isc_info_db_class_access = 1; 953 isc_info_db_class_y_valve = 2; 954 isc_info_db_class_rem_int = 3; 955 isc_info_db_class_rem_srvr = 4; 956 isc_info_db_class_pipe_int = 7; 957 isc_info_db_class_pipe_srvr = 8; 958 isc_info_db_class_sam_int = 9; 959 isc_info_db_class_sam_srvr = 10; 960 isc_info_db_class_gateway = 11; 961 isc_info_db_class_cache = 12; 962 { } 963 { Request information items } 964 { } 965 isc_info_number_messages = 4; 966 isc_info_max_message = 5; 967 isc_info_max_send = 6; 968 isc_info_max_receive = 7; 969 isc_info_state = 8; 970 isc_info_message_number = 9; 971 isc_info_message_size = 10; 972 isc_info_request_cost = 11; 973 isc_info_access_path = 12; 974 isc_info_req_select_count = 13; 975 isc_info_req_insert_count = 14; 976 isc_info_req_update_count = 15; 977 isc_info_req_delete_count = 16; 978 { } 979 { Access path items } 980 { } 981 isc_info_rsb_end = 0; 982 isc_info_rsb_begin = 1; 983 isc_info_rsb_type = 2; 984 isc_info_rsb_relation = 3; 985 isc_info_rsb_plan = 4; 986 { } 987 { Rsb types } 988 { } 989 isc_info_rsb_unknown = 1; 990 isc_info_rsb_indexed = 2; 991 isc_info_rsb_navigate = 3; 992 isc_info_rsb_sequential = 4; 993 isc_info_rsb_cross = 5; 994 isc_info_rsb_sort = 6; 995 isc_info_rsb_first = 7; 996 isc_info_rsb_boolean = 8; 997 isc_info_rsb_union = 9; 998 isc_info_rsb_aggregate = 10; 999 isc_info_rsb_merge = 11; 1000 isc_info_rsb_ext_sequential = 12; 1001 isc_info_rsb_ext_indexed = 13; 1002 isc_info_rsb_ext_dbkey = 14; 1003 isc_info_rsb_left_cross = 15; 1004 isc_info_rsb_select = 16; 1005 isc_info_rsb_sql_join = 17; 1006 isc_info_rsb_simulate = 18; 1007 isc_info_rsb_sim_cross = 19; 1008 isc_info_rsb_once = 20; 1009 isc_info_rsb_procedure = 21; 1010 { } 1011 { Bitmap expressions } 1012 { } 1013 isc_info_rsb_and = 1; 1014 isc_info_rsb_or = 2; 1015 isc_info_rsb_dbkey = 3; 1016 isc_info_rsb_index = 4; 1017 isc_info_req_active = 2; 1018 isc_info_req_inactive = 3; 1019 isc_info_req_send = 4; 1020 isc_info_req_receive = 5; 1021 isc_info_req_select = 6; 1022 isc_info_req_sql_stall = 7; 1023 { } 1024 { Blob information items } 1025 { } 1026 isc_info_blob_num_segments = 4; 1027 isc_info_blob_max_segment = 5; 1028 isc_info_blob_total_length = 6; 1029 isc_info_blob_type = 7; 1030 { } 1031 { Transaction information items } 1032 { } 1033 isc_info_tra_id = 4; 1034 { 1035 Service action items 1036 } 1037 { Starts database backup process on the server } 1038 isc_action_svc_backup = 1; 1039 { Starts database restore process on the server } 1040 isc_action_svc_restore = 2; 1041 { Starts database repair process on the server } 1042 isc_action_svc_repair = 3; 1043 { Adds a new user to the security database } 1044 isc_action_svc_add_user = 4; 1045 { Deletes a user record from the security database } 1046 isc_action_svc_delete_user = 5; 1047 { Modifies a user record in the security database } 1048 isc_action_svc_modify_user = 6; 1049 { Displays a user record from the security database } 1050 isc_action_svc_display_user = 7; 1051 { Sets database properties } 1052 isc_action_svc_properties = 8; 1053 { Adds a license to the license file } 1054 isc_action_svc_add_license = 9; 1055 { Removes a license from the license file } 1056 isc_action_svc_remove_license = 10; 1057 { Retrieves database statistics } 1058 isc_action_svc_db_stats = 11; 1059 { Retrieves the InterBase log file from the server } 1060 isc_action_svc_get_ib_log = 12; 1061 { 1062 Service information items 1063 } 1064 { Retrieves the number of attachments and databases } 1065 isc_info_svc_svr_db_info = 50; 1066 { Retrieves all license keys and IDs from the license file } 1067 isc_info_svc_get_license = 51; 1068 { Retrieves a bitmask representing licensed options on the server } 1069 isc_info_svc_get_license_mask = 52; 1070 { Retrieves the parameters and values for IB_CONFIG } 1071 isc_info_svc_get_config = 53; 1072 { Retrieves the version of the services manager } 1073 isc_info_svc_version = 54; 1074 { Retrieves the version of the InterBase server } 1075 isc_info_svc_server_version = 55; 1076 { Retrieves the implementation of the InterBase server } 1077 isc_info_svc_implementation = 56; 1078 { Retrieves a bitmask representing the server's capabilities } 1079 isc_info_svc_capabilities = 57; 1080 { Retrieves the path to the security database in use by the server } 1081 isc_info_svc_user_dbpath = 58; 1082 { Retrieves the setting of $INTERBASE } 1083 isc_info_svc_get_env = 59; 1084 { Retrieves the setting of $INTERBASE_LCK } 1085 isc_info_svc_get_env_lock = 60; 1086 { Retrieves the setting of $INTERBASE_MSG } 1087 isc_info_svc_get_env_msg = 61; 1088 { Retrieves 1 line of service output per call } 1089 isc_info_svc_line = 62; 1090 { Retrieves as much of the server output as will fit in the supplied buffer } 1091 isc_info_svc_to_eof = 63; 1092 { Sets / signifies a timeout value for reading service information } 1093 isc_info_svc_timeout = 64; 1094 { Retrieves the number of users licensed for accessing the server } 1095 isc_info_svc_get_licensed_users = 65; 1096 { Retrieve the limbo transactions } 1097 isc_info_svc_limbo_trans = 66; 1098 { Checks to see if a service is running on an attachment } 1099 isc_info_svc_running = 67; 1100 { Returns the user information from isc_action_svc_display_users } 1101 isc_info_svc_get_users = 68; 1102 { 1103 Parameters for isc_action_(add|delete|modify)_user 1104 } 1105 isc_spb_sec_userid = 5; 1106 isc_spb_sec_groupid = 6; 1107 isc_spb_sec_username = 7; 1108 isc_spb_sec_password = 8; 1109 isc_spb_sec_groupname = 9; 1110 isc_spb_sec_firstname = 10; 1111 isc_spb_sec_middlename = 11; 1112 isc_spb_sec_lastname = 12; 1113 { 1114 Parameters for isc_action_svc_(add|remove)_license, 1115 isc_info_svc_get_license 1116 } 1117 isc_spb_lic_key = 5; 1118 isc_spb_lic_id = 6; 1119 isc_spb_lic_desc = 7; 1120 { 1121 Parameters for isc_action_svc_backup 1122 } 1123 isc_spb_bkp_file = 5; 1124 isc_spb_bkp_factor = 6; 1125 isc_spb_bkp_length = 7; 1126 isc_spb_bkp_ignore_checksums = $01; 1127 isc_spb_bkp_ignore_limbo = $02; 1128 isc_spb_bkp_metadata_only = $04; 1129 isc_spb_bkp_no_garbage_collect = $08; 1130 isc_spb_bkp_old_descriptions = $10; 1131 isc_spb_bkp_non_transportable = $20; 1132 isc_spb_bkp_convert = $40; 1133 isc_spb_bkp_expand = $80; 1134 { 1135 Parameters for isc_action_svc_properties 1136 } 1137 isc_spb_prp_page_buffers = 5; 1138 isc_spb_prp_sweep_interval = 6; 1139 isc_spb_prp_shutdown_db = 7; 1140 isc_spb_prp_deny_new_attachments = 9; 1141 isc_spb_prp_deny_new_transactions = 10; 1142 isc_spb_prp_reserve_space = 11; 1143 isc_spb_prp_write_mode = 12; 1144 isc_spb_prp_access_mode = 13; 1145 isc_spb_prp_set_sql_dialect = 14; 1146 isc_spb_prp_activate = $0100; 1147 isc_spb_prp_db_online = $0200; 1148 { 1149 Parameters for isc_spb_prp_reserve_space 1150 } 1151 isc_spb_prp_res_use_full = 35; 1152 isc_spb_prp_res = 36; 1153 { 1154 Parameters for isc_spb_prp_write_mode 1155 } 1156 isc_spb_prp_wm_async = 37; 1157 isc_spb_prp_wm_sync = 38; 1158 { 1159 Parameters for isc_spb_prp_access_mode 1160 } 1161 isc_spb_prp_am_readonly = 39; 1162 isc_spb_prp_am_readwrite = 40; 1163 { 1164 Parameters for isc_action_svc_repair 1165 } 1166 isc_spb_rpr_commit_trans = 15; 1167 isc_spb_rpr_rollback_trans = 34; 1168 isc_spb_rpr_recover_two_phase = 17; 1169 isc_spb_tra_id = 18; 1170 isc_spb_single_tra_id = 19; 1171 isc_spb_multi_tra_id = 20; 1172 isc_spb_tra_state = 21; 1173 isc_spb_tra_state_limbo = 22; 1174 isc_spb_tra_state_commit = 23; 1175 isc_spb_tra_state_rollback = 24; 1176 isc_spb_tra_state_unknown = 25; 1177 isc_spb_tra_host_site = 26; 1178 isc_spb_tra_remote_site = 27; 1179 isc_spb_tra_db_path = 28; 1180 isc_spb_tra_advise = 29; 1181 isc_spb_tra_advise_commit = 30; 1182 isc_spb_tra_advise_rollback = 31; 1183 isc_spb_tra_advise_unknown = 33; 1184 isc_spb_rpr_validate_db = $01; 1185 isc_spb_rpr_sweep_db = $02; 1186 isc_spb_rpr_mend_db = $04; 1187 isc_spb_rpr_list_limbo_trans = $08; 1188 isc_spb_rpr_check_db = $10; 1189 isc_spb_rpr_ignore_checksum = $20; 1190 isc_spb_rpr_kill_shadows = $40; 1191 isc_spb_rpr_full = $80; 1192 { 1193 Parameters for isc_action_svc_restore 1194 } 1195 isc_spb_res_buffers = 9; 1196 isc_spb_res_page_size = 10; 1197 isc_spb_res_length = 11; 1198 isc_spb_res_access_mode = 12; 1199 isc_spb_res_fix_fss_data = 13; 1200 isc_spb_res_fix_fss_metadata = 14; 1201 isc_spb_res_deactivate_idx = $0100; 1202 isc_spb_res_no_shadow = $0200; 1203 isc_spb_res_no_validity = $0400; 1204 isc_spb_res_one_at_a_time = $0800; 1205 isc_spb_res_replace = $1000; 1206 isc_spb_res_create = $2000; 1207 isc_spb_res_use_all_space = $4000; 1208 { 1209 Parameters for isc_spb_res_access_mode 1210 } 1211 isc_spb_res_am_readonly = isc_spb_prp_am_readonly; 1212 isc_spb_res_am_readwrite = isc_spb_prp_am_readwrite; 1213 { 1214 Parameters for isc_info_svc_svr_db_info 1215 } 1216 isc_spb_num_att = 5; 1217 isc_spb_num_db = 6; 1218 { 1219 Parameters for isc_info_svc_db_stats 1220 } 1221 isc_spb_sts_data_pages = $01; 1222 isc_spb_sts_db_log = $02; 1223 isc_spb_sts_hdr_pages = $04; 1224 isc_spb_sts_idx_pages = $08; 1225 isc_spb_sts_sys_relations = $10; 1226 isc_spb_sts_record_versions = $20; 1227 isc_spb_sts_table = $40; 1228 isc_spb_sts_nocreation = $80; 1229 { } 1230 { SQL information items } 1231 { } 1232 isc_info_sql_select = 4; 1233 isc_info_sql_bind = 5; 1234 isc_info_sql_num_variables = 6; 1235 isc_info_sql_describe_vars = 7; 1236 isc_info_sql_describe_end = 8; 1237 isc_info_sql_sqlda_seq = 9; 1238 isc_info_sql_message_seq = 10; 1239 isc_info_sql_type = 11; 1240 isc_info_sql_sub_type = 12; 1241 isc_info_sql_scale = 13; 1242 isc_info_sql_length = 14; 1243 isc_info_sql_null_ind = 15; 1244 isc_info_sql_field = 16; 1245 isc_info_sql_relation = 17; 1246 isc_info_sql_owner = 18; 1247 isc_info_sql_alias = 19; 1248 isc_info_sql_sqlda_start = 20; 1249 isc_info_sql_stmt_type = 21; 1250 isc_info_sql_get_plan = 22; 1251 isc_info_sql_records = 23; 1252 isc_info_sql_batch_fetch = 24; 1253 { } 1254 { SQL information return values } 1255 { } 1256 isc_info_sql_stmt_select = 1; 1257 isc_info_sql_stmt_insert = 2; 1258 isc_info_sql_stmt_update = 3; 1259 isc_info_sql_stmt_delete = 4; 1260 isc_info_sql_stmt_ddl = 5; 1261 isc_info_sql_stmt_get_segment = 6; 1262 isc_info_sql_stmt_put_segment = 7; 1263 isc_info_sql_stmt_exec_procedure = 8; 1264 isc_info_sql_stmt_start_trans = 9; 1265 isc_info_sql_stmt_commit = 10; 1266 isc_info_sql_stmt_rollback = 11; 1267 isc_info_sql_stmt_select_for_upd = 12; 1268 isc_info_sql_stmt_set_generator = 13; 1269 { } 1270 { Server configuration key values } 1271 { } 1272 ISCCFG_LOCKMEM_KEY = 0; 1273 ISCCFG_LOCKSEM_KEY = 1; 1274 ISCCFG_LOCKSIG_KEY = 2; 1275 ISCCFG_EVNTMEM_KEY = 3; 1276 ISCCFG_DBCACHE_KEY = 4; 1277 ISCCFG_PRIORITY_KEY = 5; 1278 ISCCFG_IPCMAP_KEY = 6; 1279 ISCCFG_MEMMIN_KEY = 7; 1280 ISCCFG_MEMMAX_KEY = 8; 1281 ISCCFG_LOCKORDER_KEY = 9; 1282 ISCCFG_ANYLOCKMEM_KEY = 10; 1283 ISCCFG_ANYLOCKSEM_KEY = 11; 1284 ISCCFG_ANYLOCKSIG_KEY = 12; 1285 ISCCFG_ANYEVNTMEM_KEY = 13; 1286 ISCCFG_LOCKHASH_KEY = 14; 1287 ISCCFG_DEADLOCK_KEY = 15; 1288 ISCCFG_LOCKSPIN_KEY = 16; 1289 ISCCFG_CONN_TIMEOUT_KEY = 17; 1290 ISCCFG_DUMMY_INTRVL_KEY = 18; 1291 { Internal Use only } 1292 ISCCFG_TRACE_POOLS_KEY = 19; 1293 ISCCFG_REMOTE_BUFFER_KEY = 20; 1294 { } 1295 { Error codes } 1296 { } 1297 isc_facility = 20; 1298 isc_err_base = 335544320; 1299 isc_err_factor = 1; 1300 isc_arg_end = 0; 1301 isc_arg_gds = 1; 1302 isc_arg_string = 2; 1303 isc_arg_cstring = 3; 1304 isc_arg_number = 4; 1305 isc_arg_interpreted = 5; 1306 isc_arg_vms = 6; 1307 isc_arg_unix = 7; 1308 isc_arg_domain = 8; 1309 isc_arg_dos = 9; 1310 isc_arg_mpexl = 10; 1311 isc_arg_mpexl_ipc = 11; 1312 isc_arg_next_mach = 15; 1313 isc_arg_netware = 16; 1314 isc_arg_win32 = 17; 1315 isc_arg_warning = 18; 1316 1317 { } 1318 { Dynamic Data Definition Language operators } 1319 { } 1320 { } 1321 { Version number } 1322 { } 1323 1324 const 1325 isc_dyn_version_1 = 1; 1326 isc_dyn_eoc = 255; 1327 { } 1328 { Operations (may be nested) } 1329 { } 1330 isc_dyn_begin = 2; 1331 isc_dyn_end = 3; 1332 isc_dyn_if = 4; 1333 isc_dyn_def_database = 5; 1334 isc_dyn_def_global_fld = 6; 1335 isc_dyn_def_local_fld = 7; 1336 isc_dyn_def_idx = 8; 1337 isc_dyn_def_rel = 9; 1338 isc_dyn_def_sql_fld = 10; 1339 isc_dyn_def_view = 12; 1340 isc_dyn_def_trigger = 15; 1341 isc_dyn_def_security_class = 120; 1342 isc_dyn_def_dimension = 140; 1343 isc_dyn_def_generator = 24; 1344 isc_dyn_def_function = 25; 1345 isc_dyn_def_filter = 26; 1346 isc_dyn_def_function_arg = 27; 1347 isc_dyn_def_shadow = 34; 1348 isc_dyn_def_trigger_msg = 17; 1349 isc_dyn_def_file = 36; 1350 isc_dyn_mod_database = 39; 1351 isc_dyn_mod_rel = 11; 1352 isc_dyn_mod_global_fld = 13; 1353 isc_dyn_mod_idx = 102; 1354 isc_dyn_mod_local_fld = 14; 1355 isc_dyn_mod_sql_fld = 216; 1356 isc_dyn_mod_view = 16; 1357 isc_dyn_mod_security_class = 122; 1358 isc_dyn_mod_trigger = 113; 1359 isc_dyn_mod_trigger_msg = 28; 1360 isc_dyn_delete_database = 18; 1361 isc_dyn_delete_rel = 19; 1362 isc_dyn_delete_global_fld = 20; 1363 isc_dyn_delete_local_fld = 21; 1364 isc_dyn_delete_idx = 22; 1365 isc_dyn_delete_security_class = 123; 1366 isc_dyn_delete_dimensions = 143; 1367 isc_dyn_delete_trigger = 23; 1368 isc_dyn_delete_trigger_msg = 29; 1369 isc_dyn_delete_filter = 32; 1370 isc_dyn_delete_function = 33; 1371 isc_dyn_delete_shadow = 35; 1372 isc_dyn_grant = 30; 1373 isc_dyn_revoke = 31; 1374 isc_dyn_def_primary_key = 37; 1375 isc_dyn_def_foreign_key = 38; 1376 isc_dyn_def_unique = 40; 1377 isc_dyn_def_procedure = 164; 1378 isc_dyn_delete_procedure = 165; 1379 isc_dyn_def_parameter = 135; 1380 isc_dyn_delete_parameter = 136; 1381 isc_dyn_mod_procedure = 175; 1382 isc_dyn_def_log_file = 176; 1383 isc_dyn_def_cache_file = 180; 1384 isc_dyn_def_exception = 181; 1385 isc_dyn_mod_exception = 182; 1386 isc_dyn_del_exception = 183; 1387 isc_dyn_drop_log = 194; 1388 isc_dyn_drop_cache = 195; 1389 isc_dyn_def_default_log = 202; 1390 { } 1391 { View specific stuff } 1392 { } 1393 isc_dyn_view_blr = 43; 1394 isc_dyn_view_source = 44; 1395 isc_dyn_view_relation = 45; 1396 isc_dyn_view_context = 46; 1397 isc_dyn_view_context_name = 47; 1398 { } 1399 { Generic attributes } 1400 { } 1401 isc_dyn_rel_name = 50; 1402 isc_dyn_fld_name = 51; 1403 isc_dyn_new_fld_name = 215; 1404 isc_dyn_idx_name = 52; 1405 isc_dyn_description = 53; 1406 isc_dyn_security_class = 54; 1407 isc_dyn_system_flag = 55; 1408 isc_dyn_update_flag = 56; 1409 isc_dyn_prc_name = 166; 1410 isc_dyn_prm_name = 137; 1411 isc_dyn_sql_object = 196; 1412 isc_dyn_fld_character_set_name = 174; 1413 { } 1414 { Relation specific attributes } 1415 { } 1416 isc_dyn_rel_dbkey_length = 61; 1417 isc_dyn_rel_store_trig = 62; 1418 isc_dyn_rel_modify_trig = 63; 1419 isc_dyn_rel_erase_trig = 64; 1420 isc_dyn_rel_store_trig_source = 65; 1421 isc_dyn_rel_modify_trig_source = 66; 1422 isc_dyn_rel_erase_trig_source = 67; 1423 isc_dyn_rel_ext_file = 68; 1424 isc_dyn_rel_sql_protection = 69; 1425 isc_dyn_rel_constraint = 162; 1426 isc_dyn_delete_rel_constraint = 163; 1427 { } 1428 { Global field specific attributes } 1429 { } 1430 isc_dyn_fld_type = 70; 1431 isc_dyn_fld_length = 71; 1432 isc_dyn_fld_scale = 72; 1433 isc_dyn_fld_sub_type = 73; 1434 isc_dyn_fld_segment_length = 74; 1435 isc_dyn_fld_query_header = 75; 1436 isc_dyn_fld_edit_string = 76; 1437 isc_dyn_fld_validation_blr = 77; 1438 isc_dyn_fld_validation_source = 78; 1439 isc_dyn_fld_computed_blr = 79; 1440 isc_dyn_fld_computed_source = 80; 1441 isc_dyn_fld_missing_value = 81; 1442 isc_dyn_fld_default_value = 82; 1443 isc_dyn_fld_query_name = 83; 1444 isc_dyn_fld_dimensions = 84; 1445 isc_dyn_fld_not_null = 85; 1446 isc_dyn_fld_precision = 86; 1447 isc_dyn_fld_char_length = 172; 1448 isc_dyn_fld_collation = 173; 1449 isc_dyn_fld_default_source = 193; 1450 isc_dyn_del_default = 197; 1451 isc_dyn_del_validation = 198; 1452 isc_dyn_single_validation = 199; 1453 isc_dyn_fld_character_set = 203; 1454 { } 1455 { Local field specific attributes } 1456 { } 1457 isc_dyn_fld_source = 90; 1458 isc_dyn_fld_base_fld = 91; 1459 isc_dyn_fld_position = 92; 1460 isc_dyn_fld_update_flag = 93; 1461 { } 1462 { Index specific attributes } 1463 { } 1464 isc_dyn_idx_unique = 100; 1465 isc_dyn_idx_inactive = 101; 1466 isc_dyn_idx_type = 103; 1467 isc_dyn_idx_foreign_key = 104; 1468 isc_dyn_idx_ref_column = 105; 1469 isc_dyn_idx_statistic = 204; 1470 { } 1471 { Trigger specific attributes } 1472 { } 1473 isc_dyn_trg_type = 110; 1474 isc_dyn_trg_blr = 111; 1475 isc_dyn_trg_source = 112; 1476 isc_dyn_trg_name = 114; 1477 isc_dyn_trg_sequence = 115; 1478 isc_dyn_trg_inactive = 116; 1479 isc_dyn_trg_msg_number = 117; 1480 isc_dyn_trg_msg = 118; 1481 { } 1482 { Security Class specific attributes } 1483 { } 1484 isc_dyn_scl_acl = 121; 1485 isc_dyn_grant_user = 130; 1486 isc_dyn_grant_proc = 186; 1487 isc_dyn_grant_trig = 187; 1488 isc_dyn_grant_view = 188; 1489 isc_dyn_grant_options = 132; 1490 isc_dyn_grant_user_group = 205; 1491 { } 1492 { Dimension specific information } 1493 { } 1494 isc_dyn_dim_lower = 141; 1495 isc_dyn_dim_upper = 142; 1496 { } 1497 { File specific attributes } 1498 { } 1499 isc_dyn_file_name = 125; 1500 isc_dyn_file_start = 126; 1501 isc_dyn_file_length = 127; 1502 isc_dyn_shadow_number = 128; 1503 isc_dyn_shadow_man_auto = 129; 1504 isc_dyn_shadow_conditional = 130; 1505 { } 1506 { Log file specific attributes } 1507 { } 1508 isc_dyn_log_file_sequence = 177; 1509 isc_dyn_log_file_partitions = 178; 1510 isc_dyn_log_file_serial = 179; 1511 isc_dyn_log_file_overflow = 200; 1512 isc_dyn_log_file_raw = 201; 1513 { } 1514 { Log specific attributes } 1515 { } 1516 isc_dyn_log_group_commit_wait = 189; 1517 isc_dyn_log_buffer_size = 190; 1518 isc_dyn_log_check_point_length = 191; 1519 isc_dyn_log_num_of_buffers = 192; 1520 { } 1521 { Function specific attributes } 1522 { } 1523 isc_dyn_function_name = 145; 1524 isc_dyn_function_type = 146; 1525 isc_dyn_func_module_name = 147; 1526 isc_dyn_func_entry_point = 148; 1527 isc_dyn_func_return_argument = 149; 1528 isc_dyn_func_arg_position = 150; 1529 isc_dyn_func_mechanism = 151; 1530 isc_dyn_filter_in_subtype = 152; 1531 isc_dyn_filter_out_subtype = 153; 1532 isc_dyn_description2 = 154; 1533 isc_dyn_fld_computed_source2 = 155; 1534 isc_dyn_fld_edit_string2 = 156; 1535 isc_dyn_fld_query_header2 = 157; 1536 isc_dyn_fld_validation_source2 = 158; 1537 isc_dyn_trg_msg2 = 159; 1538 isc_dyn_trg_source2 = 160; 1539 isc_dyn_view_source2 = 161; 1540 isc_dyn_xcp_msg2 = 184; 1541 { } 1542 { Generator specific attributes } 1543 { } 1544 isc_dyn_generator_name = 95; 1545 isc_dyn_generator_id = 96; 1546 { } 1547 { Procedure specific attributes } 1548 { } 1549 isc_dyn_prc_inputs = 167; 1550 isc_dyn_prc_outputs = 168; 1551 isc_dyn_prc_source = 169; 1552 isc_dyn_prc_blr = 170; 1553 isc_dyn_prc_source2 = 171; 1554 { } 1555 { Parameter specific attributes } 1556 { } 1557 isc_dyn_prm_number = 138; 1558 isc_dyn_prm_type = 139; 1559 { } 1560 { Relation specific attributes } 1561 { } 1562 isc_dyn_xcp_msg = 185; 1563 { } 1564 { Cascading referential integrity values } 1565 { } 1566 isc_dyn_foreign_key_update = 205; 1567 isc_dyn_foreign_key_delete = 206; 1568 isc_dyn_foreign_key_cascade = 207; 1569 isc_dyn_foreign_key_default = 208; 1570 isc_dyn_foreign_key_null = 209; 1571 isc_dyn_foreign_key_none = 210; 1572 { } 1573 { SQL role values } 1574 { } 1575 isc_dyn_def_sql_role = 211; 1576 isc_dyn_sql_role_name = 212; 1577 isc_dyn_grant_admin_options = 213; 1578 isc_dyn_del_sql_role = 214; 1579 { } 1580 { Last $dyn value assigned } 1581 { } 1582 isc_dyn_last_dyn_value = 216; 1583 { } 1584 { Array slice description language (SDL) } 1585 { } 1586 isc_sdl_version1 = 1; 1587 isc_sdl_eoc = 255; 1588 isc_sdl_relation = 2; 1589 isc_sdl_rid = 3; 1590 isc_sdl_field = 4; 1591 isc_sdl_fid = 5; 1592 isc_sdl_struct = 6; 1593 isc_sdl_variable = 7; 1594 isc_sdl_scalar = 8; 1595 isc_sdl_tiny_integer = 9; 1596 isc_sdl_short_integer = 10; 1597 isc_sdl_long_integer = 11; 1598 isc_sdl_literal = 12; 1599 isc_sdl_add = 13; 1600 isc_sdl_subtract = 14; 1601 isc_sdl_multiply = 15; 1602 isc_sdl_divide = 16; 1603 isc_sdl_negate = 17; 1604 isc_sdl_eql = 18; 1605 isc_sdl_neq = 19; 1606 isc_sdl_gtr = 20; 1607 isc_sdl_geq = 21; 1608 isc_sdl_lss = 22; 1609 isc_sdl_leq = 23; 1610 isc_sdl_and = 24; 1611 isc_sdl_or = 25; 1612 isc_sdl_not = 26; 1613 isc_sdl_while = 27; 1614 isc_sdl_assignment = 28; 1615 isc_sdl_label = 29; 1616 isc_sdl_leave = 30; 1617 isc_sdl_begin = 31; 1618 isc_sdl_end = 32; 1619 isc_sdl_do3 = 33; 1620 isc_sdl_do2 = 34; 1621 isc_sdl_do1 = 35; 1622 isc_sdl_element = 36; 1623 { } 1624 { International text interpretation values } 1625 { } 1626 isc_interp_eng_ascii = 0; 1627 isc_interp_jpn_sjis = 5; 1628 isc_interp_jpn_euc = 6; 1629 { } 1630 { SQL definitions } 1631 { } 1632 SQL_TEXT = 452; 1633 SQL_VARYING = 448; 1634 SQL_SHORT = 500; 1635 SQL_LONG = 496; 1636 SQL_FLOAT = 482; 1637 SQL_DOUBLE = 480; 1638 SQL_D_FLOAT = 530; 1639 SQL_TIMESTAMP = 510; 1640 SQL_BLOB = 520; 1641 SQL_ARRAY = 540; 1642 SQL_QUAD = 550; 1643 SQL_TYPE_TIME = 560; 1644 SQL_TYPE_DATE = 570; 1645 SQL_INT64 = 580; 1646 { Historical alias for pre V6 applications } 1647 SQL_DATE = SQL_TIMESTAMP; 1648 { } 1649 { Blob Subtypes } 1650 { } 1651 { types less than zero are reserved for customer use } 1652 isc_blob_untyped = 0; 1653 { internal subtypes } 1654 isc_blob_text = 1; 1655 isc_blob_blr = 2; 1656 isc_blob_acl = 3; 1657 isc_blob_ranges = 4; 1658 isc_blob_summary = 5; 1659 isc_blob_format = 6; 1660 isc_blob_tra = 7; 1661 isc_blob_extfile = 8; 1662 { the range 20-30 is reserved for dBASE and Paradox types } 1663 isc_blob_formatted_memo = 20; 1664 isc_blob_paradox_ole = 21; 1665 isc_blob_graphic = 22; 1666 isc_blob_dbase_ole = 23; 1667 isc_blob_typed_binary = 24; 1668 1669{$IFNDEF LinkDynamically} 1670 1671 { } 1672 { OSRI database functions } 1673 { } 1674 1675 function isc_attach_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint; 1676 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 1677 1678 function isc_array_gen_sdl(_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl; external gdslib; 1679 1680 function isc_array_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC; 1681 _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 1682 1683 function isc_array_lookup_bounds(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar; 1684 _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib; 1685 1686 function isc_array_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Pchar; 1687 _para6:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib; 1688 1689 function isc_array_set_desc(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint; 1690 _para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; extdecl; external gdslib; 1691 1692 function isc_array_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:PISC_ARRAY_DESC; 1693 _para6:pointer; _para7:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 1694 1695 procedure isc_blob_default_desc(_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl; external gdslib; 1696 1697 function isc_blob_gen_bpb(_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte; 1698 _para6:Pword):ISC_STATUS; extdecl; external gdslib; 1699 1700 function isc_blob_info(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint; 1701 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 1702 1703 function isc_blob_lookup_desc(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pbyte; _para5:Pbyte; 1704 _para6:PISC_BLOB_DESC; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib; 1705 1706 function isc_blob_set_desc(_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint; 1707 _para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; extdecl; external gdslib; 1708 1709 function isc_cancel_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib; 1710 1711 function isc_cancel_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 1712 1713 function isc_close_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; external gdslib; 1714 1715 function isc_commit_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib; 1716 1717 function isc_commit_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib; 1718 1719 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; 1720 1721 function isc_create_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD; 1722 _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib; 1723 1724 function isc_create_database(_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint; 1725 _para6:Pchar; _para7:smallint):ISC_STATUS; extdecl; external gdslib; 1726 1727 function isc_database_info(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint; 1728 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 1729 1730 procedure isc_decode_date(_para1:PISC_QUAD; _para2:pointer); extdecl; external gdslib; 1731 1732 procedure isc_decode_sql_date(_para1:PISC_DATE; _para2:pointer); extdecl; external gdslib; 1733 1734 procedure isc_decode_sql_time(_para1:PISC_TIME; _para2:pointer); extdecl; external gdslib; 1735 1736 procedure isc_decode_timestamp(_para1:PISC_TIMESTAMP; _para2:pointer); extdecl; external gdslib; 1737 1738 function isc_detach_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib; 1739 1740 function isc_drop_database(_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib; 1741 1742 function isc_dsql_allocate_statement(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib; 1743 1744 function isc_dsql_alloc_statement2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; external gdslib; 1745 1746 function isc_dsql_describe(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1747 1748 function isc_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1749 1750 function isc_dsql_exec_immed2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1751 _para6:word; _para7:PXSQLDA; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1752 1753 function isc_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1754 1755 function isc_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA; 1756 _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1757 1758 function isc_dsql_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1759 _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1760 1761 function isc_dsql_fetch(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1762 1763 function isc_dsql_finish(_para1:Pisc_db_handle):ISC_STATUS; extdecl; external gdslib; 1764 1765 function isc_dsql_free_statement(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl; external gdslib; 1766 1767 function isc_dsql_insert(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1768 1769 function isc_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar; 1770 _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1771 1772 function isc_dsql_set_cursor_name(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl; external gdslib; 1773 1774 function isc_dsql_sql_info(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint; 1775 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 1776 1777 procedure isc_encode_date(_para1:pointer; _para2:PISC_QUAD); extdecl; external gdslib; 1778 1779 procedure isc_encode_sql_date(_para1:pointer; _para2:PISC_DATE); extdecl; external gdslib; 1780 1781 procedure isc_encode_sql_time(_para1:pointer; _para2:PISC_TIME); extdecl; external gdslib; 1782 1783 procedure isc_encode_timestamp(_para1:pointer; _para2:PISC_TIMESTAMP); extdecl; external gdslib; 1784 1785 function isc_event_block(_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl; external gdslib; 1786 1787 procedure isc_event_counts(_para1: PISC_STATUS; _para2: short; _para3: pchar; _para4: pchar); extdecl; external gdslib; 1788 1789 procedure isc_expand_dpb(_para1:PPchar; _para2:Psmallint; args:array of const); cdecl; external gdslib; 1790 1791 function isc_modify_dpb(_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl; external gdslib; 1792 1793 function isc_free(_para1:Pchar):ISC_LONG; extdecl; external gdslib; 1794 1795 function isc_get_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1796 1797 function isc_get_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint; 1798 _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer; 1799 _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 1800 1801 function isc_interprete(_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl; external gdslib; 1802 1803 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; 1804 1805 function isc_open_blob2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD; 1806 _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib; 1807 1808 function isc_prepare_transaction2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl; external gdslib; 1809 1810 procedure isc_print_sqlerror(_para1:smallint; _para2:PISC_STATUS); extdecl; external gdslib; 1811 1812 function isc_print_status(_para1:PISC_STATUS):ISC_STATUS; extdecl; external gdslib; 1813 1814 function isc_put_segment(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl; external gdslib; 1815 1816 function isc_put_slice(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:PISC_QUAD; _para5:smallint; 1817 _para6:Pchar; _para7:smallint; _para8:PISC_LONG; _para9:ISC_LONG; _para10:pointer):ISC_STATUS; extdecl; external gdslib; 1818 1819 function isc_que_events(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG; _para4:smallint; _para5:Pchar; 1820 _para6:isc_callback; _para7:pointer):ISC_STATUS; extdecl; external gdslib; 1821 1822 function isc_rollback_retaining(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib; 1823 1824 function isc_rollback_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib; 1825 1826 function isc_start_multiple(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl; external gdslib; 1827 1828 function isc_start_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl; external gdslib; 1829 1830 function isc_sqlcode(_para1:PISC_STATUS):ISC_LONG; extdecl; external gdslib; 1831 1832 // Available in Firebird 2.5+ 1833 function fb_sqlstate(_para1: PAnsiChar;_para2:PISC_STATUS): ISC_STATUS ; extdecl; external gdslib; 1834 1835 procedure isc_sql_interprete(_para1:smallint; _para2:Pchar; _para3:smallint); extdecl; external gdslib; 1836 1837 function isc_transaction_info(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint; 1838 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 1839 1840 function isc_transact_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1841 _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib; 1842 1843 function isc_vax_integer(_para1:Pchar; _para2:smallint):ISC_LONG; extdecl; external gdslib; 1844 1845 function isc_portable_integer(_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl; external gdslib; 1846 1847 { } 1848 { Security Functions } 1849 { } 1850 1851 1852 function isc_add_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib; 1853 1854 function isc_delete_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib; 1855 1856 function isc_modify_user(_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; external gdslib; 1857 1858 { } 1859 { Other OSRI functions } 1860 { } 1861 function isc_compile_request(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1862 1863 function isc_compile_request2(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1864 1865 function isc_ddl(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1866 1867 function isc_prepare_transaction(_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; external gdslib; 1868 1869 function isc_receive(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer; 1870 _para6:smallint):ISC_STATUS; extdecl; external gdslib; 1871 1872 function isc_reconnect_transaction(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1873 1874 function isc_release_request(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib; 1875 1876 function isc_request_info(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar; 1877 _para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; external gdslib; 1878 1879 function isc_seek_blob(_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 1880 1881 function isc_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer; 1882 _para6:smallint):ISC_STATUS; extdecl; external gdslib; 1883 1884 function isc_start_and_send(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:smallint; 1885 _para6:pointer; _para7:smallint):ISC_STATUS; extdecl; external gdslib; 1886 1887 function isc_start_request(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl; external gdslib; 1888 1889 function isc_unwind_request(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl; external gdslib; 1890 1891 function isc_wait_for_event(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1892 1893 { } 1894 { Other Sql functions } 1895 { } 1896 function isc_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib; 1897 1898 function isc_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib; 1899 1900 function isc_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1901 1902 function isc_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1903 1904 function isc_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1905 1906 function isc_execute_immediate(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 1907 1908 function isc_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1909 1910 function isc_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1911 1912 function isc_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint; 1913 _para6:Pchar; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1914 1915 { } 1916 { Other Dynamic sql functions } 1917 { } 1918 function isc_dsql_execute_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar; 1919 _para6:word; _para7:word; _para8:Pchar):ISC_STATUS; extdecl; external gdslib; 1920 1921 function isc_dsql_execute2_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar; 1922 _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar; 1923 _para11:word; _para12:word; _para13:Pchar):ISC_STATUS; extdecl; external gdslib; 1924 1925 function isc_dsql_execute_immediate_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1926 _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word; 1927 _para11:Pchar):ISC_STATUS; extdecl; external gdslib; 1928 1929 function isc_dsql_exec_immed3_m(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1930 _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:word; 1931 _para11:Pchar; _para12:word; _para13:Pchar; _para14:word; _para15:word; 1932 _para16:Pchar):ISC_STATUS; extdecl; external gdslib; 1933 1934 function isc_dsql_fetch_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word; 1935 _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib; 1936 1937 function isc_dsql_insert_m(_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word; 1938 _para6:word; _para7:Pchar):ISC_STATUS; extdecl; external gdslib; 1939 1940 function isc_dsql_prepare_m(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:Pchar; 1941 _para6:word; _para7:word; _para8:Pchar; _para9:word; _para10:Pchar):ISC_STATUS; extdecl; external gdslib; 1942 1943 function isc_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib; 1944 1945 function isc_embed_dsql_close(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib; 1946 1947 function isc_embed_dsql_declare(_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; external gdslib; 1948 1949 function isc_embed_dsql_describe(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1950 1951 function isc_embed_dsql_describe_bind(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1952 1953 function isc_embed_dsql_execute(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1954 1955 function isc_embed_dsql_execute2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA; 1956 _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1957 1958 function isc_embed_dsql_execute_immed(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar; 1959 _para6:word; _para7:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1960 1961 function isc_embed_dsql_fetch(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1962 1963 function isc_embed_dsql_open(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1964 1965 function isc_embed_dsql_open2(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA; 1966 _para6:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1967 1968 function isc_embed_dsql_insert(_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1969 1970 function isc_embed_dsql_prepare(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:word; 1971 _para6:Pchar; _para7:word; _para8:PXSQLDA):ISC_STATUS; extdecl; external gdslib; 1972 1973 function isc_embed_dsql_release(_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; external gdslib; 1974 1975 { } 1976 { Other Blob functions } 1977 { } 1978 function BLOB_open(_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl; external gdslib; 1979 1980 function BLOB_put(_para1:char; _para2:PBSTREAM):longint; extdecl; external gdslib; 1981 1982 function BLOB_close(_para1:PBSTREAM):longint; extdecl; external gdslib; 1983 1984 function BLOB_get(_para1:PBSTREAM):longint; extdecl; external gdslib; 1985 1986 function BLOB_display(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1987 1988 function BLOB_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1989 1990 function BLOB_edit(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1991 1992 function BLOB_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1993 1994 function BLOB_text_dump(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1995 1996 function BLOB_text_load(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; external gdslib; 1997 1998 function Bopen(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl; external gdslib; 1999 2000{$IFDEF Unix} 2001 function Bopen2(_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl; external gdslib; 2002{$ENDIF} 2003 2004 { } 2005 { Other Misc functions } 2006 { } 2007 function isc_ftof(_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl; external gdslib; 2008 2009 function isc_print_blr(_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl; external gdslib; 2010 2011 procedure isc_set_debug(_para1:longint); extdecl; external gdslib; 2012 2013 procedure isc_qtoq(_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl; external gdslib; 2014 2015 procedure isc_vtof(_para1:Pchar; _para2:Pchar; _para3:word); extdecl; external gdslib; 2016 2017 procedure isc_vtov(_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl; external gdslib; 2018 2019 function isc_version(_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl; external gdslib; 2020 2021{$IFDEF Unix} 2022 function isc_reset_fpe(_para1:word):ISC_LONG; extdecl; external gdslib; 2023{$ENDIF} 2024 2025 { } 2026 { Service manager functions } 2027 { } 2028 (*!!MVC 2029 #define ADD_SPB_LENGTH(p, length) { (p)++ = (length); \ 2030 (p)++ = (length) >> 8;} 2031 2032 #define ADD_SPB_NUMERIC(p, data) { (p)++ = (data); \ 2033 (p)++ = (data) >> 8; \ 2034 (p)++ = (data) >> 16; \ 2035 (p)++ = (data) >> 24;} 2036 !!MVC *) 2037 2038 function isc_service_attach(_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word; 2039 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 2040 2041 function isc_service_detach(_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl; external gdslib; 2042 2043 function isc_service_query(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar; 2044 _para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl; external gdslib; 2045 2046 function isc_service_start(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 2047 2048 { } 2049 { Shutdown and cancel } 2050 { } 2051 // Available in Firebird 2.5+ 2052 function fb_shutdown(_para1: UINT; _para2: integer): int; extdecl; external gdslib; 2053 2054 // Available in Firebird 2.5+ 2055 //function fb_shutdown_callback{!!!3 unknown typedef}: ISC_EXPORT{ISC_STATUS}{<= !!!4 unknown type}; 2056 2057 // Available in Firebird 2.5+ 2058 //function fb_cancel_operation{!!!3 unknown typedef}: ISC_EXPORT{ISC_STATUS}{<= !!!4 unknown type}; 2059 2060 2061 { } 2062 { Forms functions } 2063 { } 2064{$IFDEF Unix} 2065 function isc_compile_map(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 2066 2067 function isc_compile_menu(_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 2068 2069 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; 2070 2071 function isc_create_window(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint; 2072 _para6:Psmallint):ISC_STATUS; extdecl; external gdslib; 2073 2074 function isc_delete_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib; 2075 2076 function isc_drive_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_win_handle; _para5:Pisc_req_handle; 2077 _para6:Pbyte; _para7:Pbyte):ISC_STATUS; extdecl; external gdslib; 2078 2079 function isc_drive_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar; 2080 _para6:Psmallint; _para7:Pchar; _para8:Psmallint; _para9:Psmallint; _para10:Pchar; 2081 _para11:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 2082 2083 function isc_form_delete(_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl; external gdslib; 2084 2085 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; 2086 2087 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; 2088 2089 function isc_get_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG; 2090 _para6:Psmallint):ISC_STATUS; extdecl; external gdslib; 2091 2092 function isc_initialize_menu(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib; 2093 2094 function isc_menu(_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; external gdslib; 2095 2096 function isc_load_form(_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_form_handle; _para5:Psmallint; 2097 _para6:Pchar):ISC_STATUS; extdecl; external gdslib; 2098 2099 function isc_pop_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib; 2100 2101 function isc_put_entree(_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl; external gdslib; 2102 2103 function isc_reset_form(_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; external gdslib; 2104 2105 function isc_suspend_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib; 2106{$ENDIF} 2107 2108 // Available in Firebird 2.5+ 2109 function fb_shutdown:int; extdecl; external gdslib; 2110 2111 // Available in Firebird 2.5+ 2112 function fb_sqlstate:ISC_STATUS; extdecl;external gdslib; 2113 2114 function isc_attach_database:ISC_STATUS; extdecl; external gdslib; 2115 2116 function isc_array_gen_sdl:ISC_STATUS; extdecl; external gdslib; 2117 2118 function isc_array_get_slice:ISC_STATUS; extdecl; external gdslib; 2119 2120 function isc_array_lookup_bounds:ISC_STATUS; extdecl; external gdslib; 2121 2122 function isc_array_lookup_desc:ISC_STATUS; extdecl; external gdslib; 2123 2124 function isc_array_set_desc:ISC_STATUS; extdecl; external gdslib; 2125 2126 function isc_array_put_slice:ISC_STATUS; extdecl; external gdslib; 2127 2128 function isc_blob_gen_bpb:ISC_STATUS; extdecl; external gdslib; 2129 2130 function isc_blob_info:ISC_STATUS; extdecl; external gdslib; 2131 2132 function isc_blob_lookup_desc:ISC_STATUS; extdecl; external gdslib; 2133 2134 function isc_blob_set_desc:ISC_STATUS; extdecl; external gdslib; 2135 2136 function isc_cancel_blob:ISC_STATUS; extdecl; external gdslib; 2137 2138 function isc_cancel_events:ISC_STATUS; extdecl; external gdslib; 2139 2140 function isc_close_blob:ISC_STATUS; extdecl; external gdslib; 2141 2142 function isc_commit_retaining:ISC_STATUS; extdecl; external gdslib; 2143 2144 function isc_commit_transaction:ISC_STATUS; extdecl; external gdslib; 2145 2146 function isc_compile_request:ISC_STATUS; extdecl; external gdslib; 2147 2148 function isc_compile_request2:ISC_STATUS; extdecl; external gdslib; 2149 2150 function isc_create_blob:ISC_STATUS; extdecl; external gdslib; 2151 2152 function isc_create_blob2:ISC_STATUS; extdecl; external gdslib; 2153 2154 function isc_create_database:ISC_STATUS; extdecl; external gdslib; 2155 2156 function isc_database_info:ISC_STATUS; extdecl; external gdslib; 2157 2158 function isc_ddl:ISC_STATUS; extdecl; external gdslib; 2159 2160 procedure isc_decode_date; extdecl; external gdslib; 2161 2162 procedure isc_decode_sql_date; extdecl; external gdslib; 2163 2164 procedure isc_decode_sql_time; extdecl; external gdslib; 2165 2166 procedure isc_decode_timestamp; extdecl; external gdslib; 2167 2168 function isc_detach_database:ISC_STATUS; extdecl; external gdslib; 2169 2170 function isc_drop_database:ISC_STATUS; extdecl; external gdslib; 2171 2172 procedure isc_encode_date; extdecl; external gdslib; 2173 2174 procedure isc_encode_sql_date; extdecl; external gdslib; 2175 2176 procedure isc_encode_sql_time; extdecl; external gdslib; 2177 2178 procedure isc_encode_timestamp; extdecl; external gdslib; 2179 2180 function isc_event_block:ISC_LONG; cdecl; external gdslib; 2181 2182 procedure isc_event_counts; extdecl; external gdslib; 2183 2184 procedure isc_expand_dpb; cdecl; external gdslib; 2185 2186 function isc_modify_dpb:longint; extdecl; external gdslib; 2187 2188 function isc_free:ISC_LONG; extdecl; external gdslib; 2189 2190 function isc_get_segment:ISC_STATUS; extdecl; external gdslib; 2191 2192 function isc_get_slice:ISC_STATUS; extdecl; external gdslib; 2193 2194 function isc_interprete:ISC_STATUS; extdecl; external gdslib; 2195 2196 function isc_open_blob:ISC_STATUS; extdecl; external gdslib; 2197 2198 function isc_open_blob2:ISC_STATUS; extdecl; external gdslib; 2199 2200 function isc_prepare_transaction:ISC_STATUS; extdecl; external gdslib; 2201 2202 function isc_prepare_transaction2:ISC_STATUS; extdecl; external gdslib; 2203 2204 procedure isc_print_sqlerror; extdecl; external gdslib; 2205 2206 function isc_print_status:ISC_STATUS; extdecl; external gdslib; 2207 2208 function isc_put_segment:ISC_STATUS; extdecl; external gdslib; 2209 2210 function isc_put_slice:ISC_STATUS; extdecl; external gdslib; 2211 2212 function isc_que_events:ISC_STATUS; extdecl; external gdslib; 2213 2214 function isc_receive:ISC_STATUS; extdecl; external gdslib; 2215 2216 function isc_reconnect_transaction:ISC_STATUS; extdecl; external gdslib; 2217 2218 function isc_release_request:ISC_STATUS; extdecl; external gdslib; 2219 2220 function isc_request_info:ISC_STATUS; extdecl; external gdslib; 2221 2222{$IFDEF Unix} 2223 function isc_reset_fpe:ISC_LONG; extdecl; external gdslib; 2224{$ENDIF} 2225 2226 function isc_rollback_transaction:ISC_STATUS; extdecl; external gdslib; 2227 2228 function isc_rollback_retaining:ISC_STATUS; extdecl; external gdslib; 2229 2230 function isc_seek_blob:ISC_STATUS; extdecl; external gdslib; 2231 2232 function isc_send:ISC_STATUS; extdecl; external gdslib; 2233 2234 function isc_service_attach:ISC_STATUS; extdecl; external gdslib; 2235 2236 function isc_service_detach:ISC_STATUS; extdecl; external gdslib; 2237 2238 function isc_service_query:ISC_STATUS; extdecl; external gdslib; 2239 2240 function isc_service_start:ISC_STATUS; extdecl; external gdslib; 2241 2242 function isc_start_and_send:ISC_STATUS; extdecl; external gdslib; 2243 2244 function isc_start_multiple:ISC_STATUS; extdecl; external gdslib; 2245 2246 function isc_start_request:ISC_STATUS; extdecl; external gdslib; 2247 2248 function isc_start_transaction:ISC_STATUS; cdecl; external gdslib; 2249 2250 function isc_sqlcode:ISC_LONG; extdecl; external gdslib; 2251 2252 function isc_transaction_info:ISC_STATUS; extdecl; external gdslib; 2253 2254 function isc_transact_request:ISC_STATUS; extdecl; external gdslib; 2255 2256 function isc_unwind_request:ISC_STATUS; extdecl; external gdslib; 2257 2258 function isc_wait_for_event:ISC_STATUS; extdecl; external gdslib; 2259 2260 function isc_ftof:ISC_LONG; extdecl; external gdslib; 2261 2262 function isc_print_blr:ISC_STATUS; extdecl; external gdslib; 2263 2264 procedure isc_set_debug; extdecl; external gdslib; 2265 2266 procedure isc_qtoq; extdecl; external gdslib; 2267 2268 function isc_vax_integer:ISC_LONG; extdecl; external gdslib; 2269 2270 procedure isc_vtof; extdecl; external gdslib; 2271 2272 procedure isc_vtov; extdecl; external gdslib; 2273 2274 function isc_version:longint; extdecl; external gdslib; 2275 2276 { } 2277 { Blob functions } 2278 { } 2279 2280 function Bopen:PBSTREAM; extdecl; external gdslib; 2281 2282 function BLOB_open:PBSTREAM; extdecl; external gdslib; 2283 2284{$IFDEF Unix} 2285 function Bopen2:PBSTREAM; extdecl; external gdslib; 2286{$ENDIF} 2287 2288{$ELSE} // LinkDynamically 2289 2290var 2291 2292{ } 2293{ OSRI database functions } 2294{ } 2295 isc_attach_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl; 2296 isc_array_gen_sdl : function (_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; extdecl; 2297 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; 2298 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; 2299 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; 2300 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; 2301 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; 2302 isc_blob_default_desc : procedure (_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); extdecl; 2303 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; 2304 isc_blob_info : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl; 2305 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; 2306 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; 2307 isc_cancel_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; 2308 isc_cancel_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; extdecl; 2309 isc_close_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; extdecl; 2310 isc_commit_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; 2311 isc_commit_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; 2312 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; 2313 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; 2314 isc_create_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar; _para7:smallint):ISC_STATUS; extdecl; 2315 isc_database_info : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl; 2316 isc_decode_date : procedure (_para1:PISC_QUAD; _para2:pointer); extdecl; 2317 isc_decode_sql_date : procedure (_para1:PISC_DATE; _para2:pointer); extdecl; 2318 isc_decode_sql_time : procedure (_para1:PISC_TIME; _para2:pointer); extdecl; 2319 isc_decode_timestamp : procedure (_para1:PISC_TIMESTAMP; _para2:pointer); extdecl; 2320 isc_detach_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; 2321 isc_drop_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; extdecl; 2322 isc_dsql_allocate_statement : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; 2323 isc_dsql_alloc_statement2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; extdecl; 2324 isc_dsql_describe : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2325 isc_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2326 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; 2327 isc_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; 2328 isc_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl; 2329 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; 2330 isc_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2331 isc_dsql_finish : function (_para1:Pisc_db_handle):ISC_STATUS; extdecl; 2332 isc_dsql_free_statement : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; extdecl; 2333 isc_dsql_insert : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2334 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; 2335 isc_dsql_set_cursor_name : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; extdecl; 2336 isc_dsql_sql_info : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl; 2337 isc_encode_date : procedure (_para1:pointer; _para2:PISC_QUAD); extdecl; 2338 isc_encode_sql_date : procedure (_para1:pointer; _para2:PISC_DATE); extdecl; 2339 isc_encode_sql_time : procedure (_para1:pointer; _para2:PISC_TIME); extdecl; 2340 isc_encode_timestamp : procedure (_para1:pointer; _para2:PISC_TIMESTAMP); extdecl; 2341 isc_event_block : function (_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl; 2342 isc_event_counts: procedure (_para1: PISC_STATUS; _para2: short; _para3: pchar; _para4: pchar); extdecl; 2343 isc_expand_dpb : procedure (_para1:PPchar; _para2:Psmallint; args:array of const); cdecl; 2344 isc_modify_dpb : function (_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; extdecl; 2345 isc_free : function (_para1:Pchar):ISC_LONG; extdecl; 2346 isc_get_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; 2347 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; 2348 isc_interprete : function (_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; extdecl; 2349 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; 2350 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; 2351 isc_prepare_transaction2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; extdecl; 2352 isc_print_sqlerror : procedure (_para1:smallint; _para2:PISC_STATUS); extdecl; 2353 isc_print_status : function (_para1:PISC_STATUS):ISC_STATUS; extdecl; 2354 isc_put_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; extdecl; 2355 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; 2356 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; 2357 isc_rollback_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; 2358 isc_rollback_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; 2359 isc_start_multiple : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl; 2360 isc_start_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl; 2361 isc_sqlcode : function (_para1:PISC_STATUS):ISC_LONG; extdecl; 2362 // Available in Firebird 2.5+ 2363 fb_sqlstate : function(_para1: PAnsiChar;_para2:PISC_STATUS):ISC_STATUS; extdecl; 2364 isc_sql_interprete : procedure (_para1:smallint; _para2:Pchar; _para3:smallint); extdecl; 2365 isc_transaction_info : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl; 2366 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; 2367 isc_vax_integer : function (_para1:Pchar; _para2:smallint):ISC_LONG; extdecl; 2368 isc_portable_integer : function (_para1:Pbyte; _para2:smallint):ISC_INT64; extdecl; 2369{ } 2370{ Security Functions } 2371{ } 2372 isc_add_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; 2373 isc_delete_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; 2374 isc_modify_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; extdecl; 2375{ } 2376{ Other OSRI functions } 2377{ } 2378 isc_compile_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; 2379 isc_compile_request2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; 2380 isc_ddl : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; 2381 isc_prepare_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; extdecl; 2382 isc_receive : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl; 2383 isc_reconnect_transaction : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; extdecl; 2384 isc_release_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; 2385 isc_request_info : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;_para6:smallint; _para7:Pchar):ISC_STATUS; extdecl; 2386 isc_seek_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; extdecl; 2387 isc_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; extdecl; 2388 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; 2389 isc_start_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; extdecl; 2390 isc_unwind_request : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; extdecl; 2391 isc_wait_for_event : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; extdecl; 2392{ } 2393{ Other Sql functions } 2394{ } 2395 isc_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; 2396 isc_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; 2397 isc_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; 2398 isc_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; 2399 isc_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; 2400 isc_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; 2401 isc_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; extdecl; 2402 isc_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; extdecl; 2403 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; 2404{ } 2405{ Other Dynamic sql functions } 2406{ } 2407 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; 2408 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; 2409 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; 2410 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; 2411 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; 2412 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; 2413 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; 2414 isc_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; 2415 isc_embed_dsql_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; 2416 isc_embed_dsql_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; extdecl; 2417 isc_embed_dsql_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2418 isc_embed_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2419 isc_embed_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; 2420 isc_embed_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl; 2421 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; 2422 isc_embed_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2423 isc_embed_dsql_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; extdecl; 2424 isc_embed_dsql_open2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; extdecl; 2425 isc_embed_dsql_insert : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; extdecl; 2426 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; 2427 isc_embed_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; extdecl; 2428{ } 2429{ Other Blob functions } 2430{ } 2431 BLOB_open : function (_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; extdecl; 2432 BLOB_put : function (_para1:char; _para2:PBSTREAM):longint; extdecl; 2433 BLOB_close : function (_para1:PBSTREAM):longint; extdecl; 2434 BLOB_get : function (_para1:PBSTREAM):longint; extdecl; 2435 BLOB_display : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2436 BLOB_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2437 BLOB_edit : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2438 BLOB_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2439 BLOB_text_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2440 BLOB_text_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; extdecl; 2441 Bopen : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; extdecl; 2442{$IFDEF Unix} 2443 Bopen2 : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; extdecl; 2444{$ENDIF} 2445{ } 2446{ Other Misc functions } 2447{ } 2448 isc_ftof : function (_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; extdecl; 2449 isc_print_blr : function (_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; extdecl; 2450 isc_set_debug : procedure (_para1:longint); extdecl; 2451 isc_qtoq : procedure (_para1:PISC_QUAD; _para2:PISC_QUAD); extdecl; 2452 isc_vtof : procedure (_para1:Pchar; _para2:Pchar; _para3:word); extdecl; 2453 isc_vtov : procedure (_para1:Pchar; _para2:Pchar; _para3:smallint); extdecl; 2454 isc_version : function (_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; extdecl; 2455{$IFDEF Unix} 2456 isc_reset_fpe : function (_para1:word):ISC_LONG; extdecl; 2457{$ENDIF} 2458{ } 2459{ Service manager functions } 2460{ } 2461(*!!MVC 2462 #define ADD_SPB_LENGTH(p, length) { (p)++ = (length); \ 2463 (p)++ = (length) >> 8;} 2464 2465#define ADD_SPB_NUMERIC(p, data) { (p)++ = (data); \ 2466 (p)++ = (data) >> 8; \ 2467 (p)++ = (data) >> 16; \ 2468 (p)++ = (data) >> 24;} 2469!!MVC *) 2470 isc_service_attach : function (_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;_para6:Pchar):ISC_STATUS; extdecl; 2471 isc_service_detach : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl; 2472 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; 2473 isc_service_start : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; 2474 2475 2476{ } 2477{ Shutdown and cancel } 2478{ } 2479 // Available in Firebird 2.5+ 2480 fb_shutdown : function(_para1: UINT; _para2: integer):int; extdecl; 2481 2482{ } 2483{ Forms functions } 2484{ } 2485{$IFDEF Unix} 2486 isc_compile_map : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; 2487 isc_compile_menu : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; 2488 isc_compile_sub_map : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; 2489 isc_create_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;_para6:Psmallint):ISC_STATUS; extdecl; 2490 isc_delete_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; 2491 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; 2492 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; 2493 isc_form_delete : function (_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; extdecl; 2494 isc_form_fetch : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; 2495 isc_form_insert : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; extdecl; 2496 isc_get_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;_para6:Psmallint):ISC_STATUS; extdecl; 2497 isc_initialize_menu : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; 2498 isc_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; extdecl; 2499 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; 2500 isc_pop_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; 2501 isc_put_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; extdecl; 2502 isc_reset_form : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; extdecl; 2503 isc_suspend_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; 2504{$ENDIF} 2505 2506function InitialiseIBase60(Const LibraryName : AnsiString) : integer; 2507function InitialiseIBase60 : integer; 2508procedure ReleaseIBase60; 2509 2510Function IBaseLibraryHandle : TLibHandle; 2511Function IBaseLoadedLibrary : AnsiString; 2512{$ENDIF} 2513 2514implementation 2515 2516{$IFDEF LinkDynamically} 2517 2518ResourceString 2519 SErrEmbeddedFailed = 'Can not load embedded Firebird client "%s". Check your installation.'; 2520 SErrDefaultsFailed = 'Can not load default Firebird clients ("%s" or "%s" or "%s"). Check your installation.'; 2521 SErrLoadFailed = 'Can not load Firebird client library "%s". Check your installation.'; 2522 SErrAlreadyLoaded = 'Firebird interface already initialized from library %s.'; 2523 2524var 2525 RefCount : integer; 2526 LoadedLibrary : AnsiString; 2527 LibHandle : TLibHandle; 2528 2529Function IBaseLibraryHandle : TLibHandle; 2530 2531begin 2532 result:=LibHandle; 2533end; 2534 2535Function IBaseLoadedLibrary : AnsiString; 2536 2537begin 2538 Result:=LoadedLibrary; 2539end; 2540 2541Function TryInitialiseIBase60(Const LibraryName : AnsiString) : integer; 2542 2543begin 2544 Result := 0; 2545 if (RefCount=0) then 2546 begin 2547 LibHandle:=LoadLibrary(LibraryName); 2548 if (LibHandle=nilhandle) then 2549 Exit; 2550 inc(RefCount); 2551 LoadedLibrary:=LibraryName; 2552 // Available in Firebird 2.5+ 2553 pointer(fb_shutdown) := GetProcedureAddress(IBaseLibraryHandle,'fb_shutdown'); 2554 // Available in Firebird 2.5+ 2555 pointer(fb_sqlstate) := GetProcedureAddress(IBaseLibraryHandle,'fb_sqlstate'); 2556 pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database'); 2557 pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl'); 2558 pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice'); 2559 pointer(isc_array_lookup_bounds) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_bounds'); 2560 pointer(isc_array_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_desc'); 2561 pointer(isc_array_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_set_desc'); 2562 pointer(isc_array_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_put_slice'); 2563 pointer(isc_blob_default_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_default_desc'); 2564 pointer(isc_blob_gen_bpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_gen_bpb'); 2565 pointer(isc_blob_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_info'); 2566 pointer(isc_blob_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_lookup_desc'); 2567 pointer(isc_blob_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_set_desc'); 2568 pointer(isc_cancel_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_blob'); 2569 pointer(isc_cancel_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_events'); 2570 pointer(isc_close_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_close_blob'); 2571 pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining'); 2572 pointer(isc_commit_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_transaction'); 2573 pointer(isc_create_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob'); 2574 pointer(isc_create_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob2'); 2575 pointer(isc_create_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_database'); 2576 pointer(isc_database_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_database_info'); 2577 pointer(isc_decode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_date'); 2578 pointer(isc_decode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_date'); 2579 pointer(isc_decode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_time'); 2580 pointer(isc_decode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_timestamp'); 2581 pointer(isc_detach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_detach_database'); 2582 pointer(isc_drop_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_drop_database'); 2583 pointer(isc_dsql_allocate_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_allocate_statement'); 2584 pointer(isc_dsql_alloc_statement2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_alloc_statement2'); 2585 pointer(isc_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe'); 2586 pointer(isc_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe_bind'); 2587 pointer(isc_dsql_exec_immed2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed2'); 2588 pointer(isc_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute'); 2589 pointer(isc_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2'); 2590 pointer(isc_dsql_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate'); 2591 pointer(isc_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch'); 2592 pointer(isc_dsql_finish) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_finish'); 2593 pointer(isc_dsql_free_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_free_statement'); 2594 pointer(isc_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert'); 2595 pointer(isc_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare'); 2596 pointer(isc_dsql_set_cursor_name) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_set_cursor_name'); 2597 pointer(isc_dsql_sql_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_sql_info'); 2598 pointer(isc_encode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_date'); 2599 pointer(isc_encode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_date'); 2600 pointer(isc_encode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_time'); 2601 pointer(isc_encode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_timestamp'); 2602 pointer(isc_event_block) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_block'); 2603 pointer(isc_event_counts) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_counts'); 2604 pointer(isc_expand_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_expand_dpb'); 2605 pointer(isc_modify_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_dpb'); 2606 pointer(isc_free) := GetProcedureAddress(IBaseLibraryHandle,'isc_free'); 2607 pointer(isc_get_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_segment'); 2608 pointer(isc_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_slice'); 2609 pointer(isc_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_interprete'); 2610 pointer(isc_open_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob'); 2611 pointer(isc_open_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob2'); 2612 pointer(isc_prepare_transaction2) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction2'); 2613 pointer(isc_print_sqlerror) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_sqlerror'); 2614 pointer(isc_print_status) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_status'); 2615 pointer(isc_put_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_segment'); 2616 pointer(isc_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_slice'); 2617 pointer(isc_que_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_que_events'); 2618 pointer(isc_rollback_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_retaining'); 2619 pointer(isc_rollback_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_transaction'); 2620 pointer(isc_start_multiple) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_multiple'); 2621 pointer(isc_start_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_transaction'); 2622 pointer(isc_sqlcode) := GetProcedureAddress(IBaseLibraryHandle,'isc_sqlcode'); 2623 pointer(isc_sql_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_sql_interprete'); 2624 pointer(isc_transaction_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_transaction_info'); 2625 pointer(isc_transact_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_transact_request'); 2626 pointer(isc_vax_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_vax_integer'); 2627 pointer(isc_portable_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_portable_integer'); 2628 pointer(isc_add_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_add_user'); 2629 pointer(isc_delete_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_user'); 2630 pointer(isc_modify_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_user'); 2631 pointer(isc_compile_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request'); 2632 pointer(isc_compile_request2) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request2'); 2633 pointer(isc_ddl) := GetProcedureAddress(IBaseLibraryHandle,'isc_ddl'); 2634 pointer(isc_prepare_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction'); 2635 pointer(isc_receive) := GetProcedureAddress(IBaseLibraryHandle,'isc_receive'); 2636 pointer(isc_reconnect_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_reconnect_transaction'); 2637 pointer(isc_release_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_release_request'); 2638 pointer(isc_request_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_request_info'); 2639 pointer(isc_seek_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_seek_blob'); 2640 pointer(isc_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_send'); 2641 pointer(isc_start_and_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_and_send'); 2642 pointer(isc_start_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_request'); 2643 pointer(isc_unwind_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_unwind_request'); 2644 pointer(isc_wait_for_event) := GetProcedureAddress(IBaseLibraryHandle,'isc_wait_for_event'); 2645 pointer(isc_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_close'); 2646 pointer(isc_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_declare'); 2647 pointer(isc_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe'); 2648 pointer(isc_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe_bind'); 2649 pointer(isc_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute'); 2650 pointer(isc_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute_immediate'); 2651 pointer(isc_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_fetch'); 2652 pointer(isc_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_open'); 2653 pointer(isc_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare'); 2654 pointer(isc_dsql_execute_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_m'); 2655 pointer(isc_dsql_execute2_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2_m'); 2656 pointer(isc_dsql_execute_immediate_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate_m'); 2657 pointer(isc_dsql_exec_immed3_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed3_m'); 2658 pointer(isc_dsql_fetch_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch_m'); 2659 pointer(isc_dsql_insert_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert_m'); 2660 pointer(isc_dsql_prepare_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare_m'); 2661 pointer(isc_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_release'); 2662 pointer(isc_embed_dsql_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_close'); 2663 pointer(isc_embed_dsql_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_declare'); 2664 pointer(isc_embed_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe'); 2665 pointer(isc_embed_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe_bind'); 2666 pointer(isc_embed_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute'); 2667 pointer(isc_embed_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute2'); 2668 pointer(isc_embed_dsql_execute_immed) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute_immed'); 2669 pointer(isc_embed_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_fetch'); 2670 pointer(isc_embed_dsql_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open'); 2671 pointer(isc_embed_dsql_open2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open2'); 2672 pointer(isc_embed_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_insert'); 2673 pointer(isc_embed_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_prepare'); 2674 pointer(isc_embed_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_release'); 2675 pointer(BLOB_open) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_open'); 2676 pointer(BLOB_put) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_put'); 2677 pointer(BLOB_close) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_close'); 2678 pointer(BLOB_get) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_get'); 2679 pointer(BLOB_display) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_display'); 2680 pointer(BLOB_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_dump'); 2681 pointer(BLOB_edit) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_edit'); 2682 pointer(BLOB_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_load'); 2683 pointer(BLOB_text_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_dump'); 2684 pointer(BLOB_text_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_load'); 2685 pointer(Bopen) := GetProcedureAddress(IBaseLibraryHandle,'Bopen'); 2686{$IFDEF Unix} 2687 pointer(Bopen2) := GetProcedureAddress(IBaseLibraryHandle,'Bopen2'); 2688{$ENDIF} 2689 pointer(isc_ftof) := GetProcedureAddress(IBaseLibraryHandle,'isc_ftof'); 2690 pointer(isc_print_blr) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_blr'); 2691 pointer(isc_set_debug) := GetProcedureAddress(IBaseLibraryHandle,'isc_set_debug'); 2692 pointer(isc_qtoq) := GetProcedureAddress(IBaseLibraryHandle,'isc_qtoq'); 2693 pointer(isc_vtof) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtof'); 2694 pointer(isc_vtov) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtov'); 2695 pointer(isc_version) := GetProcedureAddress(IBaseLibraryHandle,'isc_version'); 2696{$IFDEF Unix} 2697 pointer(isc_reset_fpe) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_fpe'); 2698{$ENDIF} 2699 pointer(isc_service_attach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_attach'); 2700 pointer(isc_service_detach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_detach'); 2701 pointer(isc_service_query) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_query'); 2702 pointer(isc_service_start) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_start'); 2703{$IFDEF Unix} 2704 pointer(isc_compile_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_map'); 2705 pointer(isc_compile_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_menu'); 2706 pointer(isc_compile_sub_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_sub_map'); 2707 pointer(isc_create_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_window'); 2708 pointer(isc_delete_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_window'); 2709 pointer(isc_drive_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_form'); 2710 pointer(isc_drive_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_menu'); 2711 pointer(isc_form_delete) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_delete'); 2712 pointer(isc_form_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_fetch'); 2713 pointer(isc_form_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_insert'); 2714 pointer(isc_get_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_entree'); 2715 pointer(isc_initialize_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_initialize_menu'); 2716 pointer(isc_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_menu'); 2717 pointer(isc_load_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_load_form'); 2718 pointer(isc_pop_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_pop_window'); 2719 pointer(isc_put_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_entree'); 2720 pointer(isc_reset_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_form'); 2721 pointer(isc_suspend_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_suspend_window'); 2722{$ENDIF} 2723 end 2724 else 2725 inc(RefCount); 2726 Result := RefCount; 2727end; 2728 2729function InitialiseIBase60 : integer; 2730 2731begin 2732 Result := 0; 2733 if (RefCount<>0) then 2734 // pretend to load whatever is already loaded, so we do not get a library name conflict. 2735 Inc(RefCount) 2736 else If UseEmbeddedFirebird then 2737 begin 2738 If (TryInitialiseIBase60(fbembedlib)=0) and (TryInitialiseIBase60(libem)=0) then 2739 Raise EInOutError.CreateFmt(SErrEmbeddedFailed,[fbembedlib]); 2740 end 2741 else 2742 begin 2743 If (TryInitialiseIBase60(fbembedlib)=0) and 2744 (TryInitialiseIBase60(libem)=0) and 2745 (TryInitialiseIBase60(fbclib)=0) and 2746 (TryInitialiseIBase60(libfc)=0) and 2747 (TryInitialiseIBase60(gdslib)=0) then 2748 Raise EInOutError.CreateFmt(SErrDefaultsFailed,[fbclib,gdslib,fbembedlib]); 2749 end; 2750 Result := RefCount; 2751end; 2752 2753function InitialiseIBase60(Const LibraryName : AnsiString) : integer; 2754 2755begin 2756 Result := TryInitialiseIBase60(LibraryName); 2757 If Result = 0 then 2758 Raise EInOutError.CreateFmt(SErrLoadFailed,[LibraryName]) 2759 else If (LibraryName<>IBaseLoadedLibrary) then 2760 begin 2761 Dec(RefCount); 2762 Result := RefCount; 2763 Raise EInOUtError.CreateFmt(SErrAlreadyLoaded,[IBaseLoadedLibrary]); 2764 end; 2765end; 2766 2767 2768Procedure ReleaseIBase60; 2769 2770begin 2771 if RefCount>1 then 2772 Dec(RefCount) 2773 else 2774 begin 2775 // Shutdown embedded subsystem with timeout 300ms (Firebird 2.5+) 2776 // Required before unloading library; has no effect on non-embedded client 2777 if (pointer(fb_shutdown)<>nil) and (fb_shutdown(300,1)<>0) then 2778 begin 2779 //todo: log error; still try to unload library below as the timeout may have been insufficient 2780 end; 2781 if UnloadLibrary(LibHandle) then 2782 begin 2783 Dec(RefCount); 2784 LibHandle := NilHandle; 2785 LoadedLibrary:=''; 2786 end; 2787 end; 2788end; 2789 2790{$ENDIF} 2791 2792function XSQLDA_LENGTH(n: Integer): Integer; 2793begin 2794 Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR); 2795end; 2796 2797 2798