/Gedemin/IBX/IBIntf.pas

http://gedemin.googlecode.com/ · Pascal · 668 lines · 561 code · 73 blank · 34 comment · 19 complexity · c44068271c87d0f78c4642addbefd380 MD5 · raw file

  1. {************************************************************************}
  2. { }
  3. { Borland Delphi Visual Component Library }
  4. { InterBase Express core components }
  5. { }
  6. { Copyright (c) 1998-2001 Borland Software Corporation }
  7. { }
  8. { InterBase Express is based in part on the product }
  9. { Free IB Components, written by Gregory H. Deatz for }
  10. { Hoagland, Longo, Moran, Dunst & Doukas Company. }
  11. { Free IB Components is used under license. }
  12. { }
  13. { The contents of this file are subject to the InterBase }
  14. { Public License Version 1.0 (the "License"); you may not }
  15. { use this file except in compliance with the License. You may obtain }
  16. { a copy of the License at http://www.borland.com/interbase/IPL.html }
  17. { Software distributed under the License is distributed on }
  18. { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
  19. { express or implied. See the License for the specific language }
  20. { governing rights and limitations under the License. }
  21. { The Original Code was created by InterBase Software Corporation }
  22. { and its successors. }
  23. { Portions created by Borland Software Corporation are Copyright }
  24. { (C) Borland Software Corporation. All Rights Reserved. }
  25. { Contributor(s): Jeff Overcash }
  26. { }
  27. {************************************************************************}
  28. unit IBIntf;
  29. interface
  30. uses Windows, IBHeader, IBInstallHeader, IBExternals;
  31. var
  32. BLOB_get: TBLOB_get;
  33. BLOB_put: TBLOB_put;
  34. isc_sqlcode: Tisc_sqlcode;
  35. isc_sql_interprete: Tisc_sql_interprete;
  36. isc_interprete: Tisc_interprete;
  37. isc_vax_integer: Tisc_vax_integer;
  38. isc_blob_info: Tisc_blob_info;
  39. isc_open_blob2: Tisc_open_blob2;
  40. isc_close_blob: Tisc_close_blob;
  41. isc_get_segment: Tisc_get_segment;
  42. isc_put_segment: Tisc_put_segment;
  43. isc_create_blob2: Tisc_create_blob2;
  44. isc_service_attach: Tisc_service_attach;
  45. isc_service_detach: Tisc_service_detach;
  46. isc_service_query: Tisc_service_query;
  47. isc_service_start: Tisc_service_start;
  48. isc_decode_date: Tisc_decode_date;
  49. isc_decode_sql_date: Tisc_decode_sql_date;
  50. isc_decode_sql_time: Tisc_decode_sql_time;
  51. isc_decode_timestamp: Tisc_decode_timestamp;
  52. isc_encode_date: Tisc_encode_date;
  53. isc_encode_sql_date: Tisc_encode_sql_date;
  54. isc_encode_sql_time: Tisc_encode_sql_time;
  55. isc_encode_timestamp: Tisc_encode_timestamp;
  56. isc_dsql_free_statement: Tisc_dsql_free_statement;
  57. isc_dsql_execute2: Tisc_dsql_execute2;
  58. isc_dsql_execute: Tisc_dsql_execute;
  59. isc_dsql_set_cursor_name: Tisc_dsql_set_cursor_name;
  60. isc_dsql_fetch: Tisc_dsql_fetch;
  61. isc_dsql_sql_info: Tisc_dsql_sql_info;
  62. isc_dsql_alloc_statement2: Tisc_dsql_alloc_statement2;
  63. isc_dsql_prepare: Tisc_dsql_prepare;
  64. isc_dsql_describe_bind: Tisc_dsql_describe_bind;
  65. isc_dsql_describe: Tisc_dsql_describe;
  66. isc_dsql_execute_immediate: Tisc_dsql_execute_immediate;
  67. isc_drop_database: Tisc_drop_database;
  68. isc_detach_database: Tisc_detach_database;
  69. isc_attach_database: Tisc_attach_database;
  70. isc_database_info: Tisc_database_info;
  71. isc_start_multiple: Tisc_start_multiple;
  72. isc_commit_transaction: Tisc_commit_transaction;
  73. isc_commit_retaining: Tisc_commit_retaining;
  74. isc_rollback_transaction: Tisc_rollback_transaction;
  75. isc_rollback_retaining: Tisc_rollback_retaining;
  76. isc_cancel_events: Tisc_cancel_events;
  77. isc_que_events: Tisc_que_events;
  78. isc_event_counts: Tisc_event_counts;
  79. isc_event_block: Tisc_event_block;
  80. isc_free: Tisc_free;
  81. isc_add_user : Tisc_add_user;
  82. isc_delete_user: Tisc_delete_user;
  83. isc_modify_user: Tisc_modify_user;
  84. isc_prepare_transaction : Tisc_prepare_transaction;
  85. isc_prepare_transaction2 : Tisc_prepare_transaction2;
  86. isc_install_clear_options: Tisc_install_clear_options;
  87. isc_install_execute: Tisc_install_execute;
  88. isc_install_get_info: Tisc_install_get_info;
  89. isc_install_get_message: Tisc_install_get_message;
  90. isc_install_load_external_text: Tisc_install_load_external_text;
  91. isc_install_precheck: Tisc_install_precheck;
  92. isc_install_set_option: Tisc_install_set_option;
  93. isc_uninstall_execute: Tisc_uninstall_execute;
  94. isc_uninstall_precheck: Tisc_uninstall_precheck;
  95. isc_install_unset_option: Tisc_install_unset_option;
  96. fb_cancel_operation: Tfb_cancel_operation;
  97. { Library Initialization }
  98. procedure LoadIBLibrary;
  99. procedure FreeIBLibrary;
  100. procedure LoadIBInstallLibrary;
  101. procedure FreeIBInstallLibrary;
  102. function TryIBLoad: Boolean;
  103. procedure CheckIBLoaded;
  104. function GetIBClientVersion: Integer;
  105. procedure CheckIBInstallLoaded;
  106. { Stubs for 6.0 only functions }
  107. function isc_rollback_retaining_stub(status_vector : PISC_STATUS;
  108. tran_handle : PISC_TR_HANDLE):
  109. ISC_STATUS; stdcall;
  110. function isc_service_attach_stub(status_vector : PISC_STATUS;
  111. isc_arg2 : UShort;
  112. isc_arg3 : PChar;
  113. service_handle : PISC_SVC_HANDLE;
  114. isc_arg5 : UShort;
  115. isc_arg6 : PChar):
  116. ISC_STATUS; stdcall;
  117. function isc_service_detach_stub(status_vector : PISC_STATUS;
  118. service_handle : PISC_SVC_HANDLE):
  119. ISC_STATUS; stdcall;
  120. function isc_service_query_stub(status_vector : PISC_STATUS;
  121. service_handle : PISC_SVC_HANDLE;
  122. recv_handle : PISC_SVC_HANDLE;
  123. isc_arg4 : UShort;
  124. isc_arg5 : PChar;
  125. isc_arg6 : UShort;
  126. isc_arg7 : PChar;
  127. isc_arg8 : UShort;
  128. isc_arg9 : PChar):
  129. ISC_STATUS; stdcall;
  130. function isc_service_start_stub(status_vector : PISC_STATUS;
  131. service_handle : PISC_SVC_HANDLE;
  132. recv_handle : PISC_SVC_HANDLE;
  133. isc_arg4 : UShort;
  134. isc_arg5 : PChar):
  135. ISC_STATUS; stdcall;
  136. procedure isc_encode_sql_date_stub(tm_date : PCTimeStructure;
  137. ib_date : PISC_DATE);
  138. stdcall;
  139. procedure isc_encode_sql_time_stub(tm_date : PCTimeStructure;
  140. ib_time : PISC_TIME);
  141. stdcall;
  142. procedure isc_encode_timestamp_stub(tm_date : PCTimeStructure;
  143. ib_timestamp : PISC_TIMESTAMP);
  144. stdcall;
  145. procedure isc_decode_sql_date_stub(ib_date : PISC_DATE;
  146. tm_date : PCTimeStructure);
  147. stdcall;
  148. procedure isc_decode_sql_time_stub(ib_time : PISC_TIME;
  149. tm_date : PCTimeStructure);
  150. stdcall;
  151. procedure isc_decode_timestamp_stub(ib_timestamp : PISC_TIMESTAMP;
  152. tm_date : PCTimeStructure);
  153. stdcall;
  154. { stubs for install functions }
  155. function isc_install_clear_options_stub(hOption: POPTIONS_HANDLE):MSG_NO; stdcall;
  156. function isc_install_execute_stub(hOption: OPTIONS_HANDLE;
  157. src_dir: TEXT;
  158. dest_dir: TEXT;
  159. status_func: FP_STATUS;
  160. status_data: pointer;
  161. error_func: FP_ERROR;
  162. error_data: pointer;
  163. uninstal_file_name: TEXT):MSG_NO; stdcall;
  164. function isc_install_get_info_stub(info_type :integer;
  165. option :OPT;
  166. info_buffer : Pointer;
  167. buf_len : Cardinal): MSG_NO; stdcall;
  168. function isc_install_get_message_stub(hOption: OPTIONS_HANDLE;
  169. message_no: MSG_NO;
  170. message_txt: Pointer;
  171. message_len: Cardinal):MSG_NO; stdcall;
  172. function isc_install_load_external_text_stub(msg_file_name: TEXT):MSG_NO; stdcall;
  173. function isc_install_precheck_stub(hOption: OPTIONS_HANDLE;
  174. src_dir: TEXT;
  175. dest_dir: TEXT):MSG_NO; stdcall;
  176. function isc_install_set_option_stub(hOption: POPTIONS_HANDLE;
  177. option: OPT):MSG_NO; stdcall;
  178. function isc_uninstall_execute_stub(uninstall_file_name: TEXT;
  179. status_func: FP_STATUS;
  180. status_data: pointer;
  181. error_func: FP_ERROR;
  182. error_data: pointer):MSG_NO; stdcall;
  183. function isc_uninstall_precheck_stub(uninstall_file_name: TEXT):MSG_NO; stdcall;
  184. function isc_install_unset_option_stub(hOption: POPTIONS_HANDLE;
  185. option: OPT):MSG_NO; stdcall;
  186. //!!!b
  187. function GetIBLibraryHandle: THandle;
  188. function GetIBLibraryName: String;
  189. procedure SetIBLibraryName(const AName: String);
  190. //!!!e
  191. implementation
  192. uses SysUtils, IB, IBXMLHeader, Forms;
  193. var
  194. IBLibrary: THandle;
  195. IBInstallLibrary: THandle;
  196. IBXMLLibrary : THandle;
  197. IBClientVersion: Integer;
  198. IBLibraryName: String;
  199. //!!!b
  200. function GetIBLibraryHandle: THandle;
  201. begin
  202. Result := IBLibrary;
  203. end;
  204. function GetIBLibraryName: String;
  205. begin
  206. Result := IBLibraryName;
  207. end;
  208. procedure SetIBLibraryName(const AName: String);
  209. begin
  210. FreeIBLibrary;
  211. IBLibraryName := AName;
  212. end;
  213. //!!!e
  214. procedure LoadIBLibrary;
  215. var
  216. CurLibrary : THandle;
  217. function TryGetProcAddr(ProcName: PChar): Pointer;
  218. begin
  219. Result := GetProcAddress(CurLibrary, ProcName);
  220. end;
  221. function GetProcAddr(ProcName: PChar): Pointer;
  222. begin
  223. Result := GetProcAddress(CurLibrary, ProcName);
  224. if not Assigned(Result) then
  225. RaiseLastWin32Error;
  226. end;
  227. begin
  228. Assert(IBLibrary <= HINSTANCE_ERROR);
  229. IBLibrary := LoadLibrary(PChar(IBLibraryName));
  230. if (IBLibrary > HINSTANCE_ERROR) then
  231. begin
  232. CurLibrary := IBLibrary;
  233. BLOB_get := GetProcAddr('BLOB_get'); {do not localize}
  234. BLOB_put := GetProcAddr('BLOB_put'); {do not localize}
  235. isc_sqlcode := GetProcAddr('isc_sqlcode'); {do not localize}
  236. isc_sql_interprete := GetProcAddr('isc_sql_interprete'); {do not localize}
  237. isc_interprete := GetProcAddr('isc_interprete'); {do not localize}
  238. isc_vax_integer := GetProcAddr('isc_vax_integer'); {do not localize}
  239. isc_blob_info := GetProcAddr('isc_blob_info'); {do not localize}
  240. isc_open_blob2 := GetProcAddr('isc_open_blob2'); {do not localize}
  241. isc_close_blob := GetProcAddr('isc_close_blob'); {do not localize}
  242. isc_get_segment := GetProcAddr('isc_get_segment'); {do not localize}
  243. isc_put_segment := GetProcAddr('isc_put_segment'); {do not localize}
  244. isc_create_blob2 := GetProcAddr('isc_create_blob2'); {do not localize}
  245. isc_decode_date := GetProcAddr('isc_decode_date'); {do not localize}
  246. isc_encode_date := GetProcAddr('isc_encode_date'); {do not localize}
  247. isc_dsql_free_statement := GetProcAddr('isc_dsql_free_statement'); {do not localize}
  248. isc_dsql_execute2 := GetProcAddr('isc_dsql_execute2'); {do not localize}
  249. isc_dsql_execute := GetProcAddr('isc_dsql_execute'); {do not localize}
  250. isc_dsql_set_cursor_name := GetProcAddr('isc_dsql_set_cursor_name'); {do not localize}
  251. isc_dsql_fetch := GetProcAddr('isc_dsql_fetch'); {do not localize}
  252. isc_dsql_sql_info := GetProcAddr('isc_dsql_sql_info'); {do not localize}
  253. isc_dsql_alloc_statement2 := GetProcAddr('isc_dsql_alloc_statement2'); {do not localize}
  254. isc_dsql_prepare := GetProcAddr('isc_dsql_prepare'); {do not localize}
  255. isc_dsql_describe_bind := GetProcAddr('isc_dsql_describe_bind'); {do not localize}
  256. isc_dsql_describe := GetProcAddr('isc_dsql_describe'); {do not localize}
  257. isc_dsql_execute_immediate := GetProcAddr('isc_dsql_execute_immediate'); {do not localize}
  258. isc_drop_database := GetProcAddr('isc_drop_database'); {do not localize}
  259. isc_detach_database := GetProcAddr('isc_detach_database'); {do not localize}
  260. isc_attach_database := GetProcAddr('isc_attach_database'); {do not localize}
  261. isc_database_info := GetProcAddr('isc_database_info'); {do not localize}
  262. isc_start_multiple := GetProcAddr('isc_start_multiple'); {do not localize}
  263. isc_commit_transaction := GetProcAddr('isc_commit_transaction'); {do not localize}
  264. isc_commit_retaining := GetProcAddr('isc_commit_retaining'); {do not localize}
  265. isc_rollback_transaction := GetProcAddr('isc_rollback_transaction'); {do not localize}
  266. isc_cancel_events := GetProcAddr('isc_cancel_events'); {do not localize}
  267. isc_que_events := GetProcAddr('isc_que_events'); {do not localize}
  268. isc_event_counts := GetProcAddr('isc_event_counts'); {do not localize}
  269. isc_event_block := GetProcAddr('isc_event_block'); {do not localize}
  270. isc_free := GetProcAddr('isc_free'); {do not localize}
  271. isc_add_user := GetProcAddr('isc_add_user'); {do not localize}
  272. isc_delete_user := GetProcAddr('isc_delete_user'); {do not localize}
  273. isc_modify_user := GetProcAddr('isc_modify_user'); {do not localize}
  274. isc_prepare_transaction := GetProcAddr('isc_prepare_transaction'); {do not localize}
  275. isc_prepare_transaction2 := GetProcAddr('isc_prepare_transaction2'); {do not localize}
  276. isc_rollback_retaining := TryGetProcAddr('isc_rollback_retaining'); {do not localize}
  277. if Assigned(isc_rollback_retaining) then
  278. begin
  279. IBClientVersion := 6;
  280. isc_service_attach := GetProcAddr('isc_service_attach'); {do not localize}
  281. isc_service_detach := GetProcAddr('isc_service_detach'); {do not localize}
  282. isc_service_query := GetProcAddr('isc_service_query'); {do not localize}
  283. isc_service_start := GetProcAddr('isc_service_start'); {do not localize}
  284. isc_decode_sql_date := GetProcAddr('isc_decode_sql_date'); {do not localize}
  285. isc_decode_sql_time := GetProcAddr('isc_decode_sql_time'); {do not localize}
  286. isc_decode_timestamp := GetProcAddr('isc_decode_timestamp'); {do not localize}
  287. isc_encode_sql_date := GetProcAddr('isc_encode_sql_date'); {do not localize}
  288. isc_encode_sql_time := GetProcAddr('isc_encode_sql_time'); {do not localize}
  289. isc_encode_timestamp := GetProcAddr('isc_encode_timestamp'); {do not localize}
  290. end else
  291. begin
  292. IBClientVersion := 5;
  293. isc_rollback_retaining := isc_rollback_retaining_stub;
  294. isc_service_attach := isc_service_attach_stub;
  295. isc_service_detach := isc_service_detach_stub;
  296. isc_service_query := isc_service_query_stub;
  297. isc_service_start := isc_service_start_stub;
  298. isc_decode_sql_date := isc_decode_sql_date_stub;
  299. isc_decode_sql_time := isc_decode_sql_time_stub;
  300. isc_decode_timestamp := isc_decode_timestamp_stub;
  301. isc_encode_sql_date := isc_encode_sql_date_stub;
  302. isc_encode_sql_time := isc_encode_sql_time_stub;
  303. isc_encode_timestamp := isc_encode_timestamp_stub;
  304. end;
  305. IBXMLLibrary := LoadLibrary(PChar(IBXML_DLL));
  306. if (IBXMLLibrary > HINSTANCE_ERROR) then
  307. begin
  308. CurLibrary := IBXMLLibrary;
  309. isc_dsql_xml_fetch := GetProcAddr('isc_dsql_xml_fetch'); {do not localize}
  310. isc_dsql_xml_fetch_all := GetProcAddr('isc_dsql_xml_fetch_all'); {do not localize}
  311. isc_dsql_xml_buffer_fetch := GetProcAddr('isc_dsql_xml_buffer_fetch'); {do not localize}
  312. end
  313. else
  314. begin
  315. isc_dsql_xml_fetch := isc_dsql_xml_fetch_stub;
  316. isc_dsql_xml_fetch_all := isc_dsql_xml_fetch_all_stub;
  317. isc_dsql_xml_buffer_fetch := isc_dsql_xml_buffer_fetch_stub;
  318. end;
  319. fb_cancel_operation := TryGetProcAddr('fb_cancel_operation');
  320. end;
  321. end;
  322. procedure FreeIBLibrary;
  323. begin
  324. if IBLibrary > HINSTANCE_ERROR then
  325. begin
  326. FreeLibrary(IBLibrary);
  327. IBLibrary := 0;
  328. end;
  329. if IBXMLLibrary > HINSTANCE_ERROR then
  330. begin
  331. FreeLibrary(IBXMLLibrary);
  332. IBXMLLibrary := 0;
  333. end;
  334. end;
  335. procedure LoadIBInstallLibrary;
  336. function GetProcAddr(ProcName: PChar): Pointer;
  337. begin
  338. Result := GetProcAddress(IBInstallLibrary, ProcName);
  339. if not Assigned(Result) then
  340. RaiseLastWin32Error;
  341. end;
  342. begin
  343. IBInstallLibrary := LoadLibrary(PChar(IB_INSTALL_DLL));
  344. if (IBInstallLibrary > HINSTANCE_ERROR) then
  345. begin
  346. isc_install_clear_options := GetProcAddr('isc_install_clear_options'); {do not localize}
  347. isc_install_execute := GetProcAddr('isc_install_execute'); {do not localize}
  348. isc_install_get_info := GetProcAddr('isc_install_get_info'); {do not localize}
  349. isc_install_get_message := GetProcAddr('isc_install_get_message'); {do not localize}
  350. isc_install_load_external_text := GetProcAddr('isc_install_load_external_text'); {do not localize}
  351. isc_install_precheck := GetProcAddr('isc_install_precheck'); {do not localize}
  352. isc_install_set_option := GetProcAddr('isc_install_set_option'); {do not localize}
  353. isc_uninstall_execute := GetProcAddr('isc_uninstall_execute'); {do not localize}
  354. isc_uninstall_precheck := GetProcAddr('isc_uninstall_precheck'); {do not localize}
  355. isc_install_unset_option := GetProcAddr('isc_install_unset_option'); {do not localize}
  356. end
  357. else
  358. begin
  359. isc_install_clear_options := isc_install_clear_options_stub;
  360. isc_install_execute := isc_install_execute_stub;
  361. isc_install_get_info := isc_install_get_info_stub;
  362. isc_install_get_message := isc_install_get_message_stub;
  363. isc_install_load_external_text := isc_install_load_external_text_stub;
  364. isc_install_precheck := isc_install_precheck_stub;
  365. isc_install_set_option := isc_install_set_option_stub;
  366. isc_uninstall_execute := isc_uninstall_execute_stub;
  367. isc_uninstall_precheck := isc_uninstall_precheck_stub;
  368. isc_install_unset_option := isc_install_unset_option_stub;
  369. end;
  370. end;
  371. procedure FreeIBInstallLibrary;
  372. begin
  373. if IBInstallLibrary > HINSTANCE_ERROR then
  374. begin
  375. FreeLibrary(IBInstallLibrary);
  376. IBInstallLibrary := 0;
  377. end;
  378. end;
  379. function TryIBLoad: Boolean;
  380. begin
  381. if IBLibraryName = '' then
  382. begin
  383. if FileExists(ExtractFilePath(Application.EXEName) + 'intl\fbintl.dll')
  384. and FileExists(ExtractFilePath(Application.EXEName) + 'udf\gudf.dll') then
  385. begin
  386. IBLibraryName := FBEMB_DLL;
  387. end else
  388. IBLibraryName := FBASE_DLL;
  389. end;
  390. if (IBLibrary <= HINSTANCE_ERROR) then
  391. LoadIBLibrary;
  392. if (IBLibrary <= HINSTANCE_ERROR) then
  393. begin
  394. SetIBLibraryName(FBEMB_DLL);
  395. LoadIBLibrary;
  396. end;
  397. if (IBLibrary <= HINSTANCE_ERROR) then
  398. begin
  399. SetIBLibraryName(FBASE_DLL);
  400. LoadIBLibrary;
  401. end;
  402. if (IBLibrary <= HINSTANCE_ERROR) then
  403. begin
  404. SetIBLibraryName(IBASE_DLL);
  405. LoadIBLibrary;
  406. end;
  407. if (IBLibrary <= HINSTANCE_ERROR) then
  408. result := False
  409. else
  410. result := True;
  411. end;
  412. procedure CheckIBLoaded;
  413. begin
  414. if not TryIBLoad then
  415. begin
  416. MessageBox(0,
  417. '?????????? ????????? ?????????? ??????? ? ???? ??????. ?????????????? ??????????.',
  418. '??????',
  419. MB_OK or MB_ICONHAND or MB_TASKMODAL);
  420. IBError(ibxeInterBaseMissing, [nil]);
  421. end;
  422. end;
  423. function GetIBClientVersion: Integer;
  424. begin
  425. CheckIBLoaded;
  426. result := IBClientVersion;
  427. end;
  428. procedure CheckIBInstallLoaded;
  429. begin
  430. if (IBInstallLibrary <= HINSTANCE_ERROR) then
  431. LoadIBInstallLibrary;
  432. if (IBInstallLibrary <= HINSTANCE_ERROR) then
  433. IBError(ibxeInterBaseInstallMissing, [nil]);
  434. end;
  435. function isc_rollback_retaining_stub(status_vector : PISC_STATUS;
  436. tran_handle : PISC_TR_HANDLE):
  437. ISC_STATUS; stdcall;
  438. begin
  439. Result := 0;
  440. IBError(ibxeIB60feature, ['isc_rollback_retaining']); {do not localize}
  441. end;
  442. function isc_service_attach_stub(status_vector : PISC_STATUS;
  443. isc_arg2 : UShort;
  444. isc_arg3 : PChar;
  445. service_handle : PISC_SVC_HANDLE;
  446. isc_arg5 : UShort;
  447. isc_arg6 : PChar):
  448. ISC_STATUS; stdcall;
  449. begin
  450. Result := 0;
  451. IBError(ibxeIB60feature, ['isc_service_attach']); {do not localize}
  452. end;
  453. function isc_service_detach_stub(status_vector : PISC_STATUS;
  454. service_handle : PISC_SVC_HANDLE):
  455. ISC_STATUS; stdcall;
  456. begin
  457. Result := 0;
  458. IBError(ibxeIB60feature, ['isc_service_detach']); {do not localize}
  459. end;
  460. function isc_service_query_stub(status_vector : PISC_STATUS;
  461. service_handle : PISC_SVC_HANDLE;
  462. recv_handle : PISC_SVC_HANDLE;
  463. isc_arg4 : UShort;
  464. isc_arg5 : PChar;
  465. isc_arg6 : UShort;
  466. isc_arg7 : PChar;
  467. isc_arg8 : UShort;
  468. isc_arg9 : PChar):
  469. ISC_STATUS; stdcall;
  470. begin
  471. Result := 0;
  472. IBError(ibxeIB60feature, ['isc_service_query']); {do not localize}
  473. end;
  474. function isc_service_start_stub(status_vector : PISC_STATUS;
  475. service_handle : PISC_SVC_HANDLE;
  476. recv_handle : PISC_SVC_HANDLE;
  477. isc_arg4 : UShort;
  478. isc_arg5 : PChar):
  479. ISC_STATUS; stdcall;
  480. begin
  481. Result := 0;
  482. IBError(ibxeIB60feature, ['isc_service_start']); {do not localize}
  483. end;
  484. procedure isc_encode_sql_date_stub(tm_date : PCTimeStructure;
  485. ib_date : PISC_DATE);
  486. stdcall;
  487. begin
  488. IBError(ibxeIB60feature, ['isc_encode_sql_date']); {do not localize}
  489. end;
  490. procedure isc_encode_sql_time_stub(tm_date : PCTimeStructure;
  491. ib_time : PISC_TIME);
  492. stdcall;
  493. begin
  494. IBError(ibxeIB60feature, ['isc_encode_sql_time']); {do not localize}
  495. end;
  496. procedure isc_encode_timestamp_stub(tm_date : PCTimeStructure;
  497. ib_timestamp : PISC_TIMESTAMP);
  498. stdcall;
  499. begin
  500. IBError(ibxeIB60feature, ['isc_encode_sql_timestamp']); {do not localize}
  501. end;
  502. procedure isc_decode_sql_date_stub(ib_date : PISC_DATE;
  503. tm_date : PCTimeStructure);
  504. stdcall;
  505. begin
  506. IBError(ibxeIB60feature, ['isc_decode_sql_date']); {do not localize}
  507. end;
  508. procedure isc_decode_sql_time_stub(ib_time : PISC_TIME;
  509. tm_date : PCTimeStructure);
  510. stdcall;
  511. begin
  512. IBError(ibxeIB60feature, ['isc_decode_sql_time']); {do not localize}
  513. end;
  514. procedure isc_decode_timestamp_stub(ib_timestamp : PISC_TIMESTAMP;
  515. tm_date : PCTimeStructure);
  516. stdcall;
  517. begin
  518. IBError(ibxeIB60feature, ['isc_decode_timestamp']); {do not localize}
  519. end;
  520. function isc_install_clear_options_stub(hOption: POPTIONS_HANDLE):MSG_NO; stdcall;
  521. begin
  522. Result := 0;
  523. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  524. end;
  525. function isc_install_execute_stub(hOption: OPTIONS_HANDLE;
  526. src_dir: TEXT;
  527. dest_dir: TEXT;
  528. status_func: FP_STATUS;
  529. status_data: pointer;
  530. error_func: FP_ERROR;
  531. error_data: pointer;
  532. uninstal_file_name: TEXT):MSG_NO; stdcall;
  533. begin
  534. Result := 0;
  535. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  536. end;
  537. function isc_install_get_info_stub(info_type :integer;
  538. option :OPT;
  539. info_buffer : Pointer;
  540. buf_len : Cardinal): MSG_NO; stdcall;
  541. begin
  542. Result := 0;
  543. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  544. end;
  545. function isc_install_get_message_stub(hOption: OPTIONS_HANDLE;
  546. message_no: MSG_NO;
  547. message_txt: Pointer;
  548. message_len: Cardinal):MSG_NO; stdcall;
  549. begin
  550. Result := 0;
  551. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  552. end;
  553. function isc_install_load_external_text_stub(msg_file_name: TEXT):MSG_NO; stdcall;
  554. begin
  555. Result := 0;
  556. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  557. end;
  558. function isc_install_precheck_stub(hOption: OPTIONS_HANDLE;
  559. src_dir: TEXT;
  560. dest_dir: TEXT):MSG_NO; stdcall;
  561. begin
  562. Result := 0;
  563. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  564. end;
  565. function isc_install_set_option_stub(hOption: POPTIONS_HANDLE;
  566. option: OPT):MSG_NO; stdcall;
  567. begin
  568. Result := 0;
  569. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  570. end;
  571. function isc_uninstall_execute_stub(uninstall_file_name: TEXT;
  572. status_func: FP_STATUS;
  573. status_data: pointer;
  574. error_func: FP_ERROR;
  575. error_data: pointer):MSG_NO; stdcall;
  576. begin
  577. Result := 0;
  578. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  579. end;
  580. function isc_uninstall_precheck_stub(uninstall_file_name: TEXT):MSG_NO; stdcall;
  581. begin
  582. Result := 0;
  583. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  584. end;
  585. function isc_install_unset_option_stub(hOption: POPTIONS_HANDLE;
  586. option: OPT):MSG_NO; stdcall;
  587. begin
  588. Result := 0;
  589. IBError(ibxeIB60feature, ['isc_install_xxx ']); {do not localize}
  590. end;
  591. initialization
  592. finalization
  593. FreeIBLibrary;
  594. FreeIBInstallLibrary;
  595. end.