mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 04:59:20 +02:00
Merged revisions 569,602,604-605,609 via svnmerge from
/trunk git-svn-id: branches/fixes_2_0@683 -
This commit is contained in:
parent
734d477af2
commit
d7f23a530a
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -1358,6 +1358,7 @@ packages/base/mysql/Makefile svneol=native#text/plain
|
||||
packages/base/mysql/Makefile.fpc svneol=native#text/plain
|
||||
packages/base/mysql/README -text
|
||||
packages/base/mysql/mkdb -text
|
||||
packages/base/mysql/my4_sys.pp svneol=native#text/plain
|
||||
packages/base/mysql/mysql3.pp svneol=native#text/plain
|
||||
packages/base/mysql/mysql3_com.pp svneol=native#text/plain
|
||||
packages/base/mysql/mysql3_comdyn.pp svneol=native#text/plain
|
||||
@ -5147,6 +5148,7 @@ tests/test/units/system/ttrunc.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/execansi.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/execedbya.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/extractquote.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tsscanf.pp svneol=native#text/plain
|
||||
tests/test/uprocext1.pp svneol=native#text/plain
|
||||
tests/test/uprocext2.pp svneol=native#text/plain
|
||||
tests/test/utasout.pp svneol=native#text/plain
|
||||
|
@ -688,12 +688,15 @@ end;
|
||||
function TMySQLDataset.InternalStrToDate(S: string): TDateTime;
|
||||
|
||||
var
|
||||
EY, EM, ED: Word;
|
||||
EY, EM, ED: Longint;
|
||||
|
||||
begin
|
||||
SScanf(S,'%d-%d-%d',[@EY,@EM,@ED]);
|
||||
{
|
||||
EY := StrToInt(Copy(S,1,4));
|
||||
EM := StrToInt(Copy(S,6,2));
|
||||
ED := StrToInt(Copy(S,9,2));
|
||||
}
|
||||
if (EY = 0) or (EM = 0) or (ED = 0) then
|
||||
Result:=0
|
||||
else
|
||||
@ -703,16 +706,19 @@ end;
|
||||
function TMySQLDataset.InternalStrToDateTime(S: string): TDateTime;
|
||||
|
||||
var
|
||||
EY, EM, ED: Word;
|
||||
EH, EN, ES: Word;
|
||||
EY, EM, ED: Longint;
|
||||
EH, EN, ES: Longint;
|
||||
|
||||
begin
|
||||
SScanf(S,'%d-%d-%d %d:%d:%d',[@EY,@EM,@ED,@EH,@EN,@ES]);
|
||||
{
|
||||
EY := StrToInt(Copy(S, 1, 4));
|
||||
EM := StrToInt(Copy(S, 6, 2));
|
||||
ED := StrToInt(Copy(S, 9, 2));
|
||||
EH := StrToInt(Copy(S, 12, 2));
|
||||
EN := StrToInt(Copy(S, 15, 2));
|
||||
ES := StrToInt(Copy(S, 18, 2));
|
||||
}
|
||||
if (EY = 0) or (EM = 0) or (ED = 0) then
|
||||
Result := 0
|
||||
else
|
||||
@ -723,28 +729,34 @@ end;
|
||||
function TMySQLDataset.InternalStrToTime(S: string): TDateTime;
|
||||
|
||||
var
|
||||
EH, EM, ES: Word;
|
||||
EH, EM, ES: Longint;
|
||||
|
||||
begin
|
||||
SScanf(S,'%d:%d:%d',[@EH,@EM,@ES]);
|
||||
{
|
||||
EH := StrToInt(Copy(S, 1, 2));
|
||||
EM := StrToInt(Copy(S, 4, 2));
|
||||
ES := StrToInt(Copy(S, 7, 2));
|
||||
}
|
||||
Result := EncodeTime(EH, EM, ES, 0);
|
||||
end;
|
||||
|
||||
function TMySQLDataset.InternalStrToTimeStamp(S: string): TDateTime;
|
||||
|
||||
var
|
||||
EY, EM, ED: Word;
|
||||
EH, EN, ES: Word;
|
||||
EY, EM, ED: longint;
|
||||
EH, EN, ES: longint;
|
||||
|
||||
begin
|
||||
SScanf(S,'%d-%d-%d %d:%d:%d',[@EY,@EM,@ED,@EH,@EN,@ES]);
|
||||
{
|
||||
EY := StrToInt(Copy(S, 1, 4));
|
||||
EM := StrToInt(Copy(S, 5, 2));
|
||||
ED := StrToInt(Copy(S, 7, 2));
|
||||
EH := StrToInt(Copy(S, 9, 2));
|
||||
EN := StrToInt(Copy(S, 11, 2));
|
||||
ES := StrToInt(Copy(S, 13, 2));
|
||||
}
|
||||
if (EY = 0) or (EM = 0) or (ED = 0) then
|
||||
Result := 0
|
||||
else
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/05]
|
||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2005/05/09]
|
||||
#
|
||||
default: all
|
||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-emx i386-watcom i386-netwlibc m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd arm-linux
|
||||
@ -233,103 +233,103 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/ext
|
||||
override PACKAGE_NAME=mysql
|
||||
override PACKAGE_VERSION=2.0.0
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-go32v2)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-win32)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-os2)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-freebsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-beos)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-solaris)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-qnx)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netware)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-openbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-wdosx)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-emx)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-watcom)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-netwlibc)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-freebsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-netbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-amiga)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-atari)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-openbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),m68k-palmos)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-netbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-macos)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-darwin)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),powerpc-morphos)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-netbsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),sparc-solaris)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),x86_64-freebsd)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),arm-linux)
|
||||
override TARGET_UNITS+=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
override TARGET_UNITS+=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_EXAMPLES+=testdb4 testdb3
|
||||
|
@ -7,7 +7,7 @@ name=mysql
|
||||
version=2.0.0
|
||||
|
||||
[target]
|
||||
units=mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
units=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn
|
||||
examples=testdb4 testdb3
|
||||
|
||||
[require]
|
||||
|
22
packages/base/mysql/my4_sys.pp
Normal file
22
packages/base/mysql/my4_sys.pp
Normal file
@ -0,0 +1,22 @@
|
||||
unit my4_sys;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
ctypes;
|
||||
|
||||
type
|
||||
st_dynamic_array = record
|
||||
buffers : pchar;
|
||||
elements : cuint;
|
||||
max_elements : cuint;
|
||||
alloc_increment : cuint;
|
||||
size_of_element : cuint;
|
||||
end;
|
||||
|
||||
tst_dynamic_array = st_dynamic_array;
|
||||
pst_dynamic_array = ^tst_dynamic_array;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
@ -1,7 +1,7 @@
|
||||
unit mysql4;
|
||||
interface
|
||||
|
||||
uses mysql4_com;
|
||||
uses ctypes,my4_sys,mysql4_com;
|
||||
|
||||
{
|
||||
Automatically converted by H2Pas 0.99.15 from mysql.ph
|
||||
|
@ -1,19 +1,12 @@
|
||||
unit mysql4_com;
|
||||
interface
|
||||
|
||||
{
|
||||
Automatically converted by H2Pas 0.99.15 from mysql_com.ph
|
||||
The following command line parameters were used:
|
||||
-p
|
||||
-D
|
||||
-l
|
||||
mysqlclient
|
||||
mysql_com.ph
|
||||
}
|
||||
{$mode objfpc}{$H+}
|
||||
{$MACRO on}
|
||||
|
||||
{$PACKRECORDS C}
|
||||
unit mysql4_com;
|
||||
interface
|
||||
|
||||
uses
|
||||
ctypes;
|
||||
|
||||
{$IFDEF Unix}
|
||||
{$DEFINE extdecl:=cdecl}
|
||||
|
@ -11,7 +11,7 @@ unit mysql4_comdyn;
|
||||
|
||||
interface
|
||||
|
||||
uses dynlibs, sysutils;
|
||||
uses ctypes,my4_sys,dynlibs, sysutils;
|
||||
|
||||
{$IFDEF Unix}
|
||||
{$DEFINE extdecl:=cdecl}
|
||||
|
@ -80,10 +80,11 @@ const
|
||||
CLIENT_TRANSACTIONS = 8192;
|
||||
SERVER_STATUS_IN_TRANS = 1;
|
||||
SERVER_STATUS_AUTOCOMMIT = 2;
|
||||
MYSQL_ERRMSG_SIZE = 200;
|
||||
MYSQL_ERRMSG_SIZE = 512;
|
||||
NET_READ_TIMEOUT = 30;
|
||||
NET_WRITE_TIMEOUT = 60;
|
||||
MAX_BLOB_WIDTH = 8192;
|
||||
SQLSTATE_LENGTH = 5;
|
||||
{
|
||||
#define NET_WAIT_TIMEOUT (8 60 60)
|
||||
}
|
||||
@ -101,28 +102,30 @@ type
|
||||
write_pos : Pbyte;
|
||||
read_pos : Pbyte;
|
||||
fd : my_socket;
|
||||
max_packet : dword;
|
||||
max_packet_size : dword;
|
||||
last_errno : dword;
|
||||
pkt_nr : dword;
|
||||
compress_pkt_nr : dword;
|
||||
write_timeout : dword;
|
||||
read_timeout : dword;
|
||||
retry_count : dword;
|
||||
fcntl : longint;
|
||||
last_error : array[0..(MYSQL_ERRMSG_SIZE)-1] of char;
|
||||
error : byte;
|
||||
return_errno : my_bool;
|
||||
max_packet,
|
||||
max_packet_size : culong;
|
||||
pkt_nr,
|
||||
compress_pkt_nr : culong;
|
||||
write_timeout,
|
||||
read_timeout,
|
||||
retry_count : cuint;
|
||||
fcntl : cint;
|
||||
compress : my_bool;
|
||||
remain_in_buf : dword;
|
||||
length : dword;
|
||||
buf_length : dword;
|
||||
where_b : dword;
|
||||
return_status : Pdword;
|
||||
reading_or_writing : byte;
|
||||
save_char : char;
|
||||
remain_in_bufm,
|
||||
length,
|
||||
buf_length,
|
||||
where_b : culong;
|
||||
return_status : pcuint;
|
||||
reading_or_writing : cuint;
|
||||
save_char : cchar;
|
||||
no_send_ok : my_bool;
|
||||
last_error : array[0..(MYSQL_ERRMSG_SIZE)-1] of char;
|
||||
sqlstate : array[0..SQLSTATE_LENGTH] of char;
|
||||
last_errno : cuint;
|
||||
error : cuchar;
|
||||
query_cache_query : gptr;
|
||||
report_error,
|
||||
return_errno : my_bool;
|
||||
end;
|
||||
NET = st_net;
|
||||
TNET = NET;
|
||||
|
@ -31,7 +31,7 @@ interface
|
||||
|
||||
const
|
||||
PROTOCOL_VERSION = 10;
|
||||
MYSQL_SERVER_VERSION = '4.0.1-alpha';
|
||||
MYSQL_SERVER_VERSION = '4.1.10a';
|
||||
MYSQL_SERVER_SUFFIX = '-max';
|
||||
FRM_VER = 6;
|
||||
MYSQL_VERSION_ID = 40001;
|
||||
|
@ -11,7 +11,7 @@ unit mysql4dyn;
|
||||
|
||||
interface
|
||||
|
||||
uses dynlibs, classes, sysutils, mysql4_comdyn;
|
||||
uses ctypes,dynlibs, classes, sysutils, my4_sys, mysql4_comdyn;
|
||||
|
||||
|
||||
{
|
||||
|
@ -21,14 +21,24 @@ type
|
||||
Pst_mysql_field = ^st_mysql_field;
|
||||
st_mysql_field = record
|
||||
name : Pchar;
|
||||
org_name : pchar;
|
||||
table : Pchar;
|
||||
org_table : Pchar;
|
||||
db : Pchar;
|
||||
catalog : pchar;
|
||||
def : Pchar;
|
||||
length : dword;
|
||||
max_length : dword;
|
||||
flags : dword;
|
||||
decimals : dword;
|
||||
length : culong;
|
||||
max_length : culong;
|
||||
name_length : cuint;
|
||||
org_name_length : cuint;
|
||||
table_length : cuint;
|
||||
org_table_length : cuint;
|
||||
db_length : cuint;
|
||||
catalog_length : cuint;
|
||||
def_length : cuint;
|
||||
flags : cuint;
|
||||
decimals : cuint;
|
||||
charsetnr : cuint;
|
||||
ftype : enum_field_types;
|
||||
end;
|
||||
MYSQL_FIELD = st_mysql_field;
|
||||
@ -51,6 +61,7 @@ type
|
||||
st_mysql_rows = record
|
||||
next : Pst_mysql_rows;
|
||||
data : MYSQL_ROW;
|
||||
length : culong;
|
||||
end;
|
||||
MYSQL_ROWS = st_mysql_rows;
|
||||
TMYSQL_ROWS = MYSQL_ROWS;
|
||||
@ -88,25 +99,34 @@ type
|
||||
Pst_mysql_data = ^st_mysql_data;
|
||||
st_mysql_data = record
|
||||
rows : my_ulonglong;
|
||||
fields : dword;
|
||||
fields : cuint;
|
||||
data : PMYSQL_ROWS;
|
||||
alloc : MEM_ROOT;
|
||||
prev_ptr : ^MYSQL_ROWS;
|
||||
end;
|
||||
MYSQL_DATA = st_mysql_data;
|
||||
TMYSQL_DATA = MYSQL_DATA;
|
||||
PMYSQL_DATA = ^MYSQL_DATA;
|
||||
|
||||
mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
|
||||
MYSQL_OPT_NAMED_PIPE,MYSQL_INIT_COMMAND,
|
||||
MYSQL_READ_DEFAULT_FILE,MYSQL_READ_DEFAULT_GROUP,
|
||||
MYSQL_SET_CHARSET_DIR,MYSQL_SET_CHARSET_NAME
|
||||
);
|
||||
|
||||
Pst_mysql_options = ^st_mysql_options;
|
||||
st_mysql_options = record
|
||||
connect_timeout : dword;
|
||||
client_flag : dword;
|
||||
port : dword;
|
||||
host : Pchar;
|
||||
init_command : Pchar;
|
||||
user : Pchar;
|
||||
password : Pchar;
|
||||
unix_socket : Pchar;
|
||||
db : Pchar;
|
||||
connect_timeout,
|
||||
read_timeout,
|
||||
write_timeout: cuint;
|
||||
port,protocol : cuint;
|
||||
client_flag : culong;
|
||||
host,
|
||||
user,
|
||||
password,
|
||||
unix_socket,
|
||||
db : pchar;
|
||||
init_commands : pst_dynamic_array;
|
||||
my_cnf_file : Pchar;
|
||||
my_cnf_group : Pchar;
|
||||
charset_dir : Pchar;
|
||||
@ -116,23 +136,26 @@ type
|
||||
ssl_ca : Pchar;
|
||||
ssl_capath : Pchar;
|
||||
ssl_cipher : Pchar;
|
||||
max_allowed_packet : Cardinal;
|
||||
shared_memory_base_name : pchar;
|
||||
max_allowed_packet : culong;
|
||||
use_ssl : my_bool;
|
||||
compress : my_bool;
|
||||
named_pipe : my_bool;
|
||||
rpl_probe : my_bool;
|
||||
rpl_parse : my_bool;
|
||||
no_master_reads : my_bool;
|
||||
methods_to_use : mysql_option;
|
||||
client_ip : pchar;
|
||||
secure_auth : my_bool;
|
||||
local_infile_init : pointer;
|
||||
local_infile_read : pointer;
|
||||
local_infile_end : pointer;
|
||||
local_infile_error : pointer;
|
||||
local_infile_userdata : pointer;
|
||||
end;
|
||||
TMYSQL_OPTIONS = st_mysql_options;
|
||||
PTMYSQL_OPTIONS = ^TMYSQL_OPTIONS;
|
||||
|
||||
mysql_option = (MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS,
|
||||
MYSQL_OPT_NAMED_PIPE,MYSQL_INIT_COMMAND,
|
||||
MYSQL_READ_DEFAULT_FILE,MYSQL_READ_DEFAULT_GROUP,
|
||||
MYSQL_SET_CHARSET_DIR,MYSQL_SET_CHARSET_NAME
|
||||
);
|
||||
|
||||
mysql_status = (MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,
|
||||
MYSQL_STATUS_USE_RESULT);
|
||||
|
||||
@ -156,25 +179,31 @@ type
|
||||
affected_rows : my_ulonglong;
|
||||
insert_id : my_ulonglong;
|
||||
extra_info : my_ulonglong;
|
||||
thread_id : dword;
|
||||
packet_length : dword;
|
||||
port : dword;
|
||||
client_flag : dword;
|
||||
server_capabilities : dword;
|
||||
protocol_version : dword;
|
||||
field_count : dword;
|
||||
server_status : dword;
|
||||
server_language : dword;
|
||||
thread_id : culong;
|
||||
packet_length : culong;
|
||||
port : cuint;
|
||||
client_flag : culong;
|
||||
server_capabilities : culong;
|
||||
protocol_version : cuint;
|
||||
field_count : cuint;
|
||||
server_status : cuint;
|
||||
server_language : cuint;
|
||||
warning_count : cuint;
|
||||
options : st_mysql_options;
|
||||
status : mysql_status;
|
||||
free_me : my_bool;
|
||||
reconnect : my_bool;
|
||||
scramble_buff : array[0..8] of char;
|
||||
scramble_buff : array[0..20] of char;
|
||||
rpl_pivot : my_bool;
|
||||
master : Pst_mysql;
|
||||
next_slave : Pst_mysql;
|
||||
last_used_slave : Pst_mysql;
|
||||
last_used_con : Pst_mysql;
|
||||
|
||||
stmts : pointer; // LIST
|
||||
methods : pointer; // Pst_mysql_methods
|
||||
thd : pointer;
|
||||
unbuffered_fetch_owner : pmy_bool;
|
||||
end;
|
||||
TMYSQL = st_mysql;
|
||||
PMYSQL = ^TMYSQL;
|
||||
@ -185,14 +214,16 @@ type
|
||||
fields : PMYSQL_FIELD;
|
||||
data : PMYSQL_DATA;
|
||||
data_cursor : PMYSQL_ROWS;
|
||||
lengths : Pdword;
|
||||
lengths : pculong;
|
||||
handle : PMYSQL;
|
||||
field_alloc : MEM_ROOT;
|
||||
field_count : dword;
|
||||
current_field : dword;
|
||||
current_field : cuint;
|
||||
row : MYSQL_ROW;
|
||||
current_row : MYSQL_ROW;
|
||||
eof : my_bool;
|
||||
unbuffered_fetch_cancelled : my_bool;
|
||||
methods : pointer; { was ^my_sql_methods }
|
||||
end;
|
||||
MYSQL_RES = st_mysql_res;
|
||||
TMYSQL_RES = MYSQL_RES;
|
||||
|
@ -1,6 +1,6 @@
|
||||
program mysqls;
|
||||
|
||||
uses mysql,mysql_com;
|
||||
uses mysql4,mysql4_com;
|
||||
|
||||
|
||||
begin
|
||||
@ -13,6 +13,6 @@ begin
|
||||
writeln ('MYSQL_RES : ',sizeof(TMYSQL_RES));
|
||||
writeln ('MEM_ROOT : ',sizeof(TMEM_ROOT));
|
||||
writeln ('my_bool : ',sizeof(my_bool));
|
||||
writeln ('TNET : ',sizeof(TNET),' TNET.nettype : ',SizeOf(net_type));
|
||||
// writeln ('TNET : ',sizeof(TNET),' TNET.nettype : ',SizeOf(net_type));
|
||||
writeln ('USED_MEM : ',sizeof(TUSED_MEM));
|
||||
end.
|
||||
|
@ -757,7 +757,7 @@ function StrToInt(const S: string): integer;
|
||||
var Error: word;
|
||||
begin
|
||||
Val(S, result, Error);
|
||||
if Error <> 0 then raise EConvertError.createfmt(SInValidInteger,[S]);
|
||||
if Error <> 0 then raise EConvertError.createfmt(SInvalidInteger,[S]);
|
||||
end ;
|
||||
|
||||
|
||||
@ -766,7 +766,7 @@ var Error: word;
|
||||
|
||||
begin
|
||||
Val(S, result, Error);
|
||||
if Error <> 0 then raise EConvertError.createfmt(SInValidInteger,[S]);
|
||||
if Error <> 0 then raise EConvertError.createfmt(SInvalidInteger,[S]);
|
||||
end;
|
||||
|
||||
|
||||
@ -2068,3 +2068,179 @@ const
|
||||
#240, #241, #242, #243, #244, #245, #246, #247,
|
||||
#248, #249, #250, #251, #252, #253, #254, #255 );
|
||||
|
||||
|
||||
function sscanf(const s: string; const fmt : string;const Pointers : array of Pointer) : Integer;
|
||||
var
|
||||
i,j,n,m : SizeInt;
|
||||
s1 : string;
|
||||
|
||||
function GetInt(unsigned : boolean=false) : Integer;
|
||||
begin
|
||||
s1 := '';
|
||||
while (s[n] = ' ') and (Length(s) > n) do
|
||||
inc(n);
|
||||
{ read sign }
|
||||
if (Length(s)>= n) and (s[n] in ['+', '-']) then
|
||||
begin
|
||||
{ don't accept - when reading unsigned }
|
||||
if unsigned and (s[n]='-') then
|
||||
begin
|
||||
result:=length(s1);
|
||||
exit;
|
||||
end
|
||||
else
|
||||
begin
|
||||
s1:=s1+s[n];
|
||||
inc(n);
|
||||
end;
|
||||
end;
|
||||
{ read numbers }
|
||||
while (s[n] in ['0'..'9'])
|
||||
and (Length(s) >= n) do
|
||||
begin
|
||||
s1 := s1+s[n];
|
||||
inc(n);
|
||||
end;
|
||||
Result := Length(s1);
|
||||
end;
|
||||
|
||||
|
||||
function GetFloat : Integer;
|
||||
begin
|
||||
s1 := '';
|
||||
while (s[n] = ' ') and (Length(s) > n) do
|
||||
inc(n);
|
||||
while (s[n] in ['0'..'9', '+', '-', '.', 'e', 'E'])
|
||||
and (Length(s) >= n) do
|
||||
begin
|
||||
s1 := s1+s[n];
|
||||
inc(n);
|
||||
end;
|
||||
Result := Length(s1);
|
||||
end;
|
||||
|
||||
|
||||
function GetString : Integer;
|
||||
begin
|
||||
s1 := '';
|
||||
while (s[n] = ' ') and (Length(s) > n) do
|
||||
inc(n);
|
||||
while (s[n] <> ' ') and (Length(s) >= n) do
|
||||
begin
|
||||
s1 := s1+s[n];
|
||||
inc(n);
|
||||
end;
|
||||
Result := Length(s1);
|
||||
end;
|
||||
|
||||
|
||||
function ScanStr(c : Char) : Boolean;
|
||||
begin
|
||||
while (s[n] <> c) and (Length(s) > n) do
|
||||
inc(n);
|
||||
inc(n);
|
||||
If (n <= Length(s)) then
|
||||
Result := True
|
||||
else
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
|
||||
function GetFmt : Integer;
|
||||
begin
|
||||
Result := -1;
|
||||
while true do
|
||||
begin
|
||||
|
||||
while (fmt[m] = ' ') and (Length(fmt) > m) do
|
||||
inc(m);
|
||||
|
||||
if (m >= Length(fmt)) then
|
||||
break;
|
||||
|
||||
if (fmt[m] = '%') then
|
||||
begin
|
||||
inc(m);
|
||||
case fmt[m] of
|
||||
'd':
|
||||
Result:=vtInteger;
|
||||
'f':
|
||||
Result:=vtExtended;
|
||||
's':
|
||||
Result:=vtString;
|
||||
'c':
|
||||
Result:=vtChar;
|
||||
else
|
||||
raise EFormatError.CreateFmt(SInvalidFormat,[fmt]);
|
||||
end;
|
||||
inc(m);
|
||||
break;
|
||||
end;
|
||||
|
||||
if not(ScanStr(fmt[m])) then
|
||||
break;
|
||||
inc(m);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
n := 1;
|
||||
m := 1;
|
||||
Result := 0;
|
||||
|
||||
for i:=0 to High(Pointers) do
|
||||
begin
|
||||
j := GetFmt;
|
||||
case j of
|
||||
vtInteger :
|
||||
begin
|
||||
if GetInt>0 then
|
||||
begin
|
||||
plongint(Pointers[i])^:=StrToInt(s1);
|
||||
inc(Result);
|
||||
end
|
||||
else
|
||||
break;
|
||||
|
||||
end;
|
||||
|
||||
vtchar :
|
||||
begin
|
||||
if Length(s)>n then
|
||||
begin
|
||||
pchar(Pointers[i])^:=s[n];
|
||||
inc(n);
|
||||
inc(Result);
|
||||
end
|
||||
else
|
||||
break;
|
||||
|
||||
end;
|
||||
|
||||
vtExtended :
|
||||
begin
|
||||
if GetFloat>0 then
|
||||
begin
|
||||
pextended(Pointers[i])^:=StrToFloat(s1);
|
||||
inc(Result);
|
||||
end
|
||||
else
|
||||
break;
|
||||
end;
|
||||
|
||||
vtString :
|
||||
begin
|
||||
if GetString > 0 then
|
||||
begin
|
||||
pansistring(Pointers[i])^:=s1;
|
||||
inc(Result);
|
||||
end
|
||||
else
|
||||
break;
|
||||
end;
|
||||
else
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -142,6 +142,8 @@ Function FormatFloat(Const Format : String; Value : Extended) : String;
|
||||
Function IsDelimiter(const Delimiters, S: string; Index: Integer): Boolean;
|
||||
function FormatCurr(const Format: string; Value: Currency): string;
|
||||
|
||||
function SScanf(const s: string; const fmt : string;const Pointers : array of Pointer) : Integer;
|
||||
|
||||
{// MBCS Functions. No MBCS yet, so mostly these are calls to the regular counterparts.}
|
||||
Type
|
||||
TMbcsByteType = (mbSingleByte, mbLeadByte, mbTrailByte);
|
||||
|
@ -129,6 +129,7 @@ type
|
||||
|
||||
{ String conversion errors }
|
||||
EConvertError = class(Exception);
|
||||
EFormatError = class(Exception);
|
||||
|
||||
{ Other errors }
|
||||
EAbort = Class(Exception);
|
||||
|
@ -536,38 +536,3 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
Revision 1.1 2003/10/06 21:01:06 peter
|
||||
* moved classes unit to rtl
|
||||
|
||||
Revision 1.17 2003/09/06 20:46:07 marco
|
||||
* 3 small VP fixes from Noah Silva. One (OutOfMemory error) failed.
|
||||
|
||||
Revision 1.16 2003/04/06 11:06:39 michael
|
||||
+ Added exception classname to output of unhandled exception for better identification
|
||||
|
||||
Revision 1.15 2003/03/18 08:28:23 michael
|
||||
Patch from peter for Abort routine
|
||||
|
||||
Revision 1.14 2003/03/17 15:11:51 armin
|
||||
+ someone AssertErrorHandler, BackTraceFunc and Dump_Stack so that pointer instead of longint is needed
|
||||
|
||||
Revision 1.13 2003/01/01 20:58:07 florian
|
||||
+ added invalid instruction exception
|
||||
|
||||
Revision 1.12 2002/10/07 19:43:24 florian
|
||||
+ empty prototypes for the AnsiStr* multi byte functions added
|
||||
|
||||
Revision 1.11 2002/09/07 16:01:22 peter
|
||||
* old logs removed and tabs fixed
|
||||
|
||||
Revision 1.10 2002/07/16 13:57:39 florian
|
||||
* raise takes now a void pointer as at and frame address
|
||||
instead of a longint, fixed
|
||||
|
||||
Revision 1.9 2002/01/25 17:42:03 peter
|
||||
* interface helpers
|
||||
|
||||
Revision 1.8 2002/01/25 16:23:03 peter
|
||||
* merged filesearch() fix
|
||||
}
|
||||
|
18
tests/test/units/sysutils/tsscanf.pp
Normal file
18
tests/test/units/sysutils/tsscanf.pp
Normal file
@ -0,0 +1,18 @@
|
||||
{$mode objfpc}
|
||||
{$h+}
|
||||
uses
|
||||
sysutils;
|
||||
var
|
||||
e : extended;
|
||||
s : string;
|
||||
l : longint;
|
||||
begin
|
||||
sscanf('asdf 1.2345 1234','%s %f %d',[@s,@e,@l]);
|
||||
if (e<>1.2345) or
|
||||
(l<>1234) or
|
||||
(s<>'asdf') then
|
||||
halt(1);
|
||||
// writeln(s,' ',e,' ',l);
|
||||
writeln('ok');
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user