summaryrefslogtreecommitdiff
path: root/packages/mysql/src
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-02-19 17:24:37 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-02-19 17:24:37 +0000
commite8c759d1b3c7e46adaf12ba3dfc072251a5dea75 (patch)
tree7a79be199b9873e38e6c0c9fc0038b5cb3fed5a6 /packages/mysql/src
parent18b1092626327d2065b528c03fdf3d272a8c1228 (diff)
downloadfpc-e8c759d1b3c7e46adaf12ba3dfc072251a5dea75.tar.gz
* unmerged table based initialization of libraries.
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16941 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/mysql/src')
-rw-r--r--packages/mysql/src/mysql.inc805
-rw-r--r--packages/mysql/src/mysql40dyn.pp2
-rw-r--r--packages/mysql/src/mysql41dyn.pp2
-rw-r--r--packages/mysql/src/mysql4_comtypes.inc2
-rw-r--r--packages/mysql/src/mysql50dyn.pp2
5 files changed, 405 insertions, 408 deletions
diff --git a/packages/mysql/src/mysql.inc b/packages/mysql/src/mysql.inc
index d7eba89ff8..65c273cb7a 100644
--- a/packages/mysql/src/mysql.inc
+++ b/packages/mysql/src/mysql.inc
@@ -15,20 +15,19 @@
mysqlclient
mysql_com.h / mysql.h
-
- NOTE: MySQL 5.1 support is not finished. I just added some parts so that my code is working. I
- guess there are many things missing. This mysql.inc file is also getting a littlebit messy...
- -Ivo Steinmann (isteinmann@bluewin.ch)
}
{$MODE objfpc}
{$MACRO on}
interface
-
+{$ifdef Load_Dynamically}{$define LinkDynamically}{$endif}
uses
- dynlibs, ctypes;
+{$IFDEF LinkDynamically}
+ sysutils,
+{$ENDIF}
+ dynlibs,ctypes;
-{$IFDEF UNIX}
+{$IFDEF Unix}
{$DEFINE extdecl:=cdecl}
const
mysqllib = 'libmysqlclient.'+sharedsuffix;
@@ -42,11 +41,11 @@ uses
mysqlvlib = mysqllib+'.12';
{$ENDIF}
{$ENDIF}
-{$IFDEF WINDOWS}
+{$IFDEF Windows}
{$DEFINE extdecl:=stdcall}
const
mysqllib = 'libmysql.dll';
- mysqlvlib = mysqllib;
+ mysqlvlib = 'libmysql.dll';
{$ENDIF}
{$IFDEF mysql51}
@@ -60,17 +59,17 @@ uses
{$PACKRECORDS C}
{ Copyright (C) 2000-2003 MySQL AB
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA }
@@ -78,8 +77,8 @@ uses
type
my_bool = cchar;
Pmy_bool = ^my_bool;
- pppchar = ^ppchar;
- ppbyte = ^pbyte;
+// pppchar = ^ppchar;
+// ppbyte = ^pbyte;
PVIO = Pointer;
@@ -88,7 +87,7 @@ uses
Pmy_socket = ^my_socket;
my_socket = cint;
-
+
{ ------------ Start of declaration in "mysql_com.h" --------------------- }
{
@@ -418,18 +417,18 @@ uses
function net_new_transaction(net : st_net) : st_net;
-{$IFNDEF LOAD_DYNAMICALLY}
- function my_net_init(net:PNET; vio:PVio):my_bool;cdecl;external mysqlvlib name 'my_net_init';
- procedure my_net_local_init(net:PNET);cdecl;external mysqlvlib name 'my_net_local_init';
- procedure net_end(net:PNET);cdecl;external mysqlvlib name 'net_end';
- procedure net_clear(net:PNET);cdecl;external mysqlvlib name 'net_clear';
- function net_realloc(net:PNET; length:culong):my_bool;cdecl;external mysqlvlib name 'net_realloc';
- function net_flush(net:PNET):my_bool;cdecl;external mysqlvlib name 'net_flush';
- function my_net_write(net:PNET; packet:Pchar; len:culong):my_bool;cdecl;external mysqlvlib name 'my_net_write';
+{$IFNDEF LinkDynamically}
+ function my_net_init(net:PNET; vio:PVio):my_bool;cdecl;external mysqllib name 'my_net_init';
+ procedure my_net_local_init(net:PNET);cdecl;external mysqllib name 'my_net_local_init';
+ procedure net_end(net:PNET);cdecl;external mysqllib name 'net_end';
+ procedure net_clear(net:PNET);cdecl;external mysqllib name 'net_clear';
+ function net_realloc(net:PNET; length:culong):my_bool;cdecl;external mysqllib name 'net_realloc';
+ function net_flush(net:PNET):my_bool;cdecl;external mysqllib name 'net_flush';
+ function my_net_write(net:PNET; packet:Pchar; len:culong):my_bool;cdecl;external mysqllib name 'my_net_write';
function net_write_command(net:PNET; command:cuchar; header:Pchar; head_len:culong; packet:Pchar;
- len:culong):my_bool;cdecl;external mysqlvlib name 'net_write_command';
- function net_real_write(net:PNET; packet:Pchar; len:culong):cint;cdecl;external mysqlvlib name 'net_real_write';
- function my_net_read(net:PNET):culong;cdecl;external mysqlvlib name 'my_net_read';
+ len:culong):my_bool;cdecl;external mysqllib name 'net_write_command';
+ function net_real_write(net:PNET; packet:Pchar; len:culong):cint;cdecl;external mysqllib name 'net_real_write';
+ function my_net_read(net:PNET):culong;cdecl;external mysqllib name 'my_net_read';
{$ENDIF}
{ The following function is not meant for normal usage
Currently it's used internally by manager.c }
@@ -439,8 +438,8 @@ uses
sockaddr = record
// undefined structure
end;
-{$IFNDEF LOAD_DYNAMICALLY}
- function my_connect(s:my_socket; name:Psockaddr; namelen:cuint; timeout:cuint):cint;cdecl;external mysqlvlib name 'my_connect';
+{$IFNDEF LinkDynamically}
+ function my_connect(s:my_socket; name:Psockaddr; namelen:cuint; timeout:cuint):cint;cdecl;external mysqllib name 'my_connect';
{$ENDIF}
type
@@ -499,38 +498,38 @@ uses
{ These functions are used for authentication by client and server and
implemented in sql/password.c }
-{$IFNDEF LOAD_DYNAMICALLY}
- procedure randominit(_para1:Prand_struct; seed1:culong; seed2:culong);cdecl;external mysqlvlib name 'randominit';
- function my_rnd(_para1:Prand_struct):cdouble;cdecl;external mysqlvlib name 'my_rnd';
- procedure create_random_string(fto:Pchar; length:cuint; rand_st:Prand_struct);cdecl;external mysqlvlib name 'create_random_string';
- procedure hash_password(fto:culong; password:Pchar; password_len:cuint);cdecl;external mysqlvlib name 'hash_password';
- procedure make_scrambled_password_323(fto:Pchar; password:Pchar);cdecl;external mysqlvlib name 'make_scrambled_password_323';
- procedure scramble_323(fto:Pchar; message:Pchar; password:Pchar);cdecl;external mysqlvlib name 'scramble_323';
- function check_scramble_323(_para1:Pchar; message:Pchar; salt:culong):my_bool;cdecl;external mysqlvlib name 'check_scramble_323';
- procedure get_salt_from_password_323(res:pculong; password:Pchar);cdecl;external mysqlvlib name 'get_salt_from_password_323';
- procedure make_password_from_salt_323(fto:Pchar; salt:pculong);cdecl;external mysqlvlib name 'make_password_from_salt_323';
+{$IFNDEF LinkDynamically}
+ procedure randominit(_para1:Prand_struct; seed1:culong; seed2:culong);cdecl;external mysqllib name 'randominit';
+ function my_rnd(_para1:Prand_struct):cdouble;cdecl;external mysqllib name 'my_rnd';
+ procedure create_random_string(fto:Pchar; length:cuint; rand_st:Prand_struct);cdecl;external mysqllib name 'create_random_string';
+ procedure hash_password(fto:culong; password:Pchar; password_len:cuint);cdecl;external mysqllib name 'hash_password';
+ procedure make_scrambled_password_323(fto:Pchar; password:Pchar);cdecl;external mysqllib name 'make_scrambled_password_323';
+ procedure scramble_323(fto:Pchar; message:Pchar; password:Pchar);cdecl;external mysqllib name 'scramble_323';
+ function check_scramble_323(_para1:Pchar; message:Pchar; salt:culong):my_bool;cdecl;external mysqllib name 'check_scramble_323';
+ procedure get_salt_from_password_323(res:pculong; password:Pchar);cdecl;external mysqllib name 'get_salt_from_password_323';
+ procedure make_password_from_salt_323(fto:Pchar; salt:pculong);cdecl;external mysqllib name 'make_password_from_salt_323';
{$IFDEF mysql50}
- function octet2hex(fto:Pchar; str:Pchar; len:cuint):pchar;cdecl;external mysqlvlib name 'octet2hex';
+ function octet2hex(fto:Pchar; str:Pchar; len:cuint):pchar;cdecl;external mysqllib name 'octet2hex';
{$ENDIF}
- procedure make_scrambled_password(fto:Pchar; password:Pchar);cdecl;external mysqlvlib name 'make_scrambled_password';
- procedure scramble(fto:Pchar; message:Pchar; password:Pchar);cdecl;external mysqlvlib name 'scramble';
- function check_scramble(reply:Pchar; message:Pchar; hash_stage2:Pbyte):my_bool;cdecl;external mysqlvlib name 'check_scramble';
- procedure get_salt_from_password(res:Pbyte; password:Pchar);cdecl;external mysqlvlib name 'get_salt_from_password';
- procedure make_password_from_salt(fto:Pchar; hash_stage2:Pbyte);cdecl;external mysqlvlib name 'make_password_from_salt';
+ procedure make_scrambled_password(fto:Pchar; password:Pchar);cdecl;external mysqllib name 'make_scrambled_password';
+ procedure scramble(fto:Pchar; message:Pchar; password:Pchar);cdecl;external mysqllib name 'scramble';
+ function check_scramble(reply:Pchar; message:Pchar; hash_stage2:Pbyte):my_bool;cdecl;external mysqllib name 'check_scramble';
+ procedure get_salt_from_password(res:Pbyte; password:Pchar);cdecl;external mysqllib name 'get_salt_from_password';
+ procedure make_password_from_salt(fto:Pchar; hash_stage2:Pbyte);cdecl;external mysqllib name 'make_password_from_salt';
{ end of password.c }
- function get_tty_password(opt_message:Pchar):Pchar;cdecl;external mysqlvlib name 'get_tty_password';
- function mysql_errno_to_sqlstate(mysql_errno:cuint):Pchar;cdecl;external mysqlvlib name 'mysql_errno_to_sqlstate';
+ function get_tty_password(opt_message:Pchar):Pchar;cdecl;external mysqllib name 'get_tty_password';
+ function mysql_errno_to_sqlstate(mysql_errno:cuint):Pchar;cdecl;external mysqllib name 'mysql_errno_to_sqlstate';
{ Some other useful functions }
{$IFDEF mysql50}
- function modify_defaults_file(file_location:Pchar; option:Pchar; option_value:Pchar; section_name:Pchar; remove_option:cint):cint;cdecl;external mysqlvlib name 'load_defaults';
+ function modify_defaults_file(file_location:Pchar; option:Pchar; option_value:Pchar; section_name:Pchar; remove_option:cint):cint;cdecl;external mysqllib name 'load_defaults';
{$ENDIF}
- function load_defaults(conf_file:Pchar; groups:PPchar; argc:pcint; argv:PPPchar):cint;cdecl;external mysqlvlib name 'load_defaults';
- function my_init:my_bool;cdecl;external mysqlvlib name 'my_init';
- function my_thread_init:my_bool;cdecl;external mysqlvlib name 'my_thread_init';
- procedure my_thread_end;cdecl;external mysqlvlib name 'my_thread_end';
+ function load_defaults(conf_file:Pchar; groups:PPchar; argc:pcint; argv:PPPchar):cint;cdecl;external mysqllib name 'load_defaults';
+ function my_init:my_bool;cdecl;external mysqllib name 'my_init';
+ function my_thread_init:my_bool;cdecl;external mysqllib name 'my_thread_init';
+ procedure my_thread_end;cdecl;external mysqllib name 'my_thread_end';
{$ELSE}
var
my_init : function :my_bool;cdecl;
@@ -539,10 +538,10 @@ uses
{$ENDIF}
{$ifdef _global_h}
-{$IFNDEF LOAD_DYNAMICALLY}
- function net_field_length(packet:PPuchar):culong;extdecl;external mysqlvlib name 'net_field_length_ll';
- function net_field_length_ll(packet:PPuchar):my_ulonglong;cdecl;external mysqlvlib name 'net_field_length_ll';
- function net_store_length(pkg:Pchar; length:ulonglong):Pchar;cdecl;external mysqlvlib name 'net_store_length';
+{$IFNDEF LinkDynamically}
+ function net_field_length(packet:PPuchar):culong;extdecl;external mysqllib name 'net_field_length_ll';
+ function net_field_length_ll(packet:PPuchar):my_ulonglong;cdecl;external mysqllib name 'net_field_length_ll';
+ function net_store_length(pkg:Pchar; length:ulonglong):Pchar;cdecl;external mysqllib name 'net_store_length';
{$ENDIF}
{$endif}
@@ -585,7 +584,7 @@ uses
{ $include "typelib.h"}
{ $include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */}
-{$IFNDEF LOAD_DYNAMICALLY}
+{$IFNDEF LinkDynamically}
var
mysql_port : cuint;cvar;external;
mysql_unix_port : Pchar;cvar;external;
@@ -594,7 +593,7 @@ uses
const
CLIENT_NET_READ_TIMEOUT = 365*24*3600; // Timeout on read
CLIENT_NET_WRITE_TIMEOUT = 365*24*3600; // Timeout on write
-
+
{$ifdef NETWARE}
(** unsupported pragma#pragma pack(push, 8) /* 8 byte alignment */*)
{$endif}
@@ -728,7 +727,7 @@ uses
{$ENDIF}
{ $endif}
end;
-
+
MYSQL_DATA = st_mysql_data;
PMYSQL_DATA = ^MYSQL_DATA;
mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
@@ -1045,7 +1044,7 @@ uses
{
Note: this info is from the mysql-5.0 version:
-
+
This structure is used to define bind information, and
internally by the client library.
Public members with their descriptions are listed below
@@ -1232,12 +1231,12 @@ uses
//#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet)
//#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length)
-{$IFNDEF LOAD_DYNAMICALLY}
+{$IFNDEF LinkDynamically}
{ Set up and bring down the server; to ensure that applications will
work when linked against either the standard client library or the
embedded server library, these functions should be called. }
- function mysql_server_init(argc:cint; argv:PPchar; groups:PPchar):cint;extdecl;external mysqlvlib name 'mysql_server_init';
- procedure mysql_server_end;extdecl;external mysqlvlib name 'mysql_server_end';
+ function mysql_server_init(argc:cint; argv:PPchar; groups:PPchar):cint;extdecl;external mysqllib name 'mysql_server_init';
+ procedure mysql_server_end;extdecl;external mysqllib name 'mysql_server_end';
{ mysql_server_init/end need to be called when using libmysqld or
libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
@@ -1247,49 +1246,49 @@ uses
names which suit well whether you're using libmysqld or libmysqlclient. We
intend to promote these aliases over the mysql_server* ones. }
- function mysql_library_init(argc:cint; argv:PPchar; groups:PPchar):cint;extdecl;external mysqlvlib name 'mysql_server_init';
- procedure mysql_library_end;extdecl;external mysqlvlib name 'mysql_server_end';
+ function mysql_library_init(argc:cint; argv:PPchar; groups:PPchar):cint;extdecl;external mysqllib name 'mysql_server_init';
+ procedure mysql_library_end;extdecl;external mysqllib name 'mysql_server_end';
- function mysql_get_parameters:PMYSQL_PARAMETERS;extdecl;external mysqlvlib name 'mysql_get_parameters';
+ function mysql_get_parameters:PMYSQL_PARAMETERS;extdecl;external mysqllib name 'mysql_get_parameters';
{ Set up and bring down a thread; these function should be called
for each thread in an application which opens at least one MySQL
connection. All uses of the connection(s) should be between these
function calls. }
- function mysql_thread_init:my_bool;extdecl;external mysqlvlib name 'mysql_thread_init';
- procedure mysql_thread_end;extdecl;external mysqlvlib name 'mysql_thread_end';
+ function mysql_thread_init:my_bool;extdecl;external mysqllib name 'mysql_thread_init';
+ procedure mysql_thread_end;extdecl;external mysqllib name 'mysql_thread_end';
{ Functions to get information from the MYSQL and MYSQL_RES structures
Should definitely be used if one uses shared libraries. }
- function mysql_num_rows(res:PMYSQL_RES):my_ulonglong;extdecl;external mysqlvlib name 'mysql_num_rows';
- function mysql_num_fields(res:PMYSQL_RES):cuint;extdecl;external mysqlvlib name 'mysql_num_fields';
- function mysql_eof(res:PMYSQL_RES):my_bool;extdecl;external mysqlvlib name 'mysql_eof';
- function mysql_fetch_field_direct(res:PMYSQL_RES; fieldnr:cuint):PMYSQL_FIELD;extdecl;external mysqlvlib name 'mysql_fetch_field_direct';
- function mysql_fetch_fields(res:PMYSQL_RES):PMYSQL_FIELD;extdecl;external mysqlvlib name 'mysql_fetch_fields';
- function mysql_row_tell(res:PMYSQL_RES):MYSQL_ROW_OFFSET;extdecl;external mysqlvlib name 'mysql_row_tell';
- function mysql_field_tell(res:PMYSQL_RES):MYSQL_FIELD_OFFSET;extdecl;external mysqlvlib name 'mysql_field_tell';
- function mysql_field_count(mysql:PMYSQL):cuint;extdecl;external mysqlvlib name 'mysql_field_count';
- function mysql_affected_rows(mysql:PMYSQL):my_ulonglong;extdecl;external mysqlvlib name 'mysql_affected_rows';
- function mysql_insert_id(mysql:PMYSQL):my_ulonglong;extdecl;external mysqlvlib name 'mysql_insert_id';
- function mysql_errno(mysql:PMYSQL):cuint;extdecl;external mysqlvlib name 'mysql_errno';
- function mysql_error(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_error';
- function mysql_sqlstate(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_sqlstate';
- function mysql_warning_count(mysql:PMYSQL):cuint;extdecl;external mysqlvlib name 'mysql_warning_count';
- function mysql_info(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_info';
- function mysql_thread_id(mysql:PMYSQL):culong;extdecl;external mysqlvlib name 'mysql_thread_id';
- function mysql_character_set_name(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_character_set_name';
- function mysql_set_character_set(mysql:PMYSQL; csname:Pchar):longint;extdecl;external mysqlvlib name 'mysql_set_character_set';
- function mysql_init(mysql:PMYSQL):PMYSQL;extdecl;external mysqlvlib name 'mysql_init';
+ function mysql_num_rows(res:PMYSQL_RES):my_ulonglong;extdecl;external mysqllib name 'mysql_num_rows';
+ function mysql_num_fields(res:PMYSQL_RES):cuint;extdecl;external mysqllib name 'mysql_num_fields';
+ function mysql_eof(res:PMYSQL_RES):my_bool;extdecl;external mysqllib name 'mysql_eof';
+ function mysql_fetch_field_direct(res:PMYSQL_RES; fieldnr:cuint):PMYSQL_FIELD;extdecl;external mysqllib name 'mysql_fetch_field_direct';
+ function mysql_fetch_fields(res:PMYSQL_RES):PMYSQL_FIELD;extdecl;external mysqllib name 'mysql_fetch_fields';
+ function mysql_row_tell(res:PMYSQL_RES):MYSQL_ROW_OFFSET;extdecl;external mysqllib name 'mysql_row_tell';
+ function mysql_field_tell(res:PMYSQL_RES):MYSQL_FIELD_OFFSET;extdecl;external mysqllib name 'mysql_field_tell';
+ function mysql_field_count(mysql:PMYSQL):cuint;extdecl;external mysqllib name 'mysql_field_count';
+ function mysql_affected_rows(mysql:PMYSQL):my_ulonglong;extdecl;external mysqllib name 'mysql_affected_rows';
+ function mysql_insert_id(mysql:PMYSQL):my_ulonglong;extdecl;external mysqllib name 'mysql_insert_id';
+ function mysql_errno(mysql:PMYSQL):cuint;extdecl;external mysqllib name 'mysql_errno';
+ function mysql_error(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_error';
+ function mysql_sqlstate(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_sqlstate';
+ function mysql_warning_count(mysql:PMYSQL):cuint;extdecl;external mysqllib name 'mysql_warning_count';
+ function mysql_info(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_info';
+ function mysql_thread_id(mysql:PMYSQL):culong;extdecl;external mysqllib name 'mysql_thread_id';
+ function mysql_character_set_name(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_character_set_name';
+ function mysql_set_character_set(mysql:PMYSQL; csname:Pchar):longint;extdecl;external mysqllib name 'mysql_set_character_set';
+ function mysql_init(mysql:PMYSQL):PMYSQL;extdecl;external mysqllib name 'mysql_init';
function mysql_ssl_set(mysql:PMYSQL; key:Pchar; cert:Pchar; ca:Pchar; capath:Pchar;
- cipher:Pchar):my_bool;extdecl;external mysqlvlib name 'mysql_ssl_set';
- function mysql_change_user(mysql:PMYSQL; user:Pchar; passwd:Pchar; db:Pchar):my_bool;extdecl;external mysqlvlib name 'mysql_change_user';
+ cipher:Pchar):my_bool;extdecl;external mysqllib name 'mysql_ssl_set';
+ function mysql_change_user(mysql:PMYSQL; user:Pchar; passwd:Pchar; db:Pchar):my_bool;extdecl;external mysqllib name 'mysql_change_user';
function mysql_real_connect(mysql:PMYSQL; host:Pchar; user:Pchar; passwd:Pchar; db:Pchar;
- port:cuint; unix_socket:Pchar; clientflag:culong):PMYSQL;extdecl;external mysqlvlib name 'mysql_real_connect';
- function mysql_select_db(mysql:PMYSQL; db:Pchar):cint;extdecl;external mysqlvlib name 'mysql_select_db';
- function mysql_query(mysql:PMYSQL; q:Pchar):cint;extdecl;external mysqlvlib name 'mysql_query';
- function mysql_send_query(mysql:PMYSQL; q:Pchar; length:culong):cint;extdecl;external mysqlvlib name 'mysql_send_query';
- function mysql_real_query(mysql:PMYSQL; q:Pchar; length:culong):cint;extdecl;external mysqlvlib name 'mysql_real_query';
- function mysql_store_result(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_store_result';
- function mysql_use_result(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_use_result';
+ port:cuint; unix_socket:Pchar; clientflag:culong):PMYSQL;extdecl;external mysqllib name 'mysql_real_connect';
+ function mysql_select_db(mysql:PMYSQL; db:Pchar):cint;extdecl;external mysqllib name 'mysql_select_db';
+ function mysql_query(mysql:PMYSQL; q:Pchar):cint;extdecl;external mysqllib name 'mysql_query';
+ function mysql_send_query(mysql:PMYSQL; q:Pchar; length:culong):cint;extdecl;external mysqllib name 'mysql_send_query';
+ function mysql_real_query(mysql:PMYSQL; q:Pchar; length:culong):cint;extdecl;external mysqllib name 'mysql_real_query';
+ function mysql_store_result(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqllib name 'mysql_store_result';
+ function mysql_use_result(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqllib name 'mysql_use_result';
{$ELSE}
@@ -1330,16 +1329,16 @@ uses
mysql_use_result: function (mysql:PMYSQL):PMYSQL_RES;extdecl;
{$ENDIF}
-{$IFNDEF LOAD_DYNAMICALLY}
+{$IFNDEF LinkDynamically}
{ perform query on master }
- function mysql_master_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqlvlib name 'mysql_master_query';
- function mysql_master_send_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqlvlib name 'mysql_master_send_query';
+ function mysql_master_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqllib name 'mysql_master_query';
+ function mysql_master_send_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqllib name 'mysql_master_send_query';
{ perform query on slave }
- function mysql_slave_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqlvlib name 'mysql_slave_query';
- function mysql_slave_send_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqlvlib name 'mysql_slave_send_query';
+ function mysql_slave_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqllib name 'mysql_slave_query';
+ function mysql_slave_send_query(mysql:PMYSQL; q:Pchar; length:culong):my_bool;extdecl;external mysqllib name 'mysql_slave_send_query';
{$IFDEF mysql50}
- procedure mysql_get_character_set_info(mysql : PMYSQL; charset : PMY_CHARSET_INFO);extdecl;external mysqlvlib name 'mysql_get_character_set_info';
+ procedure mysql_get_character_set_info(mysql : PMYSQL; charset : PMY_CHARSET_INFO);extdecl;external mysqllib name 'mysql_get_character_set_info';
{$ENDIF}
{$ENDIF}
@@ -1348,110 +1347,110 @@ uses
const
LOCAL_INFILE_ERROR_LEN = 512;
-{$IFNDEF LOAD_DYNAMICALLY}
+{$IFNDEF LinkDynamically}
{ procedure mysql_set_local_infile_handler(mysql:PMYSQL; local_infile_init:function (_para1:Ppointer; _para2:Pchar; _para3:pointer):longint; local_infile_read:function (_para1:pointer; _para2:Pchar; _para3:dword):longint; local_infile_end:procedure (_pa
- _para6:pointer);cdecl;external mysqlvlib name 'mysql_set_local_infile_handler';}
- procedure mysql_set_local_infile_default(mysql:PMYSQL);cdecl;external mysqlvlib name 'mysql_set_local_infile_default';
+ _para6:pointer);cdecl;external mysqllib name 'mysql_set_local_infile_handler';}
+ procedure mysql_set_local_infile_default(mysql:PMYSQL);cdecl;external mysqllib name 'mysql_set_local_infile_default';
{ enable/disable parsing of all queries to decide if they go on master or
slave }
- procedure mysql_enable_rpl_parse(mysql:PMYSQL);extdecl;external mysqlvlib name 'mysql_enable_rpl_parse';
- procedure mysql_disable_rpl_parse(mysql:PMYSQL);extdecl;external mysqlvlib name 'mysql_disable_rpl_parse';
+ procedure mysql_enable_rpl_parse(mysql:PMYSQL);extdecl;external mysqllib name 'mysql_enable_rpl_parse';
+ procedure mysql_disable_rpl_parse(mysql:PMYSQL);extdecl;external mysqllib name 'mysql_disable_rpl_parse';
{ get the value of the parse flag }
- function mysql_rpl_parse_enabled(mysql:PMYSQL):cint;extdecl;external mysqlvlib name 'mysql_rpl_parse_enabled';
+ function mysql_rpl_parse_enabled(mysql:PMYSQL):cint;extdecl;external mysqllib name 'mysql_rpl_parse_enabled';
{ enable/disable reads from master }
- procedure mysql_enable_reads_from_master(mysql:PMYSQL);extdecl;external mysqlvlib name 'mysql_enable_reads_from_master';
- procedure mysql_disable_reads_from_master(mysql:PMYSQL);extdecl;external mysqlvlib name 'mysql_disable_reads_from_master';
+ procedure mysql_enable_reads_from_master(mysql:PMYSQL);extdecl;external mysqllib name 'mysql_enable_reads_from_master';
+ procedure mysql_disable_reads_from_master(mysql:PMYSQL);extdecl;external mysqllib name 'mysql_disable_reads_from_master';
{ get the value of the master read flag }
- function mysql_reads_from_master_enabled(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_reads_from_master_enabled';
+ function mysql_reads_from_master_enabled(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_reads_from_master_enabled';
- function mysql_rpl_query_type(q : pchar;len : cint):mysql_rpl_type;extdecl;external mysqlvlib name 'mysql_rpl_query_type';
+ function mysql_rpl_query_type(q : pchar;len : cint):mysql_rpl_type;extdecl;external mysqllib name 'mysql_rpl_query_type';
{ discover the master and its slaves }
- function mysql_rpl_probe(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_rpl_probe';
+ function mysql_rpl_probe(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_rpl_probe';
{ set the master, close/free the old one, if it is not a pivot }
- function mysql_set_master(mysql:PMYSQL; host:Pchar; port:cuint; user:Pchar; passwd:Pchar):cint;extdecl;external mysqlvlib name 'mysql_set_master';
- function mysql_add_slave(mysql:PMYSQL; host:Pchar; port:cuint; user:Pchar; passwd:Pchar):cint;extdecl;external mysqlvlib name 'mysql_add_slave';
- function mysql_shutdown(mysql:PMYSQL; shutdown_level:mysql_enum_shutdown_level):cint;extdecl;external mysqlvlib name 'mysql_shutdown';
- function mysql_dump_debug_info(mysql:PMYSQL):cint;extdecl;external mysqlvlib name 'mysql_dump_debug_info';
- function mysql_refresh(mysql:PMYSQL; refresh_options:cuint):cint;extdecl;external mysqlvlib name 'mysql_refresh';
- function mysql_kill(mysql:PMYSQL; pid:culong):cint;extdecl;external mysqlvlib name 'mysql_kill';
- function mysql_set_server_option(mysql:PMYSQL; option:enum_mysql_set_option):cint;extdecl;external mysqlvlib name 'mysql_set_server_option';
- function mysql_ping(mysql:PMYSQL):cint;extdecl;external mysqlvlib name 'mysql_ping';
- function mysql_stat(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_stat';
- function mysql_get_server_info(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_get_server_info';
- function mysql_get_client_info:Pchar;extdecl;external mysqlvlib name 'mysql_get_client_info';
- function mysql_get_client_version:culong;extdecl;external mysqlvlib name 'mysql_get_client_version';
- function mysql_get_host_info(mysql:PMYSQL):Pchar;extdecl;external mysqlvlib name 'mysql_get_host_info';
- function mysql_get_server_version(mysql:PMYSQL):culong;extdecl;external mysqlvlib name 'mysql_get_server_version';
- function mysql_get_proto_info(mysql:PMYSQL):cuint;extdecl;external mysqlvlib name 'mysql_get_proto_info';
- function mysql_list_dbs(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_list_dbs';
-
- function mysql_list_tables(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_list_tables';
- function mysql_list_processes(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_list_processes';
- function mysql_options(mysql:PMYSQL; option:mysql_option; arg:Pchar):cint;extdecl;external mysqlvlib name 'mysql_options';
- procedure mysql_free_result(result:PMYSQL_RES);extdecl;external mysqlvlib name 'mysql_free_result';
- procedure mysql_data_seek(result:PMYSQL_RES; offset:my_ulonglong);extdecl;external mysqlvlib name 'mysql_data_seek';
- function mysql_row_seek(result:PMYSQL_RES; offset:MYSQL_ROW_OFFSET):MYSQL_ROW_OFFSET;extdecl;external mysqlvlib name 'mysql_row_seek';
- function mysql_field_seek(result:PMYSQL_RES; offset:MYSQL_FIELD_OFFSET):MYSQL_FIELD_OFFSET;extdecl;external mysqlvlib name 'mysql_field_seek';
- function mysql_fetch_row(result:PMYSQL_RES):MYSQL_ROW;extdecl;external mysqlvlib name 'mysql_fetch_row';
- function mysql_fetch_lengths(result:PMYSQL_RES):pculong;extdecl;external mysqlvlib name 'mysql_fetch_lengths';
- function mysql_fetch_field(result:PMYSQL_RES):PMYSQL_FIELD;extdecl;external mysqlvlib name 'mysql_fetch_field';
- function mysql_list_fields(mysql:PMYSQL; table:Pchar; wild:Pchar):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_list_fields';
- function mysql_escape_string(fto:Pchar; from:Pchar; from_length:culong):culong;extdecl;external mysqlvlib name 'mysql_escape_string';
- function mysql_hex_string(fto:Pchar; from:Pchar; from_length:culong):culong;extdecl;external mysqlvlib name 'mysql_hex_string';
- function mysql_real_escape_string(mysql:PMYSQL; fto:Pchar; from:Pchar; length:culong):culong;extdecl;external mysqlvlib name 'mysql_real_escape_string';
- procedure mysql_debug(debug:Pchar);extdecl;external mysqlvlib name 'mysql_debug';
+ function mysql_set_master(mysql:PMYSQL; host:Pchar; port:cuint; user:Pchar; passwd:Pchar):cint;extdecl;external mysqllib name 'mysql_set_master';
+ function mysql_add_slave(mysql:PMYSQL; host:Pchar; port:cuint; user:Pchar; passwd:Pchar):cint;extdecl;external mysqllib name 'mysql_add_slave';
+ function mysql_shutdown(mysql:PMYSQL; shutdown_level:mysql_enum_shutdown_level):cint;extdecl;external mysqllib name 'mysql_shutdown';
+ function mysql_dump_debug_info(mysql:PMYSQL):cint;extdecl;external mysqllib name 'mysql_dump_debug_info';
+ function mysql_refresh(mysql:PMYSQL; refresh_options:cuint):cint;extdecl;external mysqllib name 'mysql_refresh';
+ function mysql_kill(mysql:PMYSQL; pid:culong):cint;extdecl;external mysqllib name 'mysql_kill';
+ function mysql_set_server_option(mysql:PMYSQL; option:enum_mysql_set_option):cint;extdecl;external mysqllib name 'mysql_set_server_option';
+ function mysql_ping(mysql:PMYSQL):cint;extdecl;external mysqllib name 'mysql_ping';
+ function mysql_stat(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_stat';
+ function mysql_get_server_info(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_get_server_info';
+ function mysql_get_client_info:Pchar;extdecl;external mysqllib name 'mysql_get_client_info';
+ function mysql_get_client_version:culong;extdecl;external mysqllib name 'mysql_get_client_version';
+ function mysql_get_host_info(mysql:PMYSQL):Pchar;extdecl;external mysqllib name 'mysql_get_host_info';
+ function mysql_get_server_version(mysql:PMYSQL):culong;extdecl;external mysqllib name 'mysql_get_server_version';
+ function mysql_get_proto_info(mysql:PMYSQL):cuint;extdecl;external mysqllib name 'mysql_get_proto_info';
+ function mysql_list_dbs(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;extdecl;external mysqllib name 'mysql_list_dbs';
+
+ function mysql_list_tables(mysql:PMYSQL; wild:Pchar):PMYSQL_RES;extdecl;external mysqllib name 'mysql_list_tables';
+ function mysql_list_processes(mysql:PMYSQL):PMYSQL_RES;extdecl;external mysqllib name 'mysql_list_processes';
+ function mysql_options(mysql:PMYSQL; option:mysql_option; arg:Pchar):cint;extdecl;external mysqllib name 'mysql_options';
+ procedure mysql_free_result(result:PMYSQL_RES);extdecl;external mysqllib name 'mysql_free_result';
+ procedure mysql_data_seek(result:PMYSQL_RES; offset:my_ulonglong);extdecl;external mysqllib name 'mysql_data_seek';
+ function mysql_row_seek(result:PMYSQL_RES; offset:MYSQL_ROW_OFFSET):MYSQL_ROW_OFFSET;extdecl;external mysqllib name 'mysql_row_seek';
+ function mysql_field_seek(result:PMYSQL_RES; offset:MYSQL_FIELD_OFFSET):MYSQL_FIELD_OFFSET;extdecl;external mysqllib name 'mysql_field_seek';
+ function mysql_fetch_row(result:PMYSQL_RES):MYSQL_ROW;extdecl;external mysqllib name 'mysql_fetch_row';
+ function mysql_fetch_lengths(result:PMYSQL_RES):pculong;extdecl;external mysqllib name 'mysql_fetch_lengths';
+ function mysql_fetch_field(result:PMYSQL_RES):PMYSQL_FIELD;extdecl;external mysqllib name 'mysql_fetch_field';
+ function mysql_list_fields(mysql:PMYSQL; table:Pchar; wild:Pchar):PMYSQL_RES;extdecl;external mysqllib name 'mysql_list_fields';
+ function mysql_escape_string(fto:Pchar; from:Pchar; from_length:culong):culong;extdecl;external mysqllib name 'mysql_escape_string';
+ function mysql_hex_string(fto:Pchar; from:Pchar; from_length:culong):culong;extdecl;external mysqllib name 'mysql_hex_string';
+ function mysql_real_escape_string(mysql:PMYSQL; fto:Pchar; from:Pchar; length:culong):culong;extdecl;external mysqllib name 'mysql_real_escape_string';
+ procedure mysql_debug(debug:Pchar);extdecl;external mysqllib name 'mysql_debug';
{ function mysql_odbc_escape_string(mysql:PMYSQL; fto:Pchar; to_length:dword; from:Pchar; from_length:dword;
- param:pointer; extend_buffer:function (_para1:pointer; to:Pchar; length:Pdword):Pchar):Pchar;extdecl;external mysqlvlib name 'mysql_odbc_escape_string';}
- procedure myodbc_remove_escape(mysql:PMYSQL; name:Pchar);extdecl;external mysqlvlib name 'myodbc_remove_escape';
- function mysql_thread_safe:cuint;extdecl;external mysqlvlib name 'mysql_thread_safe';
- function mysql_embedded:my_bool;extdecl;external mysqlvlib name 'mysql_embedded';
- function mysql_manager_init(con:PMYSQL_MANAGER):PMYSQL_MANAGER;extdecl;external mysqlvlib name 'mysql_manager_init';
- function mysql_manager_connect(con:PMYSQL_MANAGER; host:Pchar; user:Pchar; passwd:Pchar; port:cuint):PMYSQL_MANAGER;extdecl;external mysqlvlib name 'mysql_manager_connect';
- procedure mysql_manager_close(con:PMYSQL_MANAGER);extdecl;external mysqlvlib name 'mysql_manager_close';
- function mysql_manager_command(con:PMYSQL_MANAGER; cmd:Pchar; cmd_len:cint):cint;extdecl;external mysqlvlib name 'mysql_manager_command';
- function mysql_manager_fetch_line(con:PMYSQL_MANAGER; res_buf:Pchar; res_buf_size:cint):cint;extdecl;external mysqlvlib name 'mysql_manager_fetch_line';
- function mysql_read_query_result(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_read_query_result';
-
- function mysql_stmt_init(mysql:PMYSQL):PMYSQL_STMT;extdecl;external mysqlvlib name 'mysql_stmt_init';
- function mysql_stmt_prepare(stmt:PMYSQL_STMT; query:Pchar; length:culong):cint;extdecl;external mysqlvlib name 'mysql_stmt_prepare';
- function mysql_stmt_execute(stmt:PMYSQL_STMT):cint;extdecl;external mysqlvlib name 'mysql_stmt_execute';
- function mysql_stmt_fetch(stmt:PMYSQL_STMT):cint;extdecl;external mysqlvlib name 'mysql_stmt_fetch';
- function mysql_stmt_fetch_column(stmt:PMYSQL_STMT; bind:PMYSQL_BIND; column:cuint; offset:culong):cint;extdecl;external mysqlvlib name 'mysql_stmt_fetch_column';
- function mysql_stmt_store_result(stmt:PMYSQL_STMT):cint;extdecl;external mysqlvlib name 'mysql_stmt_store_result';
- function mysql_stmt_param_count(stmt:PMYSQL_STMT):culong;extdecl;external mysqlvlib name 'mysql_stmt_param_count';
- function mysql_stmt_attr_set(stmt:PMYSQL_STMT; attr_type:enum_stmt_attr_type; attr:pointer):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_attr_set';
- function mysql_stmt_attr_get(stmt:PMYSQL_STMT; attr_type:enum_stmt_attr_type; attr:pointer):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_attr_get';
- function mysql_stmt_bind_param(stmt:PMYSQL_STMT; bnd:PMYSQL_BIND):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_bind_param';
- function mysql_stmt_bind_result(stmt:PMYSQL_STMT; bnd:PMYSQL_BIND):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_bind_result';
- function mysql_stmt_close(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_close';
- function mysql_stmt_reset(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_reset';
- function mysql_stmt_free_result(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_free_result';
- function mysql_stmt_send_long_data(stmt:PMYSQL_STMT; param_number:cuint; data:Pchar; length:culong):my_bool;extdecl;external mysqlvlib name 'mysql_stmt_send_long_data';
- function mysql_stmt_result_metadata(stmt:PMYSQL_STMT):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_stmt_result_metadata';
- function mysql_stmt_param_metadata(stmt:PMYSQL_STMT):PMYSQL_RES;extdecl;external mysqlvlib name 'mysql_stmt_param_metadata';
- function mysql_stmt_errno(stmt:PMYSQL_STMT):cuint;extdecl;external mysqlvlib name 'mysql_stmt_errno';
- function mysql_stmt_error(stmt:PMYSQL_STMT):Pchar;extdecl;external mysqlvlib name 'mysql_stmt_error';
- function mysql_stmt_sqlstate(stmt:PMYSQL_STMT):Pchar;extdecl;external mysqlvlib name 'mysql_stmt_sqlstate';
- function mysql_stmt_row_seek(stmt:PMYSQL_STMT; offset:MYSQL_ROW_OFFSET):MYSQL_ROW_OFFSET;extdecl;external mysqlvlib name 'mysql_stmt_row_seek';
- function mysql_stmt_row_tell(stmt:PMYSQL_STMT):MYSQL_ROW_OFFSET;extdecl;external mysqlvlib name 'mysql_stmt_row_tell';
- procedure mysql_stmt_data_seek(stmt:PMYSQL_STMT; offset:my_ulonglong);extdecl;external mysqlvlib name 'mysql_stmt_data_seek';
- function mysql_stmt_num_rows(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqlvlib name 'mysql_stmt_num_rows';
- function mysql_stmt_affected_rows(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqlvlib name 'mysql_stmt_affected_rows';
- function mysql_stmt_insert_id(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqlvlib name 'mysql_stmt_insert_id';
- function mysql_stmt_field_count(stmt:PMYSQL_STMT):cuint;extdecl;external mysqlvlib name 'mysql_stmt_field_count';
-
- function mysql_commit(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_commit';
- function mysql_rollback(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_rollback';
- function mysql_autocommit(mysql:PMYSQL; auto_mode:my_bool):my_bool;extdecl;external mysqlvlib name 'mysql_autocommit';
- function mysql_more_results(mysql:PMYSQL):my_bool;extdecl;external mysqlvlib name 'mysql_more_results';
- function mysql_next_result(mysql:PMYSQL):cint;extdecl;external mysqlvlib name 'mysql_next_result';
- procedure mysql_close(sock:PMYSQL);extdecl;external mysqlvlib name 'mysql_close';
+ param:pointer; extend_buffer:function (_para1:pointer; to:Pchar; length:Pdword):Pchar):Pchar;extdecl;external mysqllib name 'mysql_odbc_escape_string';}
+ procedure myodbc_remove_escape(mysql:PMYSQL; name:Pchar);extdecl;external mysqllib name 'myodbc_remove_escape';
+ function mysql_thread_safe:cuint;extdecl;external mysqllib name 'mysql_thread_safe';
+ function mysql_embedded:my_bool;extdecl;external mysqllib name 'mysql_embedded';
+ function mysql_manager_init(con:PMYSQL_MANAGER):PMYSQL_MANAGER;extdecl;external mysqllib name 'mysql_manager_init';
+ function mysql_manager_connect(con:PMYSQL_MANAGER; host:Pchar; user:Pchar; passwd:Pchar; port:cuint):PMYSQL_MANAGER;extdecl;external mysqllib name 'mysql_manager_connect';
+ procedure mysql_manager_close(con:PMYSQL_MANAGER);extdecl;external mysqllib name 'mysql_manager_close';
+ function mysql_manager_command(con:PMYSQL_MANAGER; cmd:Pchar; cmd_len:cint):cint;extdecl;external mysqllib name 'mysql_manager_command';
+ function mysql_manager_fetch_line(con:PMYSQL_MANAGER; res_buf:Pchar; res_buf_size:cint):cint;extdecl;external mysqllib name 'mysql_manager_fetch_line';
+ function mysql_read_query_result(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_read_query_result';
+
+ function mysql_stmt_init(mysql:PMYSQL):PMYSQL_STMT;extdecl;external mysqllib name 'mysql_stmt_init';
+ function mysql_stmt_prepare(stmt:PMYSQL_STMT; query:Pchar; length:culong):cint;extdecl;external mysqllib name 'mysql_stmt_prepare';
+ function mysql_stmt_execute(stmt:PMYSQL_STMT):cint;extdecl;external mysqllib name 'mysql_stmt_execute';
+ function mysql_stmt_fetch(stmt:PMYSQL_STMT):cint;extdecl;external mysqllib name 'mysql_stmt_fetch';
+ function mysql_stmt_fetch_column(stmt:PMYSQL_STMT; bind:PMYSQL_BIND; column:cuint; offset:culong):cint;extdecl;external mysqllib name 'mysql_stmt_fetch_column';
+ function mysql_stmt_store_result(stmt:PMYSQL_STMT):cint;extdecl;external mysqllib name 'mysql_stmt_store_result';
+ function mysql_stmt_param_count(stmt:PMYSQL_STMT):culong;extdecl;external mysqllib name 'mysql_stmt_param_count';
+ function mysql_stmt_attr_set(stmt:PMYSQL_STMT; attr_type:enum_stmt_attr_type; attr:pointer):my_bool;extdecl;external mysqllib name 'mysql_stmt_attr_set';
+ function mysql_stmt_attr_get(stmt:PMYSQL_STMT; attr_type:enum_stmt_attr_type; attr:pointer):my_bool;extdecl;external mysqllib name 'mysql_stmt_attr_get';
+ function mysql_stmt_bind_param(stmt:PMYSQL_STMT; bnd:PMYSQL_BIND):my_bool;extdecl;external mysqllib name 'mysql_stmt_bind_param';
+ function mysql_stmt_bind_result(stmt:PMYSQL_STMT; bnd:PMYSQL_BIND):my_bool;extdecl;external mysqllib name 'mysql_stmt_bind_result';
+ function mysql_stmt_close(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqllib name 'mysql_stmt_close';
+ function mysql_stmt_reset(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqllib name 'mysql_stmt_reset';
+ function mysql_stmt_free_result(stmt:PMYSQL_STMT):my_bool;extdecl;external mysqllib name 'mysql_stmt_free_result';
+ function mysql_stmt_send_long_data(stmt:PMYSQL_STMT; param_number:cuint; data:Pchar; length:culong):my_bool;extdecl;external mysqllib name 'mysql_stmt_send_long_data';
+ function mysql_stmt_result_metadata(stmt:PMYSQL_STMT):PMYSQL_RES;extdecl;external mysqllib name 'mysql_stmt_result_metadata';
+ function mysql_stmt_param_metadata(stmt:PMYSQL_STMT):PMYSQL_RES;extdecl;external mysqllib name 'mysql_stmt_param_metadata';
+ function mysql_stmt_errno(stmt:PMYSQL_STMT):cuint;extdecl;external mysqllib name 'mysql_stmt_errno';
+ function mysql_stmt_error(stmt:PMYSQL_STMT):Pchar;extdecl;external mysqllib name 'mysql_stmt_error';
+ function mysql_stmt_sqlstate(stmt:PMYSQL_STMT):Pchar;extdecl;external mysqllib name 'mysql_stmt_sqlstate';
+ function mysql_stmt_row_seek(stmt:PMYSQL_STMT; offset:MYSQL_ROW_OFFSET):MYSQL_ROW_OFFSET;extdecl;external mysqllib name 'mysql_stmt_row_seek';
+ function mysql_stmt_row_tell(stmt:PMYSQL_STMT):MYSQL_ROW_OFFSET;extdecl;external mysqllib name 'mysql_stmt_row_tell';
+ procedure mysql_stmt_data_seek(stmt:PMYSQL_STMT; offset:my_ulonglong);extdecl;external mysqllib name 'mysql_stmt_data_seek';
+ function mysql_stmt_num_rows(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqllib name 'mysql_stmt_num_rows';
+ function mysql_stmt_affected_rows(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqllib name 'mysql_stmt_affected_rows';
+ function mysql_stmt_insert_id(stmt:PMYSQL_STMT):my_ulonglong;extdecl;external mysqllib name 'mysql_stmt_insert_id';
+ function mysql_stmt_field_count(stmt:PMYSQL_STMT):cuint;extdecl;external mysqllib name 'mysql_stmt_field_count';
+
+ function mysql_commit(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_commit';
+ function mysql_rollback(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_rollback';
+ function mysql_autocommit(mysql:PMYSQL; auto_mode:my_bool):my_bool;extdecl;external mysqllib name 'mysql_autocommit';
+ function mysql_more_results(mysql:PMYSQL):my_bool;extdecl;external mysqllib name 'mysql_more_results';
+ function mysql_next_result(mysql:PMYSQL):cint;extdecl;external mysqllib name 'mysql_next_result';
+ procedure mysql_close(sock:PMYSQL);extdecl;external mysqllib name 'mysql_close';
{$ELSE}
var
@@ -1532,7 +1531,7 @@ uses
function mysql_reload(mysql : PMySQL) : cint;
-{$IFNDEF LOAD_DYNAMICALLY}
+{$IFNDEF LinkDynamically}
{$ifdef USE_OLD_FUNCTIONS}
function mysql_connect(mysql:PMYSQL; host:Pchar; user:Pchar; passwd:Pchar):PMYSQL;extdecl;external External_library name 'mysql_connect';
function mysql_create_db(mysql:PMYSQL; DB:Pchar):cint;extdecl;external External_library name 'mysql_create_db';
@@ -1541,262 +1540,260 @@ uses
{$endif}
{$endif}
-{$define HAVE_MYSQL_REAL_CONNECT}
+{$define HAVE_MYSQL_REAL_CONNECT}
{ The following functions are mainly exported because of mysqlbinlog;
They are not for general usage }
function simple_command(mysql,command,arg,length,skip_check : cint) : cint;
-{$IFNDEF LOAD_DYNAMICALLY}
- function net_safe_read(mysql:PMYSQL):cuint;cdecl;external mysqlvlib name 'net_safe_read';
+{$IFNDEF LinkDynamically}
+ function net_safe_read(mysql:PMYSQL):cuint;cdecl;external mysqllib name 'net_safe_read';
{$ENDIF}
{$ifdef NETWARE}
(** unsupported pragma#pragma pack(pop) /* restore alignment */*)
{$endif}
-{$IFDEF LOAD_DYNAMICALLY}
-function InitializeMysql(const LibraryName: String = ''; argc: cint = -1; argv: PPchar = nil; groups: PPchar = nil): Integer;
-function TryInitializeMysql(const LibraryName: string = ''; argc: cint = -1; argv: PPchar = nil; groups: PPchar = nil): Integer;
-function ReleaseMysql: Integer;
+{$IFDEF LinkDynamically}
+Function InitialiseMysql(Const LibraryName : String; argc:cint = -1; argv:PPchar = nil; groups:PPchar = nil) : Integer;
+Function InitialiseMysql(argc:cint = -1; argv:PPchar = nil; groups:PPchar = nil) : Integer;
+Procedure ReleaseMysql;
-var
- MysqlLibrary: TLibHandler;
-
-function InitialiseMysql(argc: cint = -1; argv: PPchar = nil; groups: PPchar = nil): Integer; deprecated;
-function InitialiseMysql(const LibraryName: String; argc: cint = -1; argv: PPchar = nil; groups: PPchar = nil): Integer; deprecated;
-function TryInitialiseMysql(const LibraryName: string; argc: cint = -1; argv: PPchar = nil; groups: PPchar = nil): Integer; deprecated;
+var MysqlLibraryHandle : TLibHandle;
{$ENDIF}
implementation
+{$IFDEF LinkDynamically}
-function net_new_transaction(net : st_net) : st_net;
-begin
- net.pkt_nr := 0;
- result := net;
-end;
+ResourceString
+ SErrAlreadyLoaded = 'MySQL interface already initialized from library %s.';
+ SErrLoadFailed = 'Can not load MySQL library "%s". Please check your installation.';
+ SErrDefaultsFailed = 'Can not load default MySQL library ("%s" or "%s"). Check your installation.';
-function IS_PRI_KEY(n : longint) : boolean;
-begin
- IS_PRI_KEY:=(n and PRI_KEY_FLAG)<>0;
-end;
+var
+ RefCount : integer;
+ LoadedLibrary : String;
-function IS_NOT_NULL(n : longint) : boolean;
-begin
- IS_NOT_NULL:=(n and NOT_NULL_FLAG)<>0;
-end;
+Function TryInitialiseMysql(Const LibraryName: String; argc: cint; argv: PPchar; groups: PPchar) : Integer;
-function IS_BLOB(n : longint) : boolean;
begin
- IS_BLOB:=(n and BLOB_FLAG)<>0;
-end;
+ Result := 0;
+ if (RefCount=0) then
+ begin
+ MysqlLibraryHandle := loadlibrary(LibraryName);
+ if (MysqlLibraryHandle=nilhandle) then
+ Exit;
+ Inc(RefCount);
+ LoadedLibrary:=LibraryName;
+// Only the procedure that are given in the c-library documentation are loaded, to
+// avoid problems with 'incomplete' libraries
+ pointer(my_init) := GetProcedureAddress(MysqlLibraryHandle,'my_init');
+ pointer(my_thread_init) := GetProcedureAddress(MysqlLibraryHandle,'my_thread_init');
+ pointer(my_thread_end) := GetProcedureAddress(MysqlLibraryHandle,'my_thread_end');
+
+ pointer(mysql_affected_rows) := GetProcedureAddress(MysqlLibraryHandle,'mysql_affected_rows');
+ pointer(mysql_autocommit) := GetProcedureAddress(MysqlLibraryHandle,'mysql_autocommit');
+ pointer(mysql_change_user) := GetProcedureAddress(MysqlLibraryHandle,'mysql_change_user');
+// pointer(mysql_charset_name) := GetProcedureAddress(MysqlLibraryHandle,'mysql_charset_name');
+ pointer(mysql_close) := GetProcedureAddress(MysqlLibraryHandle,'mysql_close');
+ pointer(mysql_commit) := GetProcedureAddress(MysqlLibraryHandle,'mysql_commit');
+// pointer(mysql_connect) := GetProcedureAddress(MysqlLibraryHandle,'mysql_connect');
+// pointer(mysql_create_db) := GetProcedureAddress(MysqlLibraryHandle,'mysql_create_db');
+ pointer(mysql_data_seek) := GetProcedureAddress(MysqlLibraryHandle,'mysql_data_seek');
+// pointer(mysql_drop_db) := GetProcedureAddress(MysqlLibraryHandle,'mysql_drop_db');
+ pointer(mysql_debug) := GetProcedureAddress(MysqlLibraryHandle,'mysql_debug');
+ pointer(mysql_dump_debug_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_dump_debug_info');
+ pointer(mysql_eof) := GetProcedureAddress(MysqlLibraryHandle,'mysql_eof');
+ pointer(mysql_errno) := GetProcedureAddress(MysqlLibraryHandle,'mysql_errno');
+ pointer(mysql_error) := GetProcedureAddress(MysqlLibraryHandle,'mysql_error');
+ pointer(mysql_escape_string) := GetProcedureAddress(MysqlLibraryHandle,'mysql_escape_string');
+ pointer(mysql_fetch_field) := GetProcedureAddress(MysqlLibraryHandle,'mysql_fetch_field');
+ pointer(mysql_fetch_field_direct) := GetProcedureAddress(MysqlLibraryHandle,'mysql_fetch_field_direct');
+ pointer(mysql_fetch_fields) := GetProcedureAddress(MysqlLibraryHandle,'mysql_fetch_fields');
+ pointer(mysql_fetch_lengths) := GetProcedureAddress(MysqlLibraryHandle,'mysql_fetch_lengths');
+ pointer(mysql_fetch_row) := GetProcedureAddress(MysqlLibraryHandle,'mysql_fetch_row');
+ pointer(mysql_field_seek) := GetProcedureAddress(MysqlLibraryHandle,'mysql_field_seek');
+ pointer(mysql_field_count) := GetProcedureAddress(MysqlLibraryHandle,'mysql_field_count');
+ pointer(mysql_field_tell) := GetProcedureAddress(MysqlLibraryHandle,'mysql_field_tell');
+ pointer(mysql_free_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_free_result');
+ pointer(mysql_get_client_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_client_info');
+ pointer(mysql_get_client_version) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_client_version');
+ pointer(mysql_get_host_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_host_info');
+ pointer(mysql_get_server_version) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_server_version');
+ pointer(mysql_get_proto_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_proto_info');
+ pointer(mysql_get_server_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_get_server_info');
+ pointer(mysql_info) := GetProcedureAddress(MysqlLibraryHandle,'mysql_info');
+ pointer(mysql_init) := GetProcedureAddress(MysqlLibraryHandle,'mysql_init');
+ pointer(mysql_insert_id) := GetProcedureAddress(MysqlLibraryHandle,'mysql_insert_id');
+ pointer(mysql_kill) := GetProcedureAddress(MysqlLibraryHandle,'mysql_kill');
+ pointer(mysql_library_end) := GetProcedureAddress(MysqlLibraryHandle,'mysql_server_end');
+ pointer(mysql_library_init) := GetProcedureAddress(MysqlLibraryHandle,'mysql_server_init');
+ pointer(mysql_list_dbs) := GetProcedureAddress(MysqlLibraryHandle,'mysql_list_dbs');
+ pointer(mysql_list_fields) := GetProcedureAddress(MysqlLibraryHandle,'mysql_list_fields');
+ pointer(mysql_list_processes) := GetProcedureAddress(MysqlLibraryHandle,'mysql_list_processes');
+ pointer(mysql_list_tables) := GetProcedureAddress(MysqlLibraryHandle,'mysql_list_tables');
+ pointer(mysql_more_results) := GetProcedureAddress(MysqlLibraryHandle,'mysql_more_results');
+ pointer(mysql_next_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_next_result');
+ pointer(mysql_num_fields) := GetProcedureAddress(MysqlLibraryHandle,'mysql_num_fields');
+ pointer(mysql_num_rows) := GetProcedureAddress(MysqlLibraryHandle,'mysql_num_rows');
+ pointer(mysql_options) := GetProcedureAddress(MysqlLibraryHandle,'mysql_options');
+ pointer(mysql_ping) := GetProcedureAddress(MysqlLibraryHandle,'mysql_ping');
+ pointer(mysql_query) := GetProcedureAddress(MysqlLibraryHandle,'mysql_query');
+ pointer(mysql_real_connect) := GetProcedureAddress(MysqlLibraryHandle,'mysql_real_connect');
+ pointer(mysql_real_escape_string) := GetProcedureAddress(MysqlLibraryHandle,'mysql_real_escape_string');
+ pointer(mysql_real_query) := GetProcedureAddress(MysqlLibraryHandle,'mysql_real_query');
+ pointer(mysql_refresh) := GetProcedureAddress(MysqlLibraryHandle,'mysql_refresh');
+// pointer(mysql_reload) := GetProcedureAddress(MysqlLibraryHandle,'mysql_reload');
+ pointer(mysql_rollback) := GetProcedureAddress(MysqlLibraryHandle,'mysql_rollback');
+ pointer(mysql_row_seek) := GetProcedureAddress(MysqlLibraryHandle,'mysql_row_seek');
+ pointer(mysql_row_tell) := GetProcedureAddress(MysqlLibraryHandle,'mysql_row_tell');
+ pointer(mysql_select_db) := GetProcedureAddress(MysqlLibraryHandle,'mysql_select_db');
+ pointer(mysql_server_end) := GetProcedureAddress(MysqlLibraryHandle,'mysql_server_end');
+ pointer(mysql_server_init) := GetProcedureAddress(MysqlLibraryHandle,'mysql_server_init');
+ pointer(mysql_set_server_option) := GetProcedureAddress(MysqlLibraryHandle,'mysql_set_server_option');
+ pointer(mysql_sqlstate) := GetProcedureAddress(MysqlLibraryHandle,'mysql_sqlstate');
+ pointer(mysql_shutdown) := GetProcedureAddress(MysqlLibraryHandle,'mysql_shutdown');
+ pointer(mysql_stat) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stat');
+ pointer(mysql_store_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_store_result');
+ pointer(mysql_thread_id) := GetProcedureAddress(MysqlLibraryHandle,'mysql_thread_id');
+// pointer(mysql_thread_save) := GetProcedureAddress(MysqlLibraryHandle,'mysql_thread_save');
+ pointer(mysql_use_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_use_result');
+ pointer(mysql_warning_count) := GetProcedureAddress(MysqlLibraryHandle,'mysql_warning_count');
+ pointer(mysql_stmt_init) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_init');
+ pointer(mysql_stmt_prepare) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_prepare');
+ pointer(mysql_stmt_execute) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_execute');
+ pointer(mysql_stmt_fetch) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_fetch');
+ pointer(mysql_stmt_fetch_column) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_fetch_column');
+ pointer(mysql_stmt_store_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_store_result');
+ pointer(mysql_stmt_param_count) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_param_count');
+ pointer(mysql_stmt_attr_set) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_attr_set');
+ pointer(mysql_stmt_attr_get) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_attr_get');
+ pointer(mysql_stmt_bind_param) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_bind_param');
+ pointer(mysql_stmt_bind_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_bind_result');
+ pointer(mysql_stmt_close) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_close');
+ pointer(mysql_stmt_reset) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_reset');
+ pointer(mysql_stmt_free_result) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_free_result');
+ pointer(mysql_stmt_send_long_data) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_send_long_data');
+ pointer(mysql_stmt_result_metadata) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_result_metadata');
+ pointer(mysql_stmt_param_metadata) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_param_metadata');
+ pointer(mysql_stmt_errno) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_errno');
+ pointer(mysql_stmt_error) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_error');
+ pointer(mysql_stmt_sqlstate) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_sqlstate');
+ pointer(mysql_stmt_row_seek) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_row_seek');
+ pointer(mysql_stmt_row_tell) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_row_tell');
+ pointer(mysql_stmt_data_seek) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_data_seek');
+ pointer(mysql_stmt_num_rows) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_num_rows');
+ pointer(mysql_stmt_affected_rows) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_affected_rows');
+ pointer(mysql_stmt_insert_id) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_insert_id');
+ pointer(mysql_stmt_field_count) := GetProcedureAddress(MysqlLibraryHandle,'mysql_stmt_field_count');
+
+ if mysql_library_init(argc, argv, groups) <> 0 then
+ Exit;
+ end
+ else
+ inc(RefCount);
-function IS_NUM_FIELD(f : pst_mysql_field) : boolean;
-begin
- IS_NUM_FIELD:=((f^.flags) and NUM_FLAG)<>0;
+ Result:=RefCount;
end;
-function IS_NUM(t : enum_field_types) : boolean;
-begin
-{$IF DEFINED(mysql50) or DEFINED(mysql51)}
- IS_NUM := (t <= FIELD_TYPE_INT24) or (t=FIELD_TYPE_YEAR) or (t=FIELD_TYPE_NEWDECIMAL);
-{$ELSE}
- IS_NUM := (t <= FIELD_TYPE_INT24) or (t=FIELD_TYPE_YEAR);
-{$ENDIF}
-end;
-function INTERNAL_NUM_FIELD(f : Pst_mysql_field) : boolean;
-begin
- INTERNAL_NUM_FIELD := (f^.ftype <= FIELD_TYPE_INT24) and ((f^.ftype <> FIELD_TYPE_TIMESTAMP)
- or (f^.length = 14) or (f^.length=8)) or (f^.ftype=FIELD_TYPE_YEAR);
-end;
-function mysql_reload(mysql : PMySQL) : cint;
-begin
- mysql_reload:=mysql_refresh(mysql,REFRESH_GRANT);
-end;
+Function InitialiseMysql(argc: cint; argv: PPchar; groups: PPchar) : Integer;
-function simple_command(mysql,command,arg,length,skip_check : longint) : longint;
begin
- //simple_command:=mysql^.(methods^.advanced_command)(mysqlcommandNullS0arglengthskip_check);
- result := -1;
+ Result := 0;
+ If (TryInitialiseMysql(mysqlvlib,argc,argv,groups) = 0) and
+ (TryInitialiseMysql(mysqllib,argc,argv,groups) = 0) then
+ Raise EInOutError.CreateFmt(SErrDefaultsFailed,[mysqlvlib,mysqllib]);
+ Result := RefCount;
end;
+Function InitialiseMysql(Const LibraryName: String; argc: cint; argv: PPchar; groups:PPchar) : Integer;
-{$IFDEF LOAD_DYNAMICALLY}
-const
- mysql_symbols: array[0..91] of TLibSymbol = (
- // Only the procedure that are given in the c-library documentation are loaded, to
- // avoid problems with 'incomplete' libraries
- (pvar:@my_init; name:'my_init'; weak:true),
- (pvar:@my_thread_init; name:'my_thread_init'; weak:true),
- (pvar:@my_thread_end; name:'my_thread_end'; weak:true),
-
- (pvar:@mysql_affected_rows; name:'mysql_affected_rows'; weak:false),
- (pvar:@mysql_autocommit; name:'mysql_autocommit'; weak:false),
- (pvar:@mysql_change_user; name:'mysql_change_user'; weak:false),
- // (pvar:@mysql_charset_name; name:'mysql_charset_name'; weak:false),
- (pvar:@mysql_close; name:'mysql_close'; weak:false),
- (pvar:@mysql_commit; name:'mysql_commit'; weak:false),
- // (pvar:@mysql_connect; name:'mysql_connect'; weak:false),
- // (pvar:@mysql_create_db; name:'mysql_create_db'; weak:false),
- (pvar:@mysql_data_seek; name:'mysql_data_seek'; weak:false),
- // (pvar:@mysql_drop_db; name:'mysql_drop_db'; weak:false),
- (pvar:@mysql_debug; name:'mysql_debug'; weak:false),
- (pvar:@mysql_dump_debug_info; name:'mysql_dump_debug_info'; weak:false),
- (pvar:@mysql_eof; name:'mysql_eof'; weak:false),
- (pvar:@mysql_errno; name:'mysql_errno'; weak:false),
- (pvar:@mysql_error; name:'mysql_error'; weak:false),
- (pvar:@mysql_escape_string; name:'mysql_escape_string'; weak:false),
- (pvar:@mysql_fetch_field; name:'mysql_fetch_field'; weak:false),
- (pvar:@mysql_fetch_field_direct; name:'mysql_fetch_field_direct'; weak:false),
- (pvar:@mysql_fetch_fields; name:'mysql_fetch_fields'; weak:false),
- (pvar:@mysql_fetch_lengths; name:'mysql_fetch_lengths'; weak:false),
- (pvar:@mysql_fetch_row; name:'mysql_fetch_row'; weak:false),
- (pvar:@mysql_field_seek; name:'mysql_field_seek'; weak:false),
- (pvar:@mysql_field_count; name:'mysql_field_count'; weak:false),
- (pvar:@mysql_field_tell; name:'mysql_field_tell'; weak:false),
- (pvar:@mysql_free_result; name:'mysql_free_result'; weak:false),
- (pvar:@mysql_get_client_info; name:'mysql_get_client_info'; weak:false),
- (pvar:@mysql_get_client_version; name:'mysql_get_client_version'; weak:false),
- (pvar:@mysql_get_host_info; name:'mysql_get_host_info'; weak:false),
- (pvar:@mysql_get_server_version; name:'mysql_get_server_version'; weak:false),
- (pvar:@mysql_get_proto_info; name:'mysql_get_proto_info'; weak:false),
- (pvar:@mysql_get_server_info; name:'mysql_get_server_info'; weak:false),
- (pvar:@mysql_info; name:'mysql_info'; weak:false),
- (pvar:@mysql_init; name:'mysql_init'; weak:false),
- (pvar:@mysql_insert_id; name:'mysql_insert_id'; weak:false),
- (pvar:@mysql_kill; name:'mysql_kill'; weak:false),
- (pvar:@mysql_library_end; name:'mysql_server_end'; weak:false),
- (pvar:@mysql_library_init; name:'mysql_server_init'; weak:false),
- (pvar:@mysql_list_dbs; name:'mysql_list_dbs'; weak:false),
- (pvar:@mysql_list_fields; name:'mysql_list_fields'; weak:false),
- (pvar:@mysql_list_processes; name:'mysql_list_processes'; weak:false),
- (pvar:@mysql_list_tables; name:'mysql_list_tables'; weak:false),
- (pvar:@mysql_more_results; name:'mysql_more_results'; weak:false),
- (pvar:@mysql_next_result; name:'mysql_next_result'; weak:false),
- (pvar:@mysql_num_fields; name:'mysql_num_fields'; weak:false),
- (pvar:@mysql_num_rows; name:'mysql_num_rows'; weak:false),
- (pvar:@mysql_options; name:'mysql_options'; weak:false),
- (pvar:@mysql_ping; name:'mysql_ping'; weak:false),
- (pvar:@mysql_query; name:'mysql_query'; weak:false),
- (pvar:@mysql_real_connect; name:'mysql_real_connect'; weak:false),
- (pvar:@mysql_real_escape_string; name:'mysql_real_escape_string'; weak:false),
- (pvar:@mysql_real_query; name:'mysql_real_query'; weak:false),
- (pvar:@mysql_refresh; name:'mysql_refresh'; weak:false),
- // (pvar:@mysql_reload; name:'mysql_reload'; weak:false),
- (pvar:@mysql_rollback; name:'mysql_rollback'; weak:false),
- (pvar:@mysql_row_seek; name:'mysql_row_seek'; weak:false),
- (pvar:@mysql_row_tell; name:'mysql_row_tell'; weak:false),
- (pvar:@mysql_select_db; name:'mysql_select_db'; weak:false),
- (pvar:@mysql_server_end; name:'mysql_server_end'; weak:false),
- (pvar:@mysql_server_init; name:'mysql_server_init'; weak:false),
- (pvar:@mysql_set_server_option; name:'mysql_set_server_option'; weak:false),
- (pvar:@mysql_sqlstate; name:'mysql_sqlstate'; weak:false),
- (pvar:@mysql_shutdown; name:'mysql_shutdown'; weak:false),
- (pvar:@mysql_stat; name:'mysql_stat'; weak:false),
- (pvar:@mysql_store_result; name:'mysql_store_result'; weak:false),
- (pvar:@mysql_thread_id; name:'mysql_thread_id'; weak:false),
- // (pvar:@mysql_thread_save; name:'mysql_thread_save'; weak:false),
- (pvar:@mysql_use_result; name:'mysql_use_result'; weak:false),
- (pvar:@mysql_warning_count; name:'mysql_warning_count'; weak:false),
- (pvar:@mysql_stmt_init; name:'mysql_stmt_init'; weak:false),
- (pvar:@mysql_stmt_prepare; name:'mysql_stmt_prepare'; weak:false),
- (pvar:@mysql_stmt_execute; name:'mysql_stmt_execute'; weak:false),
- (pvar:@mysql_stmt_fetch; name:'mysql_stmt_fetch'; weak:false),
- (pvar:@mysql_stmt_fetch_column; name:'mysql_stmt_fetch_column'; weak:false),
- (pvar:@mysql_stmt_store_result; name:'mysql_stmt_store_result'; weak:false),
- (pvar:@mysql_stmt_param_count; name:'mysql_stmt_param_count'; weak:false),
- (pvar:@mysql_stmt_attr_set; name:'mysql_stmt_attr_set'; weak:false),
- (pvar:@mysql_stmt_attr_get; name:'mysql_stmt_attr_get'; weak:false),
- (pvar:@mysql_stmt_bind_param; name:'mysql_stmt_bind_param'; weak:false),
- (pvar:@mysql_stmt_bind_result; name:'mysql_stmt_bind_result'; weak:false),
- (pvar:@mysql_stmt_close; name:'mysql_stmt_close'; weak:false),
- (pvar:@mysql_stmt_reset; name:'mysql_stmt_reset'; weak:false),
- (pvar:@mysql_stmt_free_result; name:'mysql_stmt_free_result'; weak:false),
- (pvar:@mysql_stmt_send_long_data; name:'mysql_stmt_send_long_data'; weak:false),
- (pvar:@mysql_stmt_result_metadata; name:'mysql_stmt_result_metadata'; weak:false),
- (pvar:@mysql_stmt_param_metadata; name:'mysql_stmt_param_metadata'; weak:false),
- (pvar:@mysql_stmt_errno; name:'mysql_stmt_errno'; weak:false),
- (pvar:@mysql_stmt_error; name:'mysql_stmt_error'; weak:false),
- (pvar:@mysql_stmt_sqlstate; name:'mysql_stmt_sqlstate'; weak:false),
- (pvar:@mysql_stmt_row_seek; name:'mysql_stmt_row_seek'; weak:false),
- (pvar:@mysql_stmt_row_tell; name:'mysql_stmt_row_tell'; weak:false),
- (pvar:@mysql_stmt_data_seek; name:'mysql_stmt_data_seek'; weak:false),
- (pvar:@mysql_stmt_num_rows; name:'mysql_stmt_num_rows'; weak:false),
- (pvar:@mysql_stmt_affected_rows; name:'mysql_stmt_affected_rows'; weak:false),
- (pvar:@mysql_stmt_insert_id; name:'mysql_stmt_insert_id'; weak:false),
- (pvar:@mysql_stmt_field_count; name:'mysql_stmt_field_count'; weak:false)
- );
-
-type
- PMysqlArgs = ^TMysqlArgs;
- TMysqlArgs = record
- argc: cint;
- argv: PPchar;
- groups: PPchar;
- end;
-
-function mysql_initialize(User: Pointer; Handler: PLibHandler): Boolean;
-var
- args: PMysqlArgs absolute User;
begin
- if Assigned(args) then
- Result := mysql_library_init(args^.argc, args^.argv, args^.groups) = 0
- else
- Result := mysql_library_init(0, nil, nil) = 0;
-
- if not Result then
- AppendLibraryError(Handler^, 'mysql_library_init failed');
+ Result := TryInitialiseMysql(LibraryName,argc,argv,groups);
+ If Result = 0 then
+ Raise EInOutError.CreateFmt(SErrLoadFailed,[LibraryName])
+ else If (LibraryName<>LoadedLibrary) then
+ begin
+ Dec(RefCount);
+ Result := RefCount;
+ Raise EInOUtError.CreateFmt(SErrAlreadyLoaded,[LoadedLibrary]);
+ end;
end;
-procedure mysql_finalize(Handler: PLibHandler);
-begin
- mysql_library_end();
-end;
+Procedure ReleaseMysql;
-function TryInitializeMysql(Const LibraryName: String; argc: cint; argv: PPchar; groups: PPchar): Integer;
-var
- args: TMysqlArgs;
begin
- args.argc := argc;
- args.argv := argv;
- args.groups := groups;
- Result := TryInitializeLibrary(MysqlLibrary, LibraryName, @args);
+ if RefCount> 1 then
+ Dec(RefCount)
+ else if RefCount = 1 then
+ begin
+ mysql_library_end;
+ if UnloadLibrary(MysqlLibraryHandle) then
+ begin
+ Dec(RefCount);
+ MysqlLibraryHandle := NilHandle;
+ LoadedLibrary:='';
+ end
+ end
end;
-function InitializeMysql(const LibraryName: String; argc: cint; argv: PPchar; groups: PPchar): Integer;
-var
- args: TMysqlArgs;
-begin
- args.argc := argc;
- args.argv := argv;
- args.groups := groups;
- Result := InitializeLibrary(MysqlLibrary, LibraryName, @args);
-end;
+{$ENDIF}
+ function net_new_transaction(net : st_net) : st_net;
+ begin
+ net.pkt_nr := 0;
+ result := net;
+ end;
-function ReleaseMysql: Integer;
-begin
- Result := ReleaseLibrary(MysqlLibrary);
-end;
+ function IS_PRI_KEY(n : longint) : boolean;
+ begin
+ IS_PRI_KEY:=(n and PRI_KEY_FLAG)<>0;
+ end;
-function InitialiseMysql(argc: cint; argv: PPchar; groups: PPchar): Integer;
-begin
- Result := InitializeMysql('', argc, argv, groups);
-end;
+ function IS_NOT_NULL(n : longint) : boolean;
+ begin
+ IS_NOT_NULL:=(n and NOT_NULL_FLAG)<>0;
+ end;
-function InitialiseMysql(const LibraryName: String; argc: cint; argv: PPchar; groups: PPchar): Integer;
-begin
- Result := InitializeMysql(LibraryName, argc, argv, groups);
-end;
+ function IS_BLOB(n : longint) : boolean;
+ begin
+ IS_BLOB:=(n and BLOB_FLAG)<>0;
+ end;
-function TryInitialiseMysql(const LibraryName: string; argc: cint; argv: PPchar; groups: PPchar): Integer;
-begin
- Result := TryInitializeMysql(LibraryName, argc, argv, groups);
-end;
+ function IS_NUM_FIELD(f : pst_mysql_field) : boolean;
+ begin
+ IS_NUM_FIELD:=((f^.flags) and NUM_FLAG)<>0;
+ end;
-initialization
- MysqlLibrary := LibraryHandler('mysql', [mysqllib,mysqlvlib], @mysql_symbols, Length(mysql_symbols), @mysql_initialize, @mysql_finalize);
+ function IS_NUM(t : enum_field_types) : boolean;
+ begin
+{$IF DEFINED(mysql50) or DEFINED(mysql51)}
+ IS_NUM := (t <= FIELD_TYPE_INT24) or (t=FIELD_TYPE_YEAR) or (t=FIELD_TYPE_NEWDECIMAL);
+{$ELSE}
+ IS_NUM := (t <= FIELD_TYPE_INT24) or (t=FIELD_TYPE_YEAR);
{$ENDIF}
+ end;
+ function INTERNAL_NUM_FIELD(f : Pst_mysql_field) : boolean;
+ begin
+ INTERNAL_NUM_FIELD := (f^.ftype <= FIELD_TYPE_INT24) and ((f^.ftype <> FIELD_TYPE_TIMESTAMP)
+ or (f^.length = 14) or (f^.length=8)) or (f^.ftype=FIELD_TYPE_YEAR);
+ end;
+
+ function mysql_reload(mysql : PMySQL) : cint;
+ begin
+ mysql_reload:=mysql_refresh(mysql,REFRESH_GRANT);
+ end;
+
+ function simple_command(mysql,command,arg,length,skip_check : longint) : longint;
+ begin
+ //simple_command:=mysql^.(methods^.advanced_command)(mysqlcommandNullS0arglengthskip_check);
+ result := -1;
+ end;
+
+{$IFDEF LinkDynamically}
+initialization
+ Refcount := 0;
+{$ENDIF}
end.
diff --git a/packages/mysql/src/mysql40dyn.pp b/packages/mysql/src/mysql40dyn.pp
index 0592588970..b8c93f1aa6 100644
--- a/packages/mysql/src/mysql40dyn.pp
+++ b/packages/mysql/src/mysql40dyn.pp
@@ -4,7 +4,7 @@
unit mysql40dyn;
-{$DEFINE LOAD_DYNAMICALLY}
+{$DEFINE LinkDynamically}
{$UNDEF MYSQL41}
{$i mysql.inc}
diff --git a/packages/mysql/src/mysql41dyn.pp b/packages/mysql/src/mysql41dyn.pp
index 127de1c341..06362619b7 100644
--- a/packages/mysql/src/mysql41dyn.pp
+++ b/packages/mysql/src/mysql41dyn.pp
@@ -4,7 +4,7 @@
unit mysql41dyn;
-{$DEFINE LOAD_DYNAMICALLY}
+{$DEFINE LinkDynamically}
{$DEFINE MYSQL41}
{$i mysql.inc}
diff --git a/packages/mysql/src/mysql4_comtypes.inc b/packages/mysql/src/mysql4_comtypes.inc
index f5f9878ce8..8e5b24c843 100644
--- a/packages/mysql/src/mysql4_comtypes.inc
+++ b/packages/mysql/src/mysql4_comtypes.inc
@@ -8,7 +8,7 @@ type
My_socket = longint;
my_bool = byte;
gptr = Pointer;
- pppchar = ^ppchar;
+
{
Common definition between mysql server & client
}
diff --git a/packages/mysql/src/mysql50dyn.pp b/packages/mysql/src/mysql50dyn.pp
index 5b0fcc8119..67719e52a6 100644
--- a/packages/mysql/src/mysql50dyn.pp
+++ b/packages/mysql/src/mysql50dyn.pp
@@ -4,7 +4,7 @@
unit mysql50dyn;
-{$DEFINE LOAD_DYNAMICALLY}
+{$DEFINE LinkDynamically}
{$DEFINE MYSQL50}
{$i mysql.inc}