mysql4types.inc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. {
  2. Contains the types needed for use with MySQL v4.0
  3. }
  4. type
  5. Pmy_bool = ^my_bool;
  6. my_bool = char;
  7. Pgptr = ^gptr;
  8. gptr = char;
  9. Pmy_socket = ^my_socket;
  10. my_socket = longint;
  11. var
  12. mysql_port : dword;cvar;external;
  13. mysql_unix_port : Pchar;cvar;external;
  14. type
  15. Pst_mysql_field = ^st_mysql_field;
  16. st_mysql_field = record
  17. name : Pchar;
  18. org_name : pchar;
  19. table : Pchar;
  20. org_table : Pchar;
  21. db : Pchar;
  22. catalog : pchar;
  23. def : Pchar;
  24. length : culong;
  25. max_length : culong;
  26. name_length : cuint;
  27. org_name_length : cuint;
  28. table_length : cuint;
  29. org_table_length : cuint;
  30. db_length : cuint;
  31. catalog_length : cuint;
  32. def_length : cuint;
  33. flags : cuint;
  34. decimals : cuint;
  35. charsetnr : cuint;
  36. ftype : enum_field_types;
  37. end;
  38. MYSQL_FIELD = st_mysql_field;
  39. TMYSQL_FIELD = MYSQL_FIELD;
  40. PMYSQL_FIELD = ^MYSQL_FIELD;
  41. type
  42. MYSQL_ROW = ppchar;
  43. PMYSQL_ROW = ^MYSQL_ROW;
  44. TMYSQL_ROW = MYSQL_ROW;
  45. PMYSQL_FIELD_OFFSET = ^MYSQL_FIELD_OFFSET;
  46. MYSQL_FIELD_OFFSET = dword;
  47. Pmy_ulonglong = ^my_ulonglong;
  48. my_ulonglong = qword;
  49. type
  50. Pst_mysql_rows = ^st_mysql_rows;
  51. st_mysql_rows = record
  52. next : Pst_mysql_rows;
  53. data : MYSQL_ROW;
  54. length : culong;
  55. end;
  56. MYSQL_ROWS = st_mysql_rows;
  57. TMYSQL_ROWS = MYSQL_ROWS;
  58. PMYSQL_ROWS = ^MYSQL_ROWS;
  59. MYSQL_ROW_OFFSET = ^MYSQL_ROWS;
  60. PMYSQL_ROW_OFFSET = ^MYSQL_ROW_OFFSET;
  61. Pst_used_mem = ^st_used_mem;
  62. st_used_mem = record
  63. next : Pst_used_mem;
  64. left : dword;
  65. size : dword;
  66. end;
  67. USED_MEM = st_used_mem;
  68. TUSED_MEM = USED_MEM;
  69. PUSED_MEM = ^USED_MEM;
  70. Pst_mem_root = ^st_mem_root;
  71. st_mem_root = record
  72. free : PUSED_MEM;
  73. used : PUSED_MEM;
  74. pre_alloc : PUSED_MEM;
  75. min_malloc : dword;
  76. block_size : dword;
  77. block_num : dword;
  78. first_block_usage : dword;
  79. error_handler : procedure ;cdecl;
  80. end;
  81. MEM_ROOT = st_mem_root;
  82. TMEM_ROOT = MEM_ROOT;
  83. PMEM_ROOT = ^MEM_ROOT;
  84. Pst_mysql_data = ^st_mysql_data;
  85. st_mysql_data = record
  86. rows : my_ulonglong;
  87. fields : cuint;
  88. data : PMYSQL_ROWS;
  89. alloc : MEM_ROOT;
  90. prev_ptr : ^MYSQL_ROWS;
  91. end;
  92. MYSQL_DATA = st_mysql_data;
  93. TMYSQL_DATA = MYSQL_DATA;
  94. PMYSQL_DATA = ^MYSQL_DATA;
  95. mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
  96. MYSQL_OPT_NAMED_PIPE,MYSQL_INIT_COMMAND,
  97. MYSQL_READ_DEFAULT_FILE,MYSQL_READ_DEFAULT_GROUP,
  98. MYSQL_SET_CHARSET_DIR,MYSQL_SET_CHARSET_NAME
  99. );
  100. Pst_mysql_options = ^st_mysql_options;
  101. st_mysql_options = record
  102. connect_timeout,
  103. read_timeout,
  104. write_timeout: cuint;
  105. port,protocol : cuint;
  106. client_flag : culong;
  107. host,
  108. user,
  109. password,
  110. unix_socket,
  111. db : pchar;
  112. init_commands : pst_dynamic_array;
  113. my_cnf_file : Pchar;
  114. my_cnf_group : Pchar;
  115. charset_dir : Pchar;
  116. charset_name : Pchar;
  117. ssl_key : Pchar;
  118. ssl_cert : Pchar;
  119. ssl_ca : Pchar;
  120. ssl_capath : Pchar;
  121. ssl_cipher : Pchar;
  122. shared_memory_base_name : pchar;
  123. max_allowed_packet : culong;
  124. use_ssl : my_bool;
  125. compress : my_bool;
  126. named_pipe : my_bool;
  127. rpl_probe : my_bool;
  128. rpl_parse : my_bool;
  129. no_master_reads : my_bool;
  130. methods_to_use : mysql_option;
  131. client_ip : pchar;
  132. secure_auth : my_bool;
  133. local_infile_init : pointer;
  134. local_infile_read : pointer;
  135. local_infile_end : pointer;
  136. local_infile_error : pointer;
  137. local_infile_userdata : pointer;
  138. end;
  139. TMYSQL_OPTIONS = st_mysql_options;
  140. PTMYSQL_OPTIONS = ^TMYSQL_OPTIONS;
  141. mysql_status = (MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,
  142. MYSQL_STATUS_USE_RESULT);
  143. mysql_rpl_type = (MYSQL_RPL_MASTER,MYSQL_RPL_SLAVE,MYSQL_RPL_ADMIN );
  144. Pst_mysql = ^st_mysql;
  145. st_mysql = record
  146. net : NET;
  147. connector_fd : gptr;
  148. host : Pchar;
  149. user : Pchar;
  150. passwd : Pchar;
  151. unix_socket : Pchar;
  152. server_version : Pchar;
  153. host_info : Pchar;
  154. info : Pchar;
  155. db : Pchar;
  156. charset : Pointer; //!! Was Pcharset_info_st;
  157. fields : PMYSQL_FIELD;
  158. field_alloc : MEM_ROOT;
  159. affected_rows : my_ulonglong;
  160. insert_id : my_ulonglong;
  161. extra_info : my_ulonglong;
  162. thread_id : culong;
  163. packet_length : culong;
  164. port : cuint;
  165. client_flag : culong;
  166. server_capabilities : culong;
  167. protocol_version : cuint;
  168. field_count : cuint;
  169. server_status : cuint;
  170. server_language : cuint;
  171. warning_count : cuint;
  172. options : st_mysql_options;
  173. status : mysql_status;
  174. free_me : my_bool;
  175. reconnect : my_bool;
  176. scramble_buff : array[0..20] of char;
  177. rpl_pivot : my_bool;
  178. master : Pst_mysql;
  179. next_slave : Pst_mysql;
  180. last_used_slave : Pst_mysql;
  181. last_used_con : Pst_mysql;
  182. stmts : pointer; // LIST
  183. methods : pointer; // Pst_mysql_methods
  184. thd : pointer;
  185. unbuffered_fetch_owner : pmy_bool;
  186. end;
  187. TMYSQL = st_mysql;
  188. PMYSQL = ^TMYSQL;
  189. Pst_mysql_res = ^st_mysql_res;
  190. st_mysql_res = record
  191. row_count : my_ulonglong;
  192. fields : PMYSQL_FIELD;
  193. data : PMYSQL_DATA;
  194. data_cursor : PMYSQL_ROWS;
  195. lengths : pculong;
  196. handle : PMYSQL;
  197. field_alloc : MEM_ROOT;
  198. field_count : dword;
  199. current_field : cuint;
  200. row : MYSQL_ROW;
  201. current_row : MYSQL_ROW;
  202. eof : my_bool;
  203. unbuffered_fetch_cancelled : my_bool;
  204. methods : pointer; { was ^my_sql_methods }
  205. end;
  206. MYSQL_RES = st_mysql_res;
  207. TMYSQL_RES = MYSQL_RES;
  208. PMYSQL_RES = ^MYSQL_RES;
  209. const
  210. MAX_MYSQL_MANAGER_ERR = 256;
  211. MAX_MYSQL_MANAGER_MSG = 256;
  212. MANAGER_OK = 200;
  213. MANAGER_INFO = 250;
  214. MANAGER_ACCESS = 401;
  215. MANAGER_CLIENT_ERR = 450;
  216. MANAGER_INTERNAL_ERR = 500;
  217. type
  218. Pst_mysql_manager = ^st_mysql_manager;
  219. st_mysql_manager = record
  220. net : NET;
  221. host : Pchar;
  222. user : Pchar;
  223. passwd : Pchar;
  224. port : dword;
  225. free_me : my_bool;
  226. eof : my_bool;
  227. cmd_status : longint;
  228. last_errno : longint;
  229. net_buf : Pchar;
  230. net_buf_pos : Pchar;
  231. net_data_end : Pchar;
  232. net_buf_size : longint;
  233. last_error : array[0..(MAX_MYSQL_MANAGER_ERR)-1] of char;
  234. end;
  235. MYSQL_MANAGER = st_mysql_manager;
  236. PMYSQL_MANAGER = ^MYSQL_MANAGER;
  237. Type
  238. TExdendBuffer = function (_para1:pointer; _to:Pchar; length:Pdword):Pchar;