|
@@ -15,20 +15,19 @@
|
|
mysqlclient
|
|
mysqlclient
|
|
mysql_com.h / mysql.h
|
|
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 ([email protected])
|
|
|
|
}
|
|
}
|
|
{$MODE objfpc}
|
|
{$MODE objfpc}
|
|
{$MACRO on}
|
|
{$MACRO on}
|
|
|
|
|
|
interface
|
|
interface
|
|
-
|
|
|
|
|
|
+{$ifdef Load_Dynamically}{$define LinkDynamically}{$endif}
|
|
uses
|
|
uses
|
|
- dynlibs, ctypes;
|
|
|
|
|
|
+{$IFDEF LinkDynamically}
|
|
|
|
+ sysutils,
|
|
|
|
+{$ENDIF}
|
|
|
|
+ dynlibs,ctypes;
|
|
|
|
|
|
-{$IFDEF UNIX}
|
|
|
|
|
|
+{$IFDEF Unix}
|
|
{$DEFINE extdecl:=cdecl}
|
|
{$DEFINE extdecl:=cdecl}
|
|
const
|
|
const
|
|
mysqllib = 'libmysqlclient.'+sharedsuffix;
|
|
mysqllib = 'libmysqlclient.'+sharedsuffix;
|
|
@@ -42,11 +41,11 @@ uses
|
|
mysqlvlib = mysqllib+'.12';
|
|
mysqlvlib = mysqllib+'.12';
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
-{$IFDEF WINDOWS}
|
|
|
|
|
|
+{$IFDEF Windows}
|
|
{$DEFINE extdecl:=stdcall}
|
|
{$DEFINE extdecl:=stdcall}
|
|
const
|
|
const
|
|
mysqllib = 'libmysql.dll';
|
|
mysqllib = 'libmysql.dll';
|
|
- mysqlvlib = mysqllib;
|
|
|
|
|
|
+ mysqlvlib = 'libmysql.dll';
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
|
|
{$IFDEF mysql51}
|
|
{$IFDEF mysql51}
|
|
@@ -60,17 +59,17 @@ uses
|
|
{$PACKRECORDS C}
|
|
{$PACKRECORDS C}
|
|
|
|
|
|
{ Copyright (C) 2000-2003 MySQL AB
|
|
{ Copyright (C) 2000-2003 MySQL AB
|
|
-
|
|
|
|
|
|
+
|
|
This program is free software; you can redistribute it and/or modify
|
|
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
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
(at your option) any later version.
|
|
-
|
|
|
|
|
|
+
|
|
This program is distributed in the hope that it will be useful,
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
GNU General Public License for more details.
|
|
-
|
|
|
|
|
|
+
|
|
You should have received a copy of the GNU General Public License
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA }
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA }
|
|
@@ -78,8 +77,8 @@ uses
|
|
type
|
|
type
|
|
my_bool = cchar;
|
|
my_bool = cchar;
|
|
Pmy_bool = ^my_bool;
|
|
Pmy_bool = ^my_bool;
|
|
- pppchar = ^ppchar;
|
|
|
|
- ppbyte = ^pbyte;
|
|
|
|
|
|
+// pppchar = ^ppchar;
|
|
|
|
+// ppbyte = ^pbyte;
|
|
|
|
|
|
PVIO = Pointer;
|
|
PVIO = Pointer;
|
|
|
|
|
|
@@ -88,7 +87,7 @@ uses
|
|
|
|
|
|
Pmy_socket = ^my_socket;
|
|
Pmy_socket = ^my_socket;
|
|
my_socket = cint;
|
|
my_socket = cint;
|
|
-
|
|
|
|
|
|
+
|
|
{ ------------ Start of declaration in "mysql_com.h" --------------------- }
|
|
{ ------------ Start of declaration in "mysql_com.h" --------------------- }
|
|
|
|
|
|
{
|
|
{
|
|
@@ -418,18 +417,18 @@ uses
|
|
|
|
|
|
function net_new_transaction(net : st_net) : st_net;
|
|
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;
|
|
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}
|
|
{$ENDIF}
|
|
{ The following function is not meant for normal usage
|
|
{ The following function is not meant for normal usage
|
|
Currently it's used internally by manager.c }
|
|
Currently it's used internally by manager.c }
|
|
@@ -439,8 +438,8 @@ uses
|
|
sockaddr = record
|
|
sockaddr = record
|
|
// undefined structure
|
|
// undefined structure
|
|
end;
|
|
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}
|
|
{$ENDIF}
|
|
|
|
|
|
type
|
|
type
|
|
@@ -499,38 +498,38 @@ uses
|
|
|
|
|
|
{ These functions are used for authentication by client and server and
|
|
{ These functions are used for authentication by client and server and
|
|
implemented in sql/password.c }
|
|
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}
|
|
{$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}
|
|
{$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 }
|
|
{ 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 }
|
|
{ Some other useful functions }
|
|
{$IFDEF mysql50}
|
|
{$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}
|
|
{$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}
|
|
{$ELSE}
|
|
var
|
|
var
|
|
my_init : function :my_bool;cdecl;
|
|
my_init : function :my_bool;cdecl;
|
|
@@ -539,10 +538,10 @@ uses
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
|
|
{$ifdef _global_h}
|
|
{$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}
|
|
{$endif}
|
|
{$endif}
|
|
|
|
|
|
@@ -585,7 +584,7 @@ uses
|
|
{ $include "typelib.h"}
|
|
{ $include "typelib.h"}
|
|
{ $include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */}
|
|
{ $include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */}
|
|
|
|
|
|
-{$IFNDEF LOAD_DYNAMICALLY}
|
|
|
|
|
|
+{$IFNDEF LinkDynamically}
|
|
var
|
|
var
|
|
mysql_port : cuint;cvar;external;
|
|
mysql_port : cuint;cvar;external;
|
|
mysql_unix_port : Pchar;cvar;external;
|
|
mysql_unix_port : Pchar;cvar;external;
|
|
@@ -594,7 +593,7 @@ uses
|
|
const
|
|
const
|
|
CLIENT_NET_READ_TIMEOUT = 365*24*3600; // Timeout on read
|
|
CLIENT_NET_READ_TIMEOUT = 365*24*3600; // Timeout on read
|
|
CLIENT_NET_WRITE_TIMEOUT = 365*24*3600; // Timeout on write
|
|
CLIENT_NET_WRITE_TIMEOUT = 365*24*3600; // Timeout on write
|
|
-
|
|
|
|
|
|
+
|
|
{$ifdef NETWARE}
|
|
{$ifdef NETWARE}
|
|
(** unsupported pragma#pragma pack(push, 8) /* 8 byte alignment */*)
|
|
(** unsupported pragma#pragma pack(push, 8) /* 8 byte alignment */*)
|
|
{$endif}
|
|
{$endif}
|
|
@@ -728,7 +727,7 @@ uses
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{ $endif}
|
|
{ $endif}
|
|
end;
|
|
end;
|
|
-
|
|
|
|
|
|
+
|
|
MYSQL_DATA = st_mysql_data;
|
|
MYSQL_DATA = st_mysql_data;
|
|
PMYSQL_DATA = ^MYSQL_DATA;
|
|
PMYSQL_DATA = ^MYSQL_DATA;
|
|
mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
|
|
mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
|
|
@@ -1045,7 +1044,7 @@ uses
|
|
|
|
|
|
{
|
|
{
|
|
Note: this info is from the mysql-5.0 version:
|
|
Note: this info is from the mysql-5.0 version:
|
|
-
|
|
|
|
|
|
+
|
|
This structure is used to define bind information, and
|
|
This structure is used to define bind information, and
|
|
internally by the client library.
|
|
internally by the client library.
|
|
Public members with their descriptions are listed below
|
|
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 max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet)
|
|
//#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length)
|
|
//#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
|
|
{ Set up and bring down the server; to ensure that applications will
|
|
work when linked against either the standard client library or the
|
|
work when linked against either the standard client library or the
|
|
embedded server library, these functions should be called. }
|
|
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
|
|
{ mysql_server_init/end need to be called when using libmysqld or
|
|
libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
|
|
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
|
|
names which suit well whether you're using libmysqld or libmysqlclient. We
|
|
intend to promote these aliases over the mysql_server* ones. }
|
|
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
|
|
{ Set up and bring down a thread; these function should be called
|
|
for each thread in an application which opens at least one MySQL
|
|
for each thread in an application which opens at least one MySQL
|
|
connection. All uses of the connection(s) should be between these
|
|
connection. All uses of the connection(s) should be between these
|
|
function calls. }
|
|
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
|
|
{ Functions to get information from the MYSQL and MYSQL_RES structures
|
|
Should definitely be used if one uses shared libraries. }
|
|
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;
|
|
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;
|
|
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}
|
|
{$ELSE}
|
|
|
|
|
|
@@ -1330,16 +1329,16 @@ uses
|
|
mysql_use_result: function (mysql:PMYSQL):PMYSQL_RES;extdecl;
|
|
mysql_use_result: function (mysql:PMYSQL):PMYSQL_RES;extdecl;
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
|
|
-{$IFNDEF LOAD_DYNAMICALLY}
|
|
|
|
|
|
+{$IFNDEF LinkDynamically}
|
|
{ perform query on master }
|
|
{ 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 }
|
|
{ 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}
|
|
{$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}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
|
|
|
|
@@ -1348,110 +1347,110 @@ uses
|
|
const
|
|
const
|
|
LOCAL_INFILE_ERROR_LEN = 512;
|
|
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
|
|
{ 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
|
|
{ enable/disable parsing of all queries to decide if they go on master or
|
|
slave }
|
|
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 }
|
|
{ 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 }
|
|
{ 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 }
|
|
{ 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 }
|
|
{ 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 }
|
|
{ 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;
|
|
{ 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}
|
|
{$ELSE}
|
|
var
|
|
var
|
|
@@ -1532,7 +1531,7 @@ uses
|
|
|
|
|
|
function mysql_reload(mysql : PMySQL) : cint;
|
|
function mysql_reload(mysql : PMySQL) : cint;
|
|
|
|
|
|
-{$IFNDEF LOAD_DYNAMICALLY}
|
|
|
|
|
|
+{$IFNDEF LinkDynamically}
|
|
{$ifdef USE_OLD_FUNCTIONS}
|
|
{$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_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';
|
|
function mysql_create_db(mysql:PMYSQL; DB:Pchar):cint;extdecl;external External_library name 'mysql_create_db';
|
|
@@ -1541,262 +1540,260 @@ uses
|
|
{$endif}
|
|
{$endif}
|
|
{$endif}
|
|
{$endif}
|
|
|
|
|
|
-{$define HAVE_MYSQL_REAL_CONNECT}
|
|
|
|
|
|
+{$define HAVE_MYSQL_REAL_CONNECT}
|
|
{ The following functions are mainly exported because of mysqlbinlog;
|
|
{ The following functions are mainly exported because of mysqlbinlog;
|
|
They are not for general usage }
|
|
They are not for general usage }
|
|
|
|
|
|
function simple_command(mysql,command,arg,length,skip_check : cint) : cint;
|
|
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}
|
|
{$ENDIF}
|
|
|
|
|
|
{$ifdef NETWARE}
|
|
{$ifdef NETWARE}
|
|
(** unsupported pragma#pragma pack(pop) /* restore alignment */*)
|
|
(** unsupported pragma#pragma pack(pop) /* restore alignment */*)
|
|
{$endif}
|
|
{$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}
|
|
{$ENDIF}
|
|
|
|
|
|
implementation
|
|
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
|
|
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;
|
|
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
|
|
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;
|
|
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
|
|
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;
|
|
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
|
|
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;
|
|
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}
|
|
{$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.
|
|
end.
|