mysql4.pp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. unit mysql4;
  2. interface
  3. uses mysql4_com;
  4. {
  5. Automatically converted by H2Pas 0.99.15 from mysql.ph
  6. The following command line parameters were used:
  7. -p
  8. -D
  9. -l
  10. mysqlclient
  11. mysql.ph
  12. }
  13. const
  14. External_library='mysqlclient'; {Setup as you need}
  15. { Pointers to basic pascal types, inserted by h2pas conversion program.}
  16. Type
  17. PLongint = ^Longint;
  18. PSmallInt = ^SmallInt;
  19. PByte = ^Byte;
  20. PWord = ^Word;
  21. PDWord = ^DWord;
  22. PDouble = ^Double;
  23. {$PACKRECORDS C}
  24. { Copyright (C) 2000 MySQL AB
  25. This program is free software; you can redistribute it and/or modify
  26. it under the terms of the GNU General Public License as published by
  27. the Free Software Foundation; either version 2 of the License, or
  28. (at your option) any later version.
  29. This program is distributed in the hope that it will be useful,
  30. but WITHOUT ANY WARRANTY; without even the implied warranty of
  31. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  32. GNU General Public License for more details.
  33. You should have received a copy of the GNU General Public License
  34. along with this program; if not, write to the Free Software
  35. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA }
  36. type
  37. Pmy_bool = ^my_bool;
  38. my_bool = char;
  39. Pgptr = ^gptr;
  40. gptr = char;
  41. Pmy_socket = ^my_socket;
  42. my_socket = longint;
  43. var
  44. mysql_port : dword;cvar;external;
  45. mysql_unix_port : Pchar;cvar;external;
  46. type
  47. Pst_mysql_field = ^st_mysql_field;
  48. st_mysql_field = record
  49. name : Pchar;
  50. table : Pchar;
  51. org_table : Pchar;
  52. db : Pchar;
  53. def : Pchar;
  54. length : dword;
  55. max_length : dword;
  56. flags : dword;
  57. decimals : dword;
  58. ftype : enum_field_types;
  59. end;
  60. MYSQL_FIELD = st_mysql_field;
  61. TMYSQL_FIELD = MYSQL_FIELD;
  62. PMYSQL_FIELD = ^MYSQL_FIELD;
  63. function IS_PRI_KEY(n : longint) : Boolean;
  64. function IS_NOT_NULL(n : longint) : Boolean;
  65. function IS_BLOB(n : longint) : boolean;
  66. type
  67. MYSQL_ROW = ppchar;
  68. PMYSQL_ROW = ^MYSQL_ROW;
  69. TMYSQL_ROW = MYSQL_ROW;
  70. PMYSQL_FIELD_OFFSET = ^MYSQL_FIELD_OFFSET;
  71. MYSQL_FIELD_OFFSET = dword;
  72. Pmy_ulonglong = ^my_ulonglong;
  73. my_ulonglong = qword;
  74. function MYSQL_COUNT_ERROR : longint;
  75. type
  76. Pst_mysql_rows = ^st_mysql_rows;
  77. st_mysql_rows = record
  78. next : Pst_mysql_rows;
  79. data : MYSQL_ROW;
  80. end;
  81. MYSQL_ROWS = st_mysql_rows;
  82. TMYSQL_ROWS = MYSQL_ROWS;
  83. PMYSQL_ROWS = ^MYSQL_ROWS;
  84. MYSQL_ROW_OFFSET = MYSQL_ROWS;
  85. PMYSQL_ROW_OFFSET = ^MYSQL_ROW_OFFSET;
  86. Pst_used_mem = ^st_used_mem;
  87. st_used_mem = record
  88. next : Pst_used_mem;
  89. left : dword;
  90. size : dword;
  91. end;
  92. USED_MEM = st_used_mem;
  93. TUSED_MEM = USED_MEM;
  94. PUSED_MEM = ^USED_MEM;
  95. Pst_mem_root = ^st_mem_root;
  96. st_mem_root = record
  97. free : PUSED_MEM;
  98. used : PUSED_MEM;
  99. pre_alloc : PUSED_MEM;
  100. min_malloc : dword;
  101. block_size : dword;
  102. block_num : dword;
  103. first_block_usage : dword;
  104. error_handler : procedure ;cdecl;
  105. end;
  106. MEM_ROOT = st_mem_root;
  107. TMEM_ROOT = MEM_ROOT;
  108. PMEM_ROOT = ^MEM_ROOT;
  109. Pst_mysql_data = ^st_mysql_data;
  110. st_mysql_data = record
  111. rows : my_ulonglong;
  112. fields : dword;
  113. data : PMYSQL_ROWS;
  114. alloc : MEM_ROOT;
  115. end;
  116. MYSQL_DATA = st_mysql_data;
  117. TMYSQL_DATA = MYSQL_DATA;
  118. PMYSQL_DATA = ^MYSQL_DATA;
  119. Pst_mysql_options = ^st_mysql_options;
  120. st_mysql_options = record
  121. connect_timeout : dword;
  122. client_flag : dword;
  123. port : dword;
  124. host : Pchar;
  125. init_command : Pchar;
  126. user : Pchar;
  127. password : Pchar;
  128. unix_socket : Pchar;
  129. db : Pchar;
  130. my_cnf_file : Pchar;
  131. my_cnf_group : Pchar;
  132. charset_dir : Pchar;
  133. charset_name : Pchar;
  134. ssl_key : Pchar;
  135. ssl_cert : Pchar;
  136. ssl_ca : Pchar;
  137. ssl_capath : Pchar;
  138. ssl_cipher : Pchar;
  139. max_allowed_packet : Cardinal;
  140. use_ssl : my_bool;
  141. compress : my_bool;
  142. named_pipe : my_bool;
  143. rpl_probe : my_bool;
  144. rpl_parse : my_bool;
  145. no_master_reads : my_bool;
  146. end;
  147. TMYSQL_OPTIONS = st_mysql_options;
  148. PTMYSQL_OPTIONS = ^TMYSQL_OPTIONS;
  149. mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
  150. MYSQL_OPT_NAMED_PIPE,MYSQL_INIT_COMMAND,
  151. MYSQL_READ_DEFAULT_FILE,MYSQL_READ_DEFAULT_GROUP,
  152. MYSQL_SET_CHARSET_DIR,MYSQL_SET_CHARSET_NAME
  153. );
  154. mysql_status = (MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,
  155. MYSQL_STATUS_USE_RESULT);
  156. mysql_rpl_type = (MYSQL_RPL_MASTER,MYSQL_RPL_SLAVE,MYSQL_RPL_ADMIN );
  157. Pst_mysql = ^st_mysql;
  158. st_mysql = record
  159. net : NET;
  160. connector_fd : gptr;
  161. host : Pchar;
  162. user : Pchar;
  163. passwd : Pchar;
  164. unix_socket : Pchar;
  165. server_version : Pchar;
  166. host_info : Pchar;
  167. info : Pchar;
  168. db : Pchar;
  169. charset : Pointer; //!! Was Pcharset_info_st;
  170. fields : PMYSQL_FIELD;
  171. field_alloc : MEM_ROOT;
  172. affected_rows : my_ulonglong;
  173. insert_id : my_ulonglong;
  174. extra_info : my_ulonglong;
  175. thread_id : dword;
  176. packet_length : dword;
  177. port : dword;
  178. client_flag : dword;
  179. server_capabilities : dword;
  180. protocol_version : dword;
  181. field_count : dword;
  182. server_status : dword;
  183. server_language : dword;
  184. options : st_mysql_options;
  185. status : mysql_status;
  186. free_me : my_bool;
  187. reconnect : my_bool;
  188. scramble_buff : array[0..8] of char;
  189. rpl_pivot : my_bool;
  190. master : Pst_mysql;
  191. next_slave : Pst_mysql;
  192. last_used_slave : Pst_mysql;
  193. last_used_con : Pst_mysql;
  194. end;
  195. TMYSQL = st_mysql;
  196. PMYSQL = ^TMYSQL;
  197. Pst_mysql_res = ^st_mysql_res;
  198. st_mysql_res = record
  199. row_count : my_ulonglong;
  200. fields : PMYSQL_FIELD;
  201. data : PMYSQL_DATA;
  202. data_cursor : PMYSQL_ROWS;
  203. lengths : Pdword;
  204. handle : PMYSQL;
  205. field_alloc : MEM_ROOT;
  206. field_count : dword;
  207. current_field : dword;
  208. row : MYSQL_ROW;
  209. current_row : MYSQL_ROW;
  210. eof : my_bool;
  211. end;
  212. MYSQL_RES = st_mysql_res;
  213. TMYSQL_RES = MYSQL_RES;
  214. PMYSQL_RES = ^MYSQL_RES;
  215. const
  216. MAX_MYSQL_MANAGER_ERR = 256;
  217. MAX_MYSQL_MANAGER_MSG = 256;
  218. MANAGER_OK = 200;
  219. MANAGER_INFO = 250;
  220. MANAGER_ACCESS = 401;
  221. MANAGER_CLIENT_ERR = 450;
  222. MANAGER_INTERNAL_ERR = 500;
  223. type
  224. Pst_mysql_manager = ^st_mysql_manager;
  225. st_mysql_manager = record
  226. net : NET;
  227. host : Pchar;
  228. user : Pchar;
  229. passwd : Pchar;
  230. port : dword;
  231. free_me : my_bool;
  232. eof : my_bool;
  233. cmd_status : longint;
  234. last_errno : longint;
  235. net_buf : Pchar;
  236. net_buf_pos : Pchar;
  237. net_data_end : Pchar;
  238. net_buf_size : longint;
  239. last_error : array[0..(MAX_MYSQL_MANAGER_ERR)-1] of char;
  240. end;
  241. MYSQL_MANAGER = st_mysql_manager;
  242. PMYSQL_MANAGER = ^MYSQL_MANAGER;
  243. function mysql_server_init(argc:longint; argv:PPchar; groups:PPchar):longint;cdecl;external External_library name 'mysql_server_init';
  244. procedure mysql_server_end;cdecl;external External_library name 'mysql_server_end';
  245. function mysql_thread_init:my_bool;cdecl;external External_library name 'mysql_thread_init';
  246. procedure mysql_thread_end;cdecl;external External_library name 'mysql_thread_end';
  247. function mysql_num_rows(res:PMYSQL_RES):my_ulonglong;cdecl;external External_library name 'mysql_num_rows';
  248. function mysql_num_fields(res:PMYSQL_RES):dword;cdecl;external External_library name 'mysql_num_fields';
  249. function mysql_eof(res:PMYSQL_RES):my_bool;cdecl;external External_library name 'mysql_eof';
  250. function mysql_fetch_field_direct(res:PMYSQL_RES; fieldnr:dword):PMYSQL_FIELD;cdecl;external External_library name 'mysql_fetch_field_direct';
  251. function mysql_fetch_fields(res:PMYSQL_RES):PMYSQL_FIELD;cdecl;external External_library name 'mysql_fetch_fields';
  252. function mysql_row_tell(res:PMYSQL_RES):PMYSQL_ROWS;cdecl;external External_library name 'mysql_row_tell';
  253. function mysql_field_tell(res:PMYSQL_RES):dword;cdecl;external External_library name 'mysql_field_tell';
  254. function mysql_field_count(mysql:PMYSQL):dword;cdecl;external External_library name 'mysql_field_count';
  255. function mysql_affected_rows(mysql:PMYSQL):my_ulonglong;cdecl;external External_library name 'mysql_affected_rows';
  256. function mysql_insert_id(mysql:PMYSQL):my_ulonglong;cdecl;external External_library name 'mysql_insert_id';
  257. function mysql_errno(mysql:PMYSQL):dword;cdecl;external External_library name 'mysql_errno';
  258. function mysql_error(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_error';
  259. function mysql_info(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_info';
  260. function mysql_thread_id(mysql:PMYSQL):dword;cdecl;external External_library name 'mysql_thread_id';
  261. function mysql_character_set_name(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_character_set_name';
  262. function mysql_init(mysql:PMYSQL):PMYSQL;cdecl;external External_library name 'mysql_init';
  263. function mysql_ssl_set(mysql:PMYSQL; key:Pchar; cert:Pchar; ca:Pchar; capath:Pchar;
  264. cipher:Pchar):longint;cdecl;external External_library name 'mysql_ssl_set';
  265. function mysql_ssl_clear(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_ssl_clear';
  266. function mysql_change_user(mysql:PMYSQL; user:Pchar; passwd:Pchar; db:Pchar):my_bool;cdecl;external External_library name 'mysql_change_user';
  267. function mysql_real_connect(mysql:PMYSQL; host:Pchar; user:Pchar; passwd:Pchar; db:Pchar;
  268. port:dword; unix_socket:Pchar; clientflag:dword):PMYSQL;cdecl;external External_library name 'mysql_real_connect';
  269. procedure mysql_close(sock:PMYSQL);cdecl;external External_library name 'mysql_close';
  270. function mysql_select_db(mysql:PMYSQL; db:Pchar):longint;cdecl;external External_library name 'mysql_select_db';
  271. function mysql_query(mysql:PMYSQL; q:Pchar):longint;cdecl;external External_library name 'mysql_query';
  272. function mysql_send_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_send_query';
  273. function mysql_read_query_result(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_read_query_result';
  274. function mysql_real_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_real_query';
  275. function mysql_master_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_master_query';
  276. function mysql_master_send_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_master_send_query';
  277. function mysql_slave_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_slave_query';
  278. function mysql_slave_send_query(mysql:PMYSQL; q:Pchar; length:dword):longint;cdecl;external External_library name 'mysql_slave_send_query';
  279. procedure mysql_enable_rpl_parse(mysql:PMYSQL);cdecl;external External_library name 'mysql_enable_rpl_parse';
  280. procedure mysql_disable_rpl_parse(mysql:PMYSQL);cdecl;external External_library name 'mysql_disable_rpl_parse';
  281. function mysql_rpl_parse_enabled(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_rpl_parse_enabled';
  282. procedure mysql_enable_reads_from_master(mysql:PMYSQL);cdecl;external External_library name 'mysql_enable_reads_from_master';
  283. procedure mysql_disable_reads_from_master(mysql:PMYSQL);cdecl;external External_library name 'mysql_disable_reads_from_master';
  284. function mysql_reads_from_master_enabled(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_reads_from_master_enabled';
  285. (* error
  286. enum mysql_rpl_type mysql_rpl_query_type(const char* q, int len);
  287. in declaration at line 291 *)
  288. function mysql_rpl_probe(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_rpl_probe';
  289. function mysql_set_master(mysql:PMYSQL; host:Pchar; port:dword; user:Pchar; passwd:Pchar):longint;cdecl;external External_library name 'mysql_set_master';
  290. function mysql_add_slave(mysql:PMYSQL; host:Pchar; port:dword; user:Pchar; passwd:Pchar):longint;cdecl;external External_library name 'mysql_add_slave';
  291. function mysql_shutdown(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_shutdown';
  292. function mysql_dump_debug_info(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_dump_debug_info';
  293. function mysql_refresh(mysql:PMYSQL; refresh_options:dword):longint;cdecl;external External_library name 'mysql_refresh';
  294. function mysql_kill(mysql:PMYSQL; pid:dword):longint;cdecl;external External_library name 'mysql_kill';
  295. function mysql_ping(mysql:PMYSQL):longint;cdecl;external External_library name 'mysql_ping';
  296. function mysql_stat(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_stat';
  297. function mysql_get_server_info(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_get_server_info';
  298. function mysql_get_client_info:Pchar;cdecl;external External_library name 'mysql_get_client_info';
  299. function mysql_get_host_info(mysql:PMYSQL):Pchar;cdecl;external External_library name 'mysql_get_host_info';
  300. function mysql_get_proto_info(mysql:PMYSQL):dword;cdecl;external External_library name 'mysql_get_proto_info';
  301. function mysql_list_dbs(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;cdecl;external External_library name 'mysql_list_dbs';
  302. function mysql_list_tables(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;cdecl;external External_library name 'mysql_list_tables';
  303. function mysql_list_fields(mysql:PMYSQL; table:Pchar; wild:Pchar):PMYSQL_RES;cdecl;external External_library name 'mysql_list_fields';
  304. function mysql_list_processes(mysql:PMYSQL):PMYSQL_RES;cdecl;external External_library name 'mysql_list_processes';
  305. function mysql_store_result(mysql:PMYSQL):PMYSQL_RES;cdecl;external External_library name 'mysql_store_result';
  306. function mysql_use_result(mysql:PMYSQL):PMYSQL_RES;cdecl;external External_library name 'mysql_use_result';
  307. function mysql_options(mysql:PMYSQL; option:mysql_option; arg:Pchar):longint;cdecl;external External_library name 'mysql_options';
  308. procedure mysql_free_result(result:PMYSQL_RES);cdecl;external External_library name 'mysql_free_result';
  309. procedure mysql_data_seek(result:PMYSQL_RES; offset:my_ulonglong);cdecl;external External_library name 'mysql_data_seek';
  310. function mysql_row_seek(result:PMYSQL_RES; _para2:MYSQL_ROW_OFFSET):MYSQL_ROW_OFFSET;cdecl;external External_library name 'mysql_row_seek';
  311. function mysql_field_seek(result:PMYSQL_RES; offset:MYSQL_FIELD_OFFSET):MYSQL_FIELD_OFFSET;cdecl;external External_library name 'mysql_field_seek';
  312. function mysql_fetch_row(result:PMYSQL_RES):MYSQL_ROW;cdecl;external External_library name 'mysql_fetch_row';
  313. function mysql_fetch_lengths(result:PMYSQL_RES):Pdword;cdecl;external External_library name 'mysql_fetch_lengths';
  314. function mysql_fetch_field(result:PMYSQL_RES):PMYSQL_FIELD;cdecl;external External_library name 'mysql_fetch_field';
  315. function mysql_escape_string(_to:Pchar; from:Pchar; from_length:dword):dword;cdecl;external External_library name 'mysql_escape_string';
  316. function mysql_real_escape_string(mysql:PMYSQL; _to:Pchar; from:Pchar; length:dword):dword;cdecl;external External_library name 'mysql_real_escape_string';
  317. procedure mysql_debug(debug:Pchar);cdecl;external External_library name 'mysql_debug';
  318. Type
  319. TExdendBuffer = function (_para1:pointer; _to:Pchar; length:Pdword):Pchar;
  320. function mysql_odbc_escape_string(mysql:PMYSQL; _to:Pchar; to_length:dword; from:Pchar; from_length:dword;
  321. param:pointer; extend_buffer: TExdendBuffer):Pchar;cdecl;external External_library name 'mysql_odbc_escape_string';
  322. procedure myodbc_remove_escape(mysql:PMYSQL; name:Pchar);cdecl;external External_library name 'myodbc_remove_escape';
  323. function mysql_thread_safe:dword;cdecl;external External_library name 'mysql_thread_safe';
  324. function mysql_manager_init(con:PMYSQL_MANAGER):PMYSQL_MANAGER;cdecl;external External_library name 'mysql_manager_init';
  325. function mysql_manager_connect(con:PMYSQL_MANAGER; host:Pchar; user:Pchar; passwd:Pchar; port:dword):PMYSQL_MANAGER;cdecl;external External_library name 'mysql_manager_connect';
  326. procedure mysql_manager_close(con:PMYSQL_MANAGER);cdecl;external External_library name 'mysql_manager_close';
  327. function mysql_manager_command(con:PMYSQL_MANAGER; cmd:Pchar; cmd_len:longint):longint;cdecl;external External_library name 'mysql_manager_command';
  328. function mysql_manager_fetch_line(con:PMYSQL_MANAGER; res_buf:Pchar; res_buf_size:longint):longint;cdecl;external External_library name 'mysql_manager_fetch_line';
  329. function mysql_reload(mysql : pmysql) : longint;
  330. function simple_command(mysql:PMYSQL; command:enum_server_command; arg:Pchar; length:dword; skipp_check:my_bool):longint;cdecl;external External_library name 'simple_command';
  331. function net_safe_read(mysql:PMYSQL):dword;cdecl;external External_library name 'net_safe_read';
  332. implementation
  333. function IS_PRI_KEY(n : longint) : Boolean;
  334. begin
  335. IS_PRI_KEY:=(n and PRI_KEY_FLAG)<>0;
  336. end;
  337. function IS_NOT_NULL(n : longint) : Boolean;
  338. begin
  339. IS_NOT_NULL:=(n and NOT_NULL_FLAG)<>0;
  340. end;
  341. function IS_BLOB(n : longint) : Boolean;
  342. begin
  343. IS_BLOB:=(n and BLOB_FLAG)<>0;
  344. end;
  345. function IS_NUM_FIELD(f : Pst_mysql_field) : Boolean;
  346. begin
  347. IS_NUM_FIELD:=((f^.flags) and NUM_FLAG)<>0;
  348. end;
  349. function MYSQL_COUNT_ERROR : longint;
  350. begin
  351. MYSQL_COUNT_ERROR:= not (my_ulonglong(0));
  352. end;
  353. function mysql_reload(mysql : pmysql) : longint;
  354. begin
  355. mysql_reload:=mysql_refresh(mysql,REFRESH_GRANT);
  356. end;
  357. end.