ibase60dyn.pp 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. {
  2. Contains the Interbase/Firebird-functions calls
  3. In this stage only the calls needed for IBConnection are implemented
  4. Other calls could be simply implemented, using copy-paste from ibase60
  5. Call InitialiseIbase60 before using any of the calls, and call ReleaseIbase60
  6. when finished.
  7. }
  8. unit ibase60dyn;
  9. {$mode objfpc}{$H+}
  10. {$MACRO on}
  11. interface
  12. uses
  13. dynlibs,sysutils;
  14. {$IFDEF Unix}
  15. {$LINKLIB c}
  16. {$LINKLIB crypt}
  17. {$DEFINE gdsdecl:=cdecl}
  18. const
  19. gdslib = 'libgds.so';
  20. fbclib = 'libfbclient.so';
  21. {$ENDIF}
  22. {$IFDEF Win32}
  23. {$DEFINE gdsdecl:=stdcall}
  24. const
  25. gdslib = 'gds32.dll';
  26. fbclib = 'fbclient.dll';
  27. {$ENDIF}
  28. {$i ibase60types.inc}
  29. var
  30. { }
  31. { OSRI database functions }
  32. { }
  33. isc_attach_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar):ISC_STATUS; gdsdecl;
  34. isc_array_gen_sdl : function (_para1:PISC_STATUS; _para2:PISC_ARRAY_DESC; _para3:Psmallint; _para4:Pchar; _para5:Psmallint):ISC_STATUS; gdsdecl;
  35. 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; gdsdecl;
  36. 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; gdsdecl;
  37. 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; gdsdecl;
  38. isc_array_set_desc : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar; _para4:Psmallint; _para5:Psmallint;_para6:Psmallint; _para7:PISC_ARRAY_DESC):ISC_STATUS; gdsdecl;
  39. 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; gdsdecl;
  40. isc_blob_default_desc : procedure (_para1:PISC_BLOB_DESC; _para2:Pbyte; _para3:Pbyte); gdsdecl;
  41. isc_blob_gen_bpb : function (_para1:PISC_STATUS; _para2:PISC_BLOB_DESC; _para3:PISC_BLOB_DESC; _para4:word; _para5:Pbyte;_para6:Pword):ISC_STATUS; gdsdecl;
  42. isc_blob_info : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; gdsdecl;
  43. 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; gdsdecl;
  44. isc_blob_set_desc : function (_para1:PISC_STATUS; _para2:Pbyte; _para3:Pbyte; _para4:smallint; _para5:smallint;_para6:smallint; _para7:PISC_BLOB_DESC):ISC_STATUS; gdsdecl;
  45. isc_cancel_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; gdsdecl;
  46. isc_cancel_events : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:PISC_LONG):ISC_STATUS; gdsdecl;
  47. isc_close_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle):ISC_STATUS; gdsdecl;
  48. isc_commit_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; gdsdecl;
  49. isc_commit_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; gdsdecl;
  50. isc_create_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; gdsdecl;
  51. 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; gdsdecl;
  52. isc_create_database : function (_para1:PISC_STATUS; _para2:smallint; _para3:Pchar; _para4:Pisc_db_handle; _para5:smallint;_para6:Pchar; _para7:smallint):ISC_STATUS; gdsdecl;
  53. isc_database_info : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; gdsdecl;
  54. isc_decode_date : procedure (_para1:PISC_QUAD; _para2:pointer); gdsdecl;
  55. isc_decode_sql_date : procedure (_para1:PISC_DATE; _para2:pointer); gdsdecl;
  56. isc_decode_sql_time : procedure (_para1:PISC_TIME; _para2:pointer); gdsdecl;
  57. isc_decode_timestamp : procedure (_para1:PISC_TIMESTAMP; _para2:pointer); gdsdecl;
  58. isc_detach_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; gdsdecl;
  59. isc_drop_database : function (_para1:PISC_STATUS; _para2:Pisc_db_handle):ISC_STATUS; gdsdecl;
  60. isc_dsql_allocate_statement : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; gdsdecl;
  61. isc_dsql_alloc_statement2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_stmt_handle):ISC_STATUS; gdsdecl;
  62. isc_dsql_describe : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  63. isc_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  64. 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; gdsdecl;
  65. isc_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA):ISC_STATUS; gdsdecl;
  66. isc_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pisc_stmt_handle; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; gdsdecl;
  67. 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; gdsdecl;
  68. isc_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  69. isc_dsql_finish : function (_para1:Pisc_db_handle):ISC_STATUS; gdsdecl;
  70. isc_dsql_free_statement : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word):ISC_STATUS; gdsdecl;
  71. isc_dsql_insert : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  72. 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; gdsdecl;
  73. isc_dsql_set_cursor_name : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:Pchar; _para4:word):ISC_STATUS; gdsdecl;
  74. isc_dsql_sql_info : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; gdsdecl;
  75. isc_encode_date : procedure (_para1:pointer; _para2:PISC_QUAD); gdsdecl;
  76. isc_encode_sql_date : procedure (_para1:pointer; _para2:PISC_DATE); gdsdecl;
  77. isc_encode_sql_time : procedure (_para1:pointer; _para2:PISC_TIME); gdsdecl;
  78. isc_encode_timestamp : procedure (_para1:pointer; _para2:PISC_TIMESTAMP); gdsdecl;
  79. isc_event_block : function (_para1:PPchar; _para2:PPchar; _para3:word; args:array of const):ISC_LONG; cdecl;
  80. {!!MVC
  81. void isc_event_counts (unsigned ISC_LONG ,
  82. short,
  83. char ,
  84. char ); gdsdecl; external gdslib;
  85. !!MVC }
  86. isc_expand_dpb : procedure (_para1:PPchar; _para2:Psmallint; args:array of const); cdecl;
  87. isc_modify_dpb : function (_para1:PPchar; _para2:Psmallint; _para3:word; _para4:Pchar; _para5:smallint):longint; gdsdecl;
  88. isc_free : function (_para1:Pchar):ISC_LONG; gdsdecl;
  89. isc_get_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:Pword; _para4:word; _para5:Pchar):ISC_STATUS; gdsdecl;
  90. 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; gdsdecl;
  91. isc_interprete : function (_para1:Pchar; _para2:PPISC_STATUS):ISC_STATUS; gdsdecl;
  92. isc_open_blob : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_blob_handle; _para5:PISC_QUAD):ISC_STATUS; gdsdecl;
  93. 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; gdsdecl;
  94. isc_prepare_transaction2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar):ISC_STATUS; gdsdecl;
  95. isc_print_sqlerror : procedure (_para1:smallint; _para2:PISC_STATUS); gdsdecl;
  96. isc_print_status : function (_para1:PISC_STATUS):ISC_STATUS; gdsdecl;
  97. isc_put_segment : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:word; _para4:Pchar):ISC_STATUS; gdsdecl;
  98. 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; gdsdecl;
  99. 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; gdsdecl;
  100. isc_rollback_retaining : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; gdsdecl;
  101. isc_rollback_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; gdsdecl;
  102. isc_start_multiple : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; gdsdecl;
  103. isc_start_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl;
  104. isc_sqlcode : function (_para1:PISC_STATUS):ISC_LONG; gdsdecl;
  105. isc_sql_interprete : procedure (_para1:smallint; _para2:Pchar; _para3:smallint); gdsdecl;
  106. isc_transaction_info : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; gdsdecl;
  107. 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; gdsdecl;
  108. isc_vax_integer : function (_para1:Pchar; _para2:smallint):ISC_LONG; gdsdecl;
  109. isc_portable_integer : function (_para1:Pbyte; _para2:smallint):ISC_INT64; gdsdecl;
  110. { }
  111. { Security Functions }
  112. { }
  113. isc_add_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; gdsdecl;
  114. isc_delete_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; gdsdecl;
  115. isc_modify_user : function (_para1:PISC_STATUS; _para2:PUSER_SEC_DATA):longint; gdsdecl;
  116. { }
  117. { Other OSRI functions }
  118. { }
  119. isc_compile_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  120. isc_compile_request2 : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_req_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  121. isc_ddl : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  122. isc_prepare_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle):ISC_STATUS; gdsdecl;
  123. isc_receive : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; gdsdecl;
  124. isc_reconnect_transaction : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:smallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  125. isc_release_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; gdsdecl;
  126. isc_request_info : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:Pchar;_para6:smallint; _para7:Pchar):ISC_STATUS; gdsdecl;
  127. isc_seek_blob : function (_para1:PISC_STATUS; _para2:Pisc_blob_handle; _para3:smallint; _para4:ISC_LONG; _para5:PISC_LONG):ISC_STATUS; gdsdecl;
  128. isc_send : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:smallint; _para4:smallint; _para5:pointer;_para6:smallint):ISC_STATUS; gdsdecl;
  129. 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; gdsdecl;
  130. isc_start_request : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Pisc_tr_handle; _para4:smallint):ISC_STATUS; gdsdecl;
  131. isc_unwind_request : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint):ISC_STATUS; gdsdecl;
  132. isc_wait_for_event : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:smallint; _para4:Pchar; _para5:Pchar):ISC_STATUS; gdsdecl;
  133. { }
  134. { Other Sql functions }
  135. { }
  136. isc_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; gdsdecl;
  137. isc_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; gdsdecl;
  138. isc_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; gdsdecl;
  139. isc_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; gdsdecl;
  140. isc_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  141. isc_execute_immediate : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  142. isc_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:PXSQLDA):ISC_STATUS; gdsdecl;
  143. isc_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  144. isc_prepare : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pchar; _para5:Psmallint;_para6:Pchar; _para7:PXSQLDA):ISC_STATUS; gdsdecl;
  145. { }
  146. { Other Dynamic sql functions }
  147. { }
  148. 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; gdsdecl;
  149. 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; gdsdecl;
  150. 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; gdsdecl;
  151. 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; gdsdecl;
  152. isc_dsql_fetch_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; gdsdecl;
  153. isc_dsql_insert_m : function (_para1:PISC_STATUS; _para2:Pisc_stmt_handle; _para3:word; _para4:Pchar; _para5:word;_para6:word; _para7:Pchar):ISC_STATUS; gdsdecl;
  154. 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; gdsdecl;
  155. isc_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; gdsdecl;
  156. isc_embed_dsql_close : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; gdsdecl;
  157. isc_embed_dsql_declare : function (_para1:PISC_STATUS; _para2:Pchar; _para3:Pchar):ISC_STATUS; gdsdecl;
  158. isc_embed_dsql_describe : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  159. isc_embed_dsql_describe_bind : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  160. isc_embed_dsql_execute : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; gdsdecl;
  161. isc_embed_dsql_execute2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; gdsdecl;
  162. 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; gdsdecl;
  163. isc_embed_dsql_fetch : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  164. isc_embed_dsql_open : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA):ISC_STATUS; gdsdecl;
  165. isc_embed_dsql_open2 : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:Pchar; _para4:word; _para5:PXSQLDA;_para6:PXSQLDA):ISC_STATUS; gdsdecl;
  166. isc_embed_dsql_insert : function (_para1:PISC_STATUS; _para2:Pchar; _para3:word; _para4:PXSQLDA):ISC_STATUS; gdsdecl;
  167. 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; gdsdecl;
  168. isc_embed_dsql_release : function (_para1:PISC_STATUS; _para2:Pchar):ISC_STATUS; gdsdecl;
  169. { }
  170. { Other Blob functions }
  171. { }
  172. BLOB_open : function (_para1:isc_blob_handle; _para2:Pchar; _para3:longint):PBSTREAM; gdsdecl;
  173. BLOB_put : function (_para1:char; _para2:PBSTREAM):longint; gdsdecl;
  174. BLOB_close : function (_para1:PBSTREAM):longint; gdsdecl;
  175. BLOB_get : function (_para1:PBSTREAM):longint; gdsdecl;
  176. BLOB_display : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  177. BLOB_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  178. BLOB_edit : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  179. BLOB_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  180. BLOB_text_dump : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  181. BLOB_text_load : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):longint; gdsdecl;
  182. Bopen : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar):PBSTREAM; gdsdecl;
  183. {$IFDEF Unix}
  184. Bopen2 : function (_para1:PISC_QUAD; _para2:isc_db_handle; _para3:isc_tr_handle; _para4:Pchar; _para5:word):PBSTREAM; gdsdecl;
  185. {$ENDIF}
  186. { }
  187. { Other Misc functions }
  188. { }
  189. isc_ftof : function (_para1:Pchar; _para2:word; _para3:Pchar; _para4:word):ISC_LONG; gdsdecl;
  190. isc_print_blr : function (_para1:Pchar; _para2:isc_callback; _para3:pointer; _para4:smallint):ISC_STATUS; gdsdecl;
  191. isc_set_debug : procedure (_para1:longint); gdsdecl;
  192. isc_qtoq : procedure (_para1:PISC_QUAD; _para2:PISC_QUAD); gdsdecl;
  193. isc_vtof : procedure (_para1:Pchar; _para2:Pchar; _para3:word); gdsdecl;
  194. isc_vtov : procedure (_para1:Pchar; _para2:Pchar; _para3:smallint); gdsdecl;
  195. isc_version : function (_para1:Pisc_db_handle; _para2:isc_callback; _para3:pointer):longint; gdsdecl;
  196. {$IFDEF Unix}
  197. isc_reset_fpe : function (_para1:word):ISC_LONG; gdsdecl;
  198. {$ENDIF}
  199. { }
  200. { Service manager functions }
  201. { }
  202. (*!!MVC
  203. #define ADD_SPB_LENGTH(p, length) { (p)++ = (length); \
  204. (p)++ = (length) >> 8;}
  205. #define ADD_SPB_NUMERIC(p, data) { (p)++ = (data); \
  206. (p)++ = (data) >> 8; \
  207. (p)++ = (data) >> 16; \
  208. (p)++ = (data) >> 24;}
  209. !!MVC *)
  210. isc_service_attach : function (_para1:PISC_STATUS; _para2:word; _para3:Pchar; _para4:Pisc_svc_handle; _para5:word;_para6:Pchar):ISC_STATUS; gdsdecl;
  211. isc_service_detach : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; gdsdecl;
  212. 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; gdsdecl;
  213. isc_service_start : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; gdsdecl;
  214. { }
  215. { Forms functions }
  216. { }
  217. {$IFDEF Unix}
  218. isc_compile_map : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  219. isc_compile_menu : function (_para1:PISC_STATUS; _para2:Pisc_form_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  220. isc_compile_sub_map : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  221. isc_create_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Psmallint; _para4:Pchar; _para5:Psmallint;_para6:Psmallint):ISC_STATUS; gdsdecl;
  222. isc_delete_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; gdsdecl;
  223. 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; gdsdecl;
  224. 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; gdsdecl;
  225. isc_form_delete : function (_para1:PISC_STATUS; _para2:Pisc_form_handle):ISC_STATUS; gdsdecl;
  226. isc_form_fetch : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; gdsdecl;
  227. isc_form_insert : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:Pisc_req_handle; _para5:Pbyte):ISC_STATUS; gdsdecl;
  228. isc_get_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG;_para6:Psmallint):ISC_STATUS; gdsdecl;
  229. isc_initialize_menu : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; gdsdecl;
  230. isc_menu : function (_para1:PISC_STATUS; _para2:Pisc_win_handle; _para3:Pisc_req_handle; _para4:Psmallint; _para5:Pchar):ISC_STATUS; gdsdecl;
  231. 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; gdsdecl;
  232. isc_pop_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; gdsdecl;
  233. isc_put_entree : function (_para1:PISC_STATUS; _para2:Pisc_req_handle; _para3:Psmallint; _para4:Pchar; _para5:PISC_LONG):ISC_STATUS; gdsdecl;
  234. isc_reset_form : function (_para1:PISC_STATUS; _para2:Pisc_req_handle):ISC_STATUS; gdsdecl;
  235. isc_suspend_window : function (_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; gdsdecl;
  236. {$ENDIF}
  237. { isc_attach_database : function : ISC_STATUS; gdsdecl;
  238. isc_array_gen_sdl : function : ISC_STATUS; gdsdecl;
  239. isc_array_get_slice : function : ISC_STATUS; gdsdecl;
  240. isc_array_lookup_bounds : function : ISC_STATUS; gdsdecl;
  241. isc_array_lookup_desc : function : ISC_STATUS; gdsdecl;
  242. isc_array_set_desc : function : ISC_STATUS; gdsdecl;
  243. isc_array_put_slice : function : ISC_STATUS; gdsdecl;
  244. isc_blob_gen_bpb : function : ISC_STATUS; gdsdecl;
  245. isc_blob_info : function : ISC_STATUS; gdsdecl;
  246. isc_blob_lookup_desc : function : ISC_STATUS; gdsdecl;
  247. isc_blob_set_desc : function : ISC_STATUS; gdsdecl;
  248. isc_cancel_blob : function : ISC_STATUS; gdsdecl;
  249. isc_cancel_events : function : ISC_STATUS; gdsdecl;
  250. isc_close_blob : function : ISC_STATUS; gdsdecl;
  251. isc_commit_retaining : function : ISC_STATUS; gdsdecl;
  252. isc_commit_transaction : function : ISC_STATUS; gdsdecl;
  253. isc_compile_request : function : ISC_STATUS; gdsdecl;
  254. isc_compile_request2 : function : ISC_STATUS; gdsdecl;
  255. isc_create_blob : function : ISC_STATUS; gdsdecl;
  256. isc_create_blob2 : function : ISC_STATUS; gdsdecl;
  257. isc_create_database : function : ISC_STATUS; gdsdecl;
  258. isc_database_info : function : ISC_STATUS; gdsdecl;
  259. isc_ddl : function : ISC_STATUS; gdsdecl;
  260. isc_decode_date : procedure; gdsdecl;
  261. isc_decode_sql_date : procedure; gdsdecl;
  262. isc_decode_sql_time : procedure; gdsdecl;
  263. isc_decode_timestamp : procedure; gdsdecl;
  264. isc_detach_database : function : ISC_STATUS; gdsdecl;
  265. isc_drop_database : function : ISC_STATUS; gdsdecl;
  266. isc_encode_date : procedure; gdsdecl;
  267. isc_encode_sql_date : procedure; gdsdecl;
  268. isc_encode_sql_time : procedure; gdsdecl;
  269. isc_encode_timestamp : procedure; gdsdecl;
  270. isc_event_block : function : ISC_LONG; cdecl;
  271. isc_event_counts : procedure; gdsdecl;
  272. isc_expand_dpb : procedure; cdecl;
  273. isc_modify_dpb : function : longint; gdsdecl;
  274. isc_free : function : ISC_LONG; gdsdecl;
  275. isc_get_segment : function : ISC_STATUS; gdsdecl;
  276. isc_get_slice : function : ISC_STATUS; gdsdecl;
  277. isc_interprete : function : ISC_STATUS; gdsdecl;
  278. isc_open_blob : function : ISC_STATUS; gdsdecl;
  279. isc_open_blob2 : function : ISC_STATUS; gdsdecl;
  280. isc_prepare_transaction : function : ISC_STATUS; gdsdecl;
  281. isc_prepare_transaction2 : function : ISC_STATUS; gdsdecl;
  282. isc_print_sqlerror : procedure; gdsdecl;
  283. isc_print_status : function : ISC_STATUS; gdsdecl;
  284. isc_put_segment : function : ISC_STATUS; gdsdecl;
  285. isc_put_slice : function : ISC_STATUS; gdsdecl;
  286. isc_que_events : function : ISC_STATUS; gdsdecl;
  287. isc_receive : function :ISC_STATUS; gdsdecl;
  288. isc_reconnect_transaction : function :ISC_STATUS; gdsdecl;
  289. isc_release_request : function :ISC_STATUS; gdsdecl;
  290. isc_request_info : function :ISC_STATUS; gdsdecl;}
  291. {$IFDEF Unix}
  292. // isc_reset_fpe : function :ISC_LONG; gdsdecl;
  293. {$ENDIF}
  294. { isc_rollback_transaction : function :ISC_STATUS; gdsdecl;
  295. isc_rollback_retaining : function :ISC_STATUS; gdsdecl;
  296. isc_seek_blob : function :ISC_STATUS; gdsdecl;
  297. isc_send : function :ISC_STATUS; gdsdecl;
  298. isc_service_attach : function :ISC_STATUS; gdsdecl;
  299. isc_service_detach : function :ISC_STATUS; gdsdecl;
  300. isc_service_query : function :ISC_STATUS; gdsdecl;
  301. isc_service_start : function :ISC_STATUS; gdsdecl;
  302. isc_start_and_send : function :ISC_STATUS; gdsdecl;
  303. isc_start_multiple : function :ISC_STATUS; gdsdecl;
  304. isc_start_request : function :ISC_STATUS; gdsdecl;
  305. isc_start_transaction : function :ISC_STATUS; cdecl;
  306. isc_sqlcode : function :ISC_LONG; gdsdecl;
  307. isc_transaction_info : function :ISC_STATUS; gdsdecl;
  308. isc_transact_request : function :ISC_STATUS; gdsdecl;
  309. isc_unwind_request : function :ISC_STATUS; gdsdecl;
  310. isc_wait_for_event : function :ISC_STATUS; gdsdecl;
  311. isc_ftof : function :ISC_LONG; gdsdecl;
  312. isc_print_blr : function :ISC_STATUS; gdsdecl;
  313. isc_set_debug : procedure; gdsdecl;
  314. isc_qtoq : procedure; gdsdecl;
  315. isc_vax_integer : function :ISC_LONG; gdsdecl;
  316. isc_vtof : procedure; gdsdecl;
  317. isc_vtov : procedure; gdsdecl;
  318. isc_version : function :longint; gdsdecl;}
  319. { }
  320. { Blob functions }
  321. { }
  322. // Bopen : function :PBSTREAM; gdsdecl;
  323. // BLOB_open : function :PBSTREAM; gdsdecl;
  324. {$IFDEF Unix}
  325. // Bopen2 : function :PBSTREAM; gdsdecl;
  326. {$ENDIF}
  327. Procedure InitialiseIBase60;
  328. Procedure ReleaseIBase60;
  329. var IBaseLibraryHandle : TLibHandle;
  330. implementation
  331. var RefCount : integer;
  332. Procedure InitialiseIBase60;
  333. begin
  334. inc(RefCount);
  335. if RefCount = 1 then
  336. begin
  337. IBaseLibraryHandle := loadlibrary(fbclib);
  338. if IBaseLibraryHandle = nilhandle then
  339. begin
  340. IBaseLibraryHandle := loadlibrary(gdslib);
  341. if loadlibrary(gdslib) = nilhandle then
  342. begin
  343. RefCount := 0;
  344. Raise EInOutError.Create('Can not load Firebird or Interbase client. Is it installed? ('+gdslib+' or '+fbclib+')');
  345. end;
  346. end;
  347. pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database');
  348. pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl');
  349. pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice');
  350. pointer(isc_array_lookup_bounds) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_bounds');
  351. pointer(isc_array_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_desc');
  352. pointer(isc_array_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_set_desc');
  353. pointer(isc_array_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_put_slice');
  354. pointer(isc_blob_default_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_default_desc');
  355. pointer(isc_blob_gen_bpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_gen_bpb');
  356. pointer(isc_blob_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_info');
  357. pointer(isc_blob_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_lookup_desc');
  358. pointer(isc_blob_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_set_desc');
  359. pointer(isc_cancel_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_blob');
  360. pointer(isc_cancel_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_events');
  361. pointer(isc_close_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_close_blob');
  362. pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining');
  363. pointer(isc_commit_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_transaction');
  364. pointer(isc_create_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob');
  365. pointer(isc_create_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob2');
  366. pointer(isc_create_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_database');
  367. pointer(isc_database_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_database_info');
  368. pointer(isc_decode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_date');
  369. pointer(isc_decode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_date');
  370. pointer(isc_decode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_time');
  371. pointer(isc_decode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_timestamp');
  372. pointer(isc_detach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_detach_database');
  373. pointer(isc_drop_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_drop_database');
  374. pointer(isc_dsql_allocate_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_allocate_statement');
  375. pointer(isc_dsql_alloc_statement2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_alloc_statement2');
  376. pointer(isc_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe');
  377. pointer(isc_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_describe_bind');
  378. pointer(isc_dsql_exec_immed2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed2');
  379. pointer(isc_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute');
  380. pointer(isc_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2');
  381. pointer(isc_dsql_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate');
  382. pointer(isc_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch');
  383. pointer(isc_dsql_finish) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_finish');
  384. pointer(isc_dsql_free_statement) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_free_statement');
  385. pointer(isc_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert');
  386. pointer(isc_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare');
  387. pointer(isc_dsql_set_cursor_name) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_set_cursor_name');
  388. pointer(isc_dsql_sql_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_sql_info');
  389. pointer(isc_encode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_date');
  390. pointer(isc_encode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_date');
  391. pointer(isc_encode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_time');
  392. pointer(isc_encode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_timestamp');
  393. pointer(isc_event_block) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_block');
  394. pointer(isc_expand_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_expand_dpb');
  395. pointer(isc_modify_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_dpb');
  396. pointer(isc_free) := GetProcedureAddress(IBaseLibraryHandle,'isc_free');
  397. pointer(isc_get_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_segment');
  398. pointer(isc_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_slice');
  399. pointer(isc_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_interprete');
  400. pointer(isc_open_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob');
  401. pointer(isc_open_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob2');
  402. pointer(isc_prepare_transaction2) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction2');
  403. pointer(isc_print_sqlerror) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_sqlerror');
  404. pointer(isc_print_status) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_status');
  405. pointer(isc_put_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_segment');
  406. pointer(isc_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_slice');
  407. pointer(isc_que_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_que_events');
  408. pointer(isc_rollback_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_retaining');
  409. pointer(isc_rollback_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_transaction');
  410. pointer(isc_start_multiple) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_multiple');
  411. pointer(isc_start_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_transaction');
  412. pointer(isc_sqlcode) := GetProcedureAddress(IBaseLibraryHandle,'isc_sqlcode');
  413. pointer(isc_sql_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_sql_interprete');
  414. pointer(isc_transaction_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_transaction_info');
  415. pointer(isc_transact_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_transact_request');
  416. pointer(isc_vax_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_vax_integer');
  417. pointer(isc_portable_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_portable_integer');
  418. pointer(isc_add_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_add_user');
  419. pointer(isc_delete_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_user');
  420. pointer(isc_modify_user) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_user');
  421. pointer(isc_compile_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request');
  422. pointer(isc_compile_request2) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request2');
  423. pointer(isc_ddl) := GetProcedureAddress(IBaseLibraryHandle,'isc_ddl');
  424. pointer(isc_prepare_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction');
  425. pointer(isc_receive) := GetProcedureAddress(IBaseLibraryHandle,'isc_receive');
  426. pointer(isc_reconnect_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_reconnect_transaction');
  427. pointer(isc_release_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_release_request');
  428. pointer(isc_request_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_request_info');
  429. pointer(isc_seek_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_seek_blob');
  430. pointer(isc_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_send');
  431. pointer(isc_start_and_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_and_send');
  432. pointer(isc_start_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_request');
  433. pointer(isc_unwind_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_unwind_request');
  434. pointer(isc_wait_for_event) := GetProcedureAddress(IBaseLibraryHandle,'isc_wait_for_event');
  435. pointer(isc_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_close');
  436. pointer(isc_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_declare');
  437. pointer(isc_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe');
  438. pointer(isc_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_describe_bind');
  439. pointer(isc_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute');
  440. pointer(isc_execute_immediate) := GetProcedureAddress(IBaseLibraryHandle,'isc_execute_immediate');
  441. pointer(isc_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_fetch');
  442. pointer(isc_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_open');
  443. pointer(isc_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare');
  444. pointer(isc_dsql_execute_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_m');
  445. pointer(isc_dsql_execute2_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute2_m');
  446. pointer(isc_dsql_execute_immediate_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_execute_immediate_m');
  447. pointer(isc_dsql_exec_immed3_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_exec_immed3_m');
  448. pointer(isc_dsql_fetch_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_fetch_m');
  449. pointer(isc_dsql_insert_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_insert_m');
  450. pointer(isc_dsql_prepare_m) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_prepare_m');
  451. pointer(isc_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_dsql_release');
  452. pointer(isc_embed_dsql_close) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_close');
  453. pointer(isc_embed_dsql_declare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_declare');
  454. pointer(isc_embed_dsql_describe) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe');
  455. pointer(isc_embed_dsql_describe_bind) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_describe_bind');
  456. pointer(isc_embed_dsql_execute) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute');
  457. pointer(isc_embed_dsql_execute2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute2');
  458. pointer(isc_embed_dsql_execute_immed) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_execute_immed');
  459. pointer(isc_embed_dsql_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_fetch');
  460. pointer(isc_embed_dsql_open) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open');
  461. pointer(isc_embed_dsql_open2) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_open2');
  462. pointer(isc_embed_dsql_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_insert');
  463. pointer(isc_embed_dsql_prepare) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_prepare');
  464. pointer(isc_embed_dsql_release) := GetProcedureAddress(IBaseLibraryHandle,'isc_embed_dsql_release');
  465. pointer(BLOB_open) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_open');
  466. pointer(BLOB_put) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_put');
  467. pointer(BLOB_close) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_close');
  468. pointer(BLOB_get) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_get');
  469. pointer(BLOB_display) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_display');
  470. pointer(BLOB_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_dump');
  471. pointer(BLOB_edit) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_edit');
  472. pointer(BLOB_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_load');
  473. pointer(BLOB_text_dump) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_dump');
  474. pointer(BLOB_text_load) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_text_load');
  475. pointer(Bopen) := GetProcedureAddress(IBaseLibraryHandle,'Bopen');
  476. {$IFDEF Unix}
  477. pointer(Bopen2) := GetProcedureAddress(IBaseLibraryHandle,'Bopen2');
  478. {$ENDIF}
  479. pointer(isc_ftof) := GetProcedureAddress(IBaseLibraryHandle,'isc_ftof');
  480. pointer(isc_print_blr) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_blr');
  481. pointer(isc_set_debug) := GetProcedureAddress(IBaseLibraryHandle,'isc_set_debug');
  482. pointer(isc_qtoq) := GetProcedureAddress(IBaseLibraryHandle,'isc_qtoq');
  483. pointer(isc_vtof) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtof');
  484. pointer(isc_vtov) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtov');
  485. pointer(isc_version) := GetProcedureAddress(IBaseLibraryHandle,'isc_version');
  486. {$IFDEF Unix}
  487. pointer(isc_reset_fpe) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_fpe');
  488. {$ENDIF}
  489. pointer(isc_service_attach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_attach');
  490. pointer(isc_service_detach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_detach');
  491. pointer(isc_service_query) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_query');
  492. pointer(isc_service_start) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_start');
  493. {$IFDEF Unix}
  494. pointer(isc_compile_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_map');
  495. pointer(isc_compile_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_menu');
  496. pointer(isc_compile_sub_map) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_sub_map');
  497. pointer(isc_create_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_window');
  498. pointer(isc_delete_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_delete_window');
  499. pointer(isc_drive_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_form');
  500. pointer(isc_drive_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_drive_menu');
  501. pointer(isc_form_delete) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_delete');
  502. pointer(isc_form_fetch) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_fetch');
  503. pointer(isc_form_insert) := GetProcedureAddress(IBaseLibraryHandle,'isc_form_insert');
  504. pointer(isc_get_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_entree');
  505. pointer(isc_initialize_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_initialize_menu');
  506. pointer(isc_menu) := GetProcedureAddress(IBaseLibraryHandle,'isc_menu');
  507. pointer(isc_load_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_load_form');
  508. pointer(isc_pop_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_pop_window');
  509. pointer(isc_put_entree) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_entree');
  510. pointer(isc_reset_form) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_form');
  511. pointer(isc_suspend_window) := GetProcedureAddress(IBaseLibraryHandle,'isc_suspend_window');
  512. {$ENDIF}
  513. pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database');
  514. pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl');
  515. pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice');
  516. pointer(isc_array_lookup_bounds) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_bounds');
  517. pointer(isc_array_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_lookup_desc');
  518. pointer(isc_array_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_set_desc');
  519. pointer(isc_array_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_put_slice');
  520. pointer(isc_blob_gen_bpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_gen_bpb');
  521. pointer(isc_blob_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_info');
  522. pointer(isc_blob_lookup_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_lookup_desc');
  523. pointer(isc_blob_set_desc) := GetProcedureAddress(IBaseLibraryHandle,'isc_blob_set_desc');
  524. pointer(isc_cancel_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_blob');
  525. pointer(isc_cancel_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_cancel_events');
  526. pointer(isc_close_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_close_blob');
  527. pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining');
  528. pointer(isc_commit_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_retaining');
  529. pointer(isc_commit_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_commit_transaction');
  530. pointer(isc_compile_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request');
  531. pointer(isc_compile_request2) := GetProcedureAddress(IBaseLibraryHandle,'isc_compile_request2');
  532. pointer(isc_create_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob');
  533. pointer(isc_create_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_blob2');
  534. pointer(isc_create_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_create_database');
  535. pointer(isc_database_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_database_info');
  536. pointer(isc_ddl) := GetProcedureAddress(IBaseLibraryHandle,'isc_ddl');
  537. pointer(isc_decode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_date');
  538. pointer(isc_decode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_date');
  539. pointer(isc_decode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_sql_time');
  540. pointer(isc_decode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_decode_timestamp');
  541. pointer(isc_detach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_detach_database');
  542. pointer(isc_drop_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_drop_database');
  543. pointer(isc_encode_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_date');
  544. pointer(isc_encode_sql_date) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_date');
  545. pointer(isc_encode_sql_time) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_sql_time');
  546. pointer(isc_encode_timestamp) := GetProcedureAddress(IBaseLibraryHandle,'isc_encode_timestamp');
  547. pointer(isc_event_block) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_block');
  548. // pointer(isc_event_counts) := GetProcedureAddress(IBaseLibraryHandle,'isc_event_counts');
  549. pointer(isc_expand_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_expand_dpb');
  550. pointer(isc_modify_dpb) := GetProcedureAddress(IBaseLibraryHandle,'isc_modify_dpb');
  551. pointer(isc_free) := GetProcedureAddress(IBaseLibraryHandle,'isc_free');
  552. pointer(isc_get_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_segment');
  553. pointer(isc_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_get_slice');
  554. pointer(isc_interprete) := GetProcedureAddress(IBaseLibraryHandle,'isc_interprete');
  555. pointer(isc_open_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob');
  556. pointer(isc_open_blob2) := GetProcedureAddress(IBaseLibraryHandle,'isc_open_blob2');
  557. pointer(isc_prepare_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction');
  558. pointer(isc_prepare_transaction2) := GetProcedureAddress(IBaseLibraryHandle,'isc_prepare_transaction2');
  559. pointer(isc_print_sqlerror) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_sqlerror');
  560. pointer(isc_print_status) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_status');
  561. pointer(isc_put_segment) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_segment');
  562. pointer(isc_put_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_put_slice');
  563. pointer(isc_que_events) := GetProcedureAddress(IBaseLibraryHandle,'isc_que_events');
  564. pointer(isc_receive) := GetProcedureAddress(IBaseLibraryHandle,'isc_receive');
  565. pointer(isc_reconnect_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_reconnect_transaction');
  566. pointer(isc_release_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_release_request');
  567. pointer(isc_request_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_request_info');
  568. {$IFDEF Unix}
  569. pointer(isc_reset_fpe) := GetProcedureAddress(IBaseLibraryHandle,'isc_reset_fpe');
  570. {$ENDIF}
  571. pointer(isc_rollback_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_transaction');
  572. pointer(isc_rollback_retaining) := GetProcedureAddress(IBaseLibraryHandle,'isc_rollback_retaining');
  573. pointer(isc_seek_blob) := GetProcedureAddress(IBaseLibraryHandle,'isc_seek_blob');
  574. pointer(isc_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_send');
  575. pointer(isc_service_attach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_attach');
  576. pointer(isc_service_detach) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_detach');
  577. pointer(isc_service_query) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_query');
  578. pointer(isc_service_start) := GetProcedureAddress(IBaseLibraryHandle,'isc_service_start');
  579. pointer(isc_start_and_send) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_and_send');
  580. pointer(isc_start_multiple) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_multiple');
  581. pointer(isc_start_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_request');
  582. pointer(isc_start_transaction) := GetProcedureAddress(IBaseLibraryHandle,'isc_start_transaction');
  583. pointer(isc_sqlcode) := GetProcedureAddress(IBaseLibraryHandle,'isc_sqlcode');
  584. pointer(isc_transaction_info) := GetProcedureAddress(IBaseLibraryHandle,'isc_transaction_info');
  585. pointer(isc_transact_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_transact_request');
  586. pointer(isc_unwind_request) := GetProcedureAddress(IBaseLibraryHandle,'isc_unwind_request');
  587. pointer(isc_wait_for_event) := GetProcedureAddress(IBaseLibraryHandle,'isc_wait_for_event');
  588. pointer(isc_ftof) := GetProcedureAddress(IBaseLibraryHandle,'isc_ftof');
  589. pointer(isc_print_blr) := GetProcedureAddress(IBaseLibraryHandle,'isc_print_blr');
  590. pointer(isc_set_debug) := GetProcedureAddress(IBaseLibraryHandle,'isc_set_debug');
  591. pointer(isc_qtoq) := GetProcedureAddress(IBaseLibraryHandle,'isc_qtoq');
  592. pointer(isc_vax_integer) := GetProcedureAddress(IBaseLibraryHandle,'isc_vax_integer');
  593. pointer(isc_vtof) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtof');
  594. pointer(isc_vtov) := GetProcedureAddress(IBaseLibraryHandle,'isc_vtov');
  595. pointer(isc_version) := GetProcedureAddress(IBaseLibraryHandle,'isc_version');
  596. pointer(Bopen) := GetProcedureAddress(IBaseLibraryHandle,'Bopen');
  597. pointer(BLOB_open) := GetProcedureAddress(IBaseLibraryHandle,'BLOB_open');
  598. {$IFDEF Unix}
  599. pointer(Bopen2) := GetProcedureAddress(IBaseLibraryHandle,'Bopen2');
  600. {$ENDIF}
  601. end;
  602. end;
  603. Procedure ReleaseIBase60;
  604. begin
  605. if RefCount > 0 then dec(RefCount);
  606. if RefCount = 0 then
  607. begin
  608. if not UnloadLibrary(IBaseLibraryHandle) then inc(RefCount);
  609. end;
  610. end;
  611. // This function is also defined in ibase60!
  612. function XSQLDA_LENGTH(n: Integer): Integer;
  613. begin
  614. Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR);
  615. end;
  616. end.