Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0 sql/sql_select.cc: Auto merged
@ -1187,20 +1187,32 @@ mwagner@work.mysql.com|mysql-test/r/3.23/sel000002.result|20001010091454|29230|d
|
|||||||
ndb/src/client/Makefile
|
ndb/src/client/Makefile
|
||||||
nick@nick.leippe.com|mysql-test/r/rpl_empty_master_crash.result|20020531235552|47718|615f521be2132141
|
nick@nick.leippe.com|mysql-test/r/rpl_empty_master_crash.result|20020531235552|47718|615f521be2132141
|
||||||
nick@nick.leippe.com|mysql-test/t/rpl_empty_master_crash.test|20020531235552|52328|99464e737639ccc6
|
nick@nick.leippe.com|mysql-test/t/rpl_empty_master_crash.test|20020531235552|52328|99464e737639ccc6
|
||||||
|
reggie@mdk10.(none)|mysql-test/t/reserved_win_names-master.opt|20050520210356|14878|e56da049a7ce9a5b
|
||||||
sasha@mysql.sashanet.com|BitKeeper/etc/logging_ok|20000801000905|12967|5b7d847a2158554
|
sasha@mysql.sashanet.com|BitKeeper/etc/logging_ok|20000801000905|12967|5b7d847a2158554
|
||||||
sasha@mysql.sashanet.com|build-tags|20011125054855|05181|7afb7e785b80f97
|
sasha@mysql.sashanet.com|build-tags|20011125054855|05181|7afb7e785b80f97
|
||||||
sasha@mysql.sashanet.com|build-tags|20011201050944|25384|b6f6fff142121618
|
sasha@mysql.sashanet.com|build-tags|20011201050944|25384|b6f6fff142121618
|
||||||
sasha@mysql.sashanet.com|libmysql_r/acconfig.h|20001128060846|51084|65f1202b3b5c345f
|
sasha@mysql.sashanet.com|libmysql_r/acconfig.h|20001128060846|51084|65f1202b3b5c345f
|
||||||
sasha@mysql.sashanet.com|mysql-test/README.gcov|20001012045950|28177|5a6da067a30780ce
|
sasha@mysql.sashanet.com|mysql-test/README.gcov|20001012045950|28177|5a6da067a30780ce
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/README.gcov|20001214012355|41825|2de7575ca81155e5
|
||||||
sasha@mysql.sashanet.com|mysql-test/README|20001010001022|12739|108667adaeabe3f5
|
sasha@mysql.sashanet.com|mysql-test/README|20001010001022|12739|108667adaeabe3f5
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/alt000001.result|20001122072330|24729|393103dbf15f35c9
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/alt000001.result|20001122072330|24729|393103dbf15f35c9
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/ins000001.result|20001018175743|49824|f45c599efdf8352b
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/ins000001.result|20001018175743|49824|f45c599efdf8352b
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.a.result|20001118063528|39426|2987b17db06808c3
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.a.result|20001118063528|39426|2987b17db06808c3
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.b.result|20001118063528|44057|62e1fa91167cacc3
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000001.b.result|20001118063528|44057|62e1fa91167cacc3
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000002.result|20001118063528|46039|109f5ceed1e0d64
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000003.result|20001118063528|48148|68d6ee00beaa011
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000003.result|20001118063528|48148|68d6ee00beaa011
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.a.result|20001118063528|50132|3415f066cb91c460
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.a.result|20001118063528|50132|3415f066cb91c460
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.b.result|20001118063528|52094|352b35351551485
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000004.b.result|20001118063528|52094|352b35351551485
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000005.result|20001118063528|54071|a50962bc2340ab9a
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000006.result|20001118063528|56081|5653051e8ce6b4aa
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000007.result|20001121063807|21606|e0c3b6134e0884da
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000008.result|20001121063807|23636|c5cfee19ca5a7da9
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000009.result|20001121063807|25633|ed8042446ab97926
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000010.result|20001122072330|29430|3228109b8965b0f8
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000011.result|20001125024912|48851|c29dce30aa97f265
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000012.result|20001126062901|05938|35d6596da7b90fc5
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000012.status.result|20001126062901|09395|bbbd650b5beea32f
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000012.status.result|20001126062901|09395|bbbd650b5beea32f
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000013.result|20001202171150|03876|ac5024e6cf6daac6
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000013.status.result|20001202171150|06069|6bee190c298cc9fd
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/rpl000013.status.result|20001202171150|06069|6bee190c298cc9fd
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000003.result|20001011230020|64653|d7b657b1e3a286a7
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000003.result|20001011230020|64653|d7b657b1e3a286a7
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000100.res|20001205131218|23520|84ed46856cb3a69f
|
sasha@mysql.sashanet.com|mysql-test/r/3.23/sel000100.res|20001205131218|23520|84ed46856cb3a69f
|
||||||
@ -1209,6 +1221,7 @@ sasha@mysql.sashanet.com|mysql-test/r/binlog-backup-restore.result|2001042423392
|
|||||||
sasha@mysql.sashanet.com|mysql-test/r/df_crash.result|20010406010433|59989|4a3dbee64843953d
|
sasha@mysql.sashanet.com|mysql-test/r/df_crash.result|20010406010433|59989|4a3dbee64843953d
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/identity.result|20010910233028|16331|e41453a364242503
|
sasha@mysql.sashanet.com|mysql-test/r/identity.result|20010910233028|16331|e41453a364242503
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/mrg000002.result|20001212152450|11492|745be0854aaaaf5e
|
sasha@mysql.sashanet.com|mysql-test/r/mrg000002.result|20001212152450|11492|745be0854aaaaf5e
|
||||||
|
sasha@mysql.sashanet.com|mysql-test/r/slave-running.result|20001208141122|24303|f73e49462cf59e1f
|
||||||
sasha@mysql.sashanet.com|mysql-test/r/slave-stopped.result|20001208141122|28916|25c134b1a4f1993a
|
sasha@mysql.sashanet.com|mysql-test/r/slave-stopped.result|20001208141122|28916|25c134b1a4f1993a
|
||||||
sasha@mysql.sashanet.com|mysql-test/std_data/m.MRG|20001212152450|17736|3f5632c37af00f18
|
sasha@mysql.sashanet.com|mysql-test/std_data/m.MRG|20001212152450|17736|3f5632c37af00f18
|
||||||
sasha@mysql.sashanet.com|mysql-test/std_data/m.frm|20001212152450|13897|e351dfe0b6824c0c
|
sasha@mysql.sashanet.com|mysql-test/std_data/m.frm|20001212152450|13897|e351dfe0b6824c0c
|
||||||
|
@ -54,6 +54,7 @@ dlenev@mysql.com
|
|||||||
ejonore@mc03.ndb.mysql.com
|
ejonore@mc03.ndb.mysql.com
|
||||||
evgen@moonbone.(none)
|
evgen@moonbone.(none)
|
||||||
evgen@moonbone.local
|
evgen@moonbone.local
|
||||||
|
gbichot@bk-internal.mysql.com
|
||||||
gbichot@production.mysql.com
|
gbichot@production.mysql.com
|
||||||
gbichot@quadita2.mysql.com
|
gbichot@quadita2.mysql.com
|
||||||
gbichot@quadxeon.mysql.com
|
gbichot@quadxeon.mysql.com
|
||||||
|
@ -219,6 +219,10 @@ SOURCE=..\mysys\default.c
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\mysys\default_modify.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\dll.c
|
SOURCE=.\dll.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -180,6 +180,10 @@ SOURCE=..\mysys\default.c
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\mysys\default_modify.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\sql\derror.cpp
|
SOURCE=..\sql\derror.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -537,30 +537,6 @@ Package=<4>
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Project: "mysqlshutdown"=".\mysqlshutdown\mysqlshutdown.dsp" - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "mysqlwatch"=".\mysqlwatch\mysqlwatch.dsp" - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "mysys"=".\mysys\mysys.dsp" - Package Owner=<4>
|
Project: "mysys"=".\mysys\mysys.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
|
@ -640,30 +640,6 @@ Package=<4>
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
Project: "mysqlshutdown"=".\mysqlshutdown\mysqlshutdown_ia64.dsp" - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "mysqlwatch"=".\mysqlwatch\mysqlwatch_ia64.dsp" - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "pack_isam"=".\pack_isam\pack_isam_ia64.dsp" - Package Owner=<4>
|
Project: "pack_isam"=".\pack_isam\pack_isam_ia64.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
Package=<5>
|
Package=<5>
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="myshutdown" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
|
||||||
|
|
||||||
CFG=myshutdown - Win32 Debug
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "myshutdown.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "myshutdown.mak" CFG="myshutdown - Win32 Debug"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "myshutdown - Win32 Release" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE "myshutdown - Win32 Debug" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=cl.exe
|
|
||||||
MTL=midl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
|
|
||||||
!IF "$(CFG)" == "myshutdown - Win32 Release"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "Release"
|
|
||||||
# PROP Intermediate_Dir "Release"
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "myshutdown - Win32 Debug"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
|
||||||
# PROP BASE Output_Dir "Debug"
|
|
||||||
# PROP BASE Intermediate_Dir "Debug"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 1
|
|
||||||
# PROP Output_Dir "Debug"
|
|
||||||
# PROP Intermediate_Dir "Debug"
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
|
||||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
|
||||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
|
||||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
|
||||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
|
|
||||||
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "myshutdown - Win32 Release"
|
|
||||||
# Name "myshutdown - Win32 Debug"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
@ -1,101 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="myshutdown" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
|
||||||
|
|
||||||
CFG=myshutdown - Win32 Debug
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "myshutdown.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "myshutdown.mak" CFG="myshutdown - Win32 Debug"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "myshutdown - WinIA64 Release" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE "myshutdown - WinIA64 Debug" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=cl.exe
|
|
||||||
MTL=midl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
|
|
||||||
!IF "$(CFG)" == "myshutdown - WinIA64 Release"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "Release"
|
|
||||||
# PROP Intermediate_Dir "Release"
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /W3 /D"WIN64" /D"NDEBUG" /D"_WINDOWS" /D"_MBCS" /YX /FD /c /O2 /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:IA64
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:IA64 /incremental:no
|
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "myshutdown - WinIA64 Debug"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 1
|
|
||||||
# PROP BASE Output_Dir "Debug"
|
|
||||||
# PROP BASE Intermediate_Dir "Debug"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 1
|
|
||||||
# PROP Output_Dir "Debug"
|
|
||||||
# PROP Intermediate_Dir "Debug"
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
|
||||||
# ADD CPP /nologo /W3 /Gm /D"WIN64" /D"_DEBUG" /D"_WINDOWS" /D"_MBCS" /YX /FD /GZ /c /Od /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
|
|
||||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win64
|
|
||||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win64
|
|
||||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:IA64
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:IA64 /incremental:no
|
|
||||||
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "myshutdown - WinIA64 Release"
|
|
||||||
# Name "myshutdown - WinIA64 Debug"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
Before Width: | Height: | Size: 318 B |
@ -1,198 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
MySqlShutdown - shutdown MySQL on system shutdown (Win95/98)
|
|
||||||
----------------------------------------------------------------------------
|
|
||||||
Revision History :
|
|
||||||
Version Author Date Description
|
|
||||||
001.00 Irena 21-12-99
|
|
||||||
*****************************************************************************/
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Local data
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
static char szAppName[] = "MySqlShutdown";
|
|
||||||
static HINSTANCE hInstance;
|
|
||||||
|
|
||||||
#define MYWM_NOTIFYICON (WM_APP+100)
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Exported functions
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
LRESULT CALLBACK MainWindowProc (HWND, UINT, WPARAM, LPARAM);
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Local functions
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
static BOOL InitAppClass (HINSTANCE hInstance);
|
|
||||||
|
|
||||||
BOOL TrayMessageAdd(HWND hWnd, DWORD dwMessage)
|
|
||||||
{
|
|
||||||
BOOL res;
|
|
||||||
HICON hIcon =LoadIcon (hInstance, "MySql");
|
|
||||||
char *szTip="MySql Shutdown";
|
|
||||||
NOTIFYICONDATA tnd;
|
|
||||||
|
|
||||||
tnd.cbSize = sizeof(NOTIFYICONDATA);
|
|
||||||
tnd.hWnd = hWnd;
|
|
||||||
tnd.uID = 101;
|
|
||||||
|
|
||||||
tnd.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
|
|
||||||
tnd.uCallbackMessage = MYWM_NOTIFYICON;
|
|
||||||
tnd.hIcon = hIcon;
|
|
||||||
strcpy(tnd.szTip, szTip);
|
|
||||||
res = Shell_NotifyIcon(dwMessage, &tnd);
|
|
||||||
|
|
||||||
if (hIcon) DestroyIcon(hIcon);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Name: WinMain
|
|
||||||
// Purpose: Main application entry point
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
|
|
||||||
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
|
|
||||||
{ HWND hWnd;
|
|
||||||
MSG Msg;
|
|
||||||
|
|
||||||
hInstance=hInst;
|
|
||||||
// Register application class if needed
|
|
||||||
if (InitAppClass (hInstance) == FALSE) return (0);
|
|
||||||
|
|
||||||
|
|
||||||
hWnd = CreateWindow (szAppName, "MySql",
|
|
||||||
WS_OVERLAPPEDWINDOW|WS_MINIMIZE,
|
|
||||||
0, 0,
|
|
||||||
GetSystemMetrics(SM_CXSCREEN)/4,
|
|
||||||
GetSystemMetrics(SM_CYSCREEN)/4,
|
|
||||||
0, 0, hInstance, NULL);
|
|
||||||
|
|
||||||
if(!hWnd)
|
|
||||||
{
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
ShowWindow (hWnd, SW_HIDE);
|
|
||||||
UpdateWindow (hWnd);
|
|
||||||
while (GetMessage (&Msg, 0, 0, 0))
|
|
||||||
{ TranslateMessage (&Msg);
|
|
||||||
DispatchMessage (&Msg);
|
|
||||||
}
|
|
||||||
return ((int) (Msg.wParam));
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Name: InitAppClass
|
|
||||||
// Purpose: Register the main application window class
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
static BOOL InitAppClass (HINSTANCE hInstance)
|
|
||||||
{
|
|
||||||
WNDCLASS cls;
|
|
||||||
|
|
||||||
if (GetClassInfo (hInstance, szAppName, &cls) == 0)
|
|
||||||
{
|
|
||||||
cls.style = CS_HREDRAW | CS_VREDRAW ;;
|
|
||||||
cls.lpfnWndProc = (WNDPROC) MainWindowProc;
|
|
||||||
cls.cbClsExtra = 0;
|
|
||||||
cls.cbWndExtra = sizeof(HWND);
|
|
||||||
cls.hInstance = hInstance;
|
|
||||||
cls.hIcon = LoadIcon (hInstance, "MySql");
|
|
||||||
cls.hCursor = LoadCursor (NULL, IDC_ARROW);
|
|
||||||
cls.hbrBackground = GetStockObject (WHITE_BRUSH) ;
|
|
||||||
cls.lpszMenuName = 0; //szAppName;
|
|
||||||
cls.lpszClassName = szAppName;
|
|
||||||
return RegisterClass (&cls);
|
|
||||||
}
|
|
||||||
return (TRUE);
|
|
||||||
}
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
// Name: MainWindowProc
|
|
||||||
// Purpose: Window procedure for main application window.
|
|
||||||
//-----------------------------------------------------------------------
|
|
||||||
LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
static RECT rect ;
|
|
||||||
HDC hdc ;
|
|
||||||
PAINTSTRUCT ps ;
|
|
||||||
static BOOL bShutdown=FALSE;
|
|
||||||
|
|
||||||
switch (Msg)
|
|
||||||
{
|
|
||||||
case WM_CREATE:
|
|
||||||
TrayMessageAdd(hWnd, NIM_ADD);
|
|
||||||
return TRUE;
|
|
||||||
/***************
|
|
||||||
case WM_SYSCOMMAND:
|
|
||||||
if(wParam==SC_CLOSE)
|
|
||||||
{ HANDLE hEventShutdown;
|
|
||||||
|
|
||||||
bShutdown=TRUE;
|
|
||||||
InvalidateRect(hWnd,NULL,TRUE);
|
|
||||||
ShowWindow (hWnd, SW_NORMAL);
|
|
||||||
UpdateWindow(hWnd);
|
|
||||||
hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown");
|
|
||||||
if(hEventShutdown)
|
|
||||||
{
|
|
||||||
SetEvent(hEventShutdown);
|
|
||||||
CloseHandle(hEventShutdown);
|
|
||||||
Sleep(1000);
|
|
||||||
MessageBox(hWnd,"Shutdown", "MySql", MB_OK);
|
|
||||||
}
|
|
||||||
TrayMessageAdd(hWnd, NIM_DELETE);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
**************/
|
|
||||||
case WM_DESTROY:
|
|
||||||
TrayMessageAdd(hWnd, NIM_DELETE);
|
|
||||||
PostQuitMessage (0);
|
|
||||||
return 0;
|
|
||||||
case WM_SIZE:
|
|
||||||
GetClientRect (hWnd, &rect) ;
|
|
||||||
return 0 ;
|
|
||||||
|
|
||||||
case WM_PAINT:
|
|
||||||
hdc = BeginPaint (hWnd, &ps) ;
|
|
||||||
if(bShutdown)
|
|
||||||
DrawText (hdc, "MySql shutdown in progress...",
|
|
||||||
-1, &rect, DT_WORDBREAK) ;
|
|
||||||
EndPaint (hWnd, &ps) ;
|
|
||||||
return 0 ;
|
|
||||||
case WM_QUERYENDSESSION: //Shutdown MySql
|
|
||||||
{ HANDLE hEventShutdown;
|
|
||||||
|
|
||||||
bShutdown=TRUE;
|
|
||||||
InvalidateRect(hWnd,NULL,TRUE);
|
|
||||||
ShowWindow (hWnd, SW_NORMAL);
|
|
||||||
UpdateWindow(hWnd);
|
|
||||||
hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown");
|
|
||||||
if(hEventShutdown)
|
|
||||||
{
|
|
||||||
SetEvent(hEventShutdown);
|
|
||||||
CloseHandle(hEventShutdown);
|
|
||||||
Sleep(1000);
|
|
||||||
MessageBox(hWnd,"Shutdown", "MySql", MB_OK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
case MYWM_NOTIFYICON:
|
|
||||||
switch (lParam)
|
|
||||||
{
|
|
||||||
case WM_LBUTTONDOWN:
|
|
||||||
case WM_RBUTTONDOWN:
|
|
||||||
ShowWindow(hWnd, SW_SHOWNORMAL);
|
|
||||||
SetForegroundWindow(hWnd); // make us come to the front
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
return DefWindowProc (hWnd, Msg, wParam, lParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------- The end ------------------------------------------
|
|
||||||
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="mysqlshutdown" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
|
||||||
|
|
||||||
CFG=mysqlshutdown - Win32 Release
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlshutdown.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlshutdown.mak" CFG="mysqlshutdown - Win32 Release"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "mysqlshutdown - Win32 Release" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE "mysqlshutdown - Win32 Debug" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=xicl6.exe
|
|
||||||
MTL=midl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
|
|
||||||
!IF "$(CFG)" == "mysqlshutdown - Win32 Release"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "release"
|
|
||||||
# PROP Intermediate_Dir "release"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /G6 /W3 /O2 /D "_WINDOWS" /D "_MBCS" /D "NDEBUG" /FD /c
|
|
||||||
# SUBTRACT CPP /WX /Fr /YX
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=xilink6.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"../client_release/mysqlshutdown.exe"
|
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "mysqlshutdown - Win32 Debug"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "mysqlshutdown___Win32_Debug"
|
|
||||||
# PROP BASE Intermediate_Dir "mysqlshutdown___Win32_Debug"
|
|
||||||
# PROP BASE Ignore_Export_Lib 0
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "debug"
|
|
||||||
# PROP Intermediate_Dir "debug"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /G6 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
|
||||||
# SUBTRACT BASE CPP /YX
|
|
||||||
# ADD CPP /nologo /G6 /W3 /Z7 /Od /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
|
||||||
# SUBTRACT CPP /Fr /YX
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=xilink6.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"../client_release/mysqlshutdown.exe"
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"../client_debug/mysqlshutdown.exe"
|
|
||||||
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "mysqlshutdown - Win32 Release"
|
|
||||||
# Name "mysqlshutdown - Win32 Debug"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlshutdown.c
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlshutdown.rc
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysql.ico
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
@ -1,2 +0,0 @@
|
|||||||
MySql ICON DISCARDABLE "MYSQL.ICO"
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="mysqlshutdown" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
|
||||||
|
|
||||||
CFG=mysqlshutdown - WinIA64 Debug
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlshutdown_ia64.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlshutdown_ia64.mak" CFG="mysqlshutdown - WinIA64 Debug"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "mysqlshutdown - WinIA64 Release" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE "mysqlshutdown - WinIA64 Debug" (based on "Win32 (x86) Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=cl.exe
|
|
||||||
MTL=midl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
|
|
||||||
!IF "$(CFG)" == "mysqlshutdown - WinIA64 Release"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "release"
|
|
||||||
# PROP Intermediate_Dir "release"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /W3 /Zi /O2 /D "_WINDOWS" /D "_MBCS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
|
|
||||||
# SUBTRACT CPP /WX /Fr /YX
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:IA64
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib /nologo /subsystem:windows /out:"../client_release/mysqlshutdown.exe" /machine:IA64
|
|
||||||
|
|
||||||
!ELSEIF "$(CFG)" == "mysqlshutdown - WinIA64 Debug"
|
|
||||||
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "mysqlshutdown___Win64_Debug"
|
|
||||||
# PROP BASE Intermediate_Dir "mysqlshutdown___Win64_Debug"
|
|
||||||
# PROP BASE Ignore_Export_Lib 0
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "debug"
|
|
||||||
# PROP Intermediate_Dir "debug"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /G6 /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
|
|
||||||
# SUBTRACT BASE CPP /YX
|
|
||||||
# ADD CPP /nologo /W3 /Zi /Od /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
|
|
||||||
# SUBTRACT CPP /Fr /YX
|
|
||||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win64
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /out:"../client_release/mysqlshutdown.exe" /machine:IA64
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib /nologo /subsystem:windows /out:"../client_debug/mysqlshutdown.exe" /machine:IA64
|
|
||||||
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "mysqlshutdown - WinIA64 Release"
|
|
||||||
# Name "mysqlshutdown - WinIA64 Debug"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlshutdown.c
|
|
||||||
# End Source File
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlshutdown.rc
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysql.ico
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
@ -1,745 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
MySqlWatch - WinNT service program MySQL
|
|
||||||
- Re-start MySql server in case of failure
|
|
||||||
*****************************************************************************/
|
|
||||||
#include <windows.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <process.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
|
|
||||||
// name of the executable
|
|
||||||
#define SZAPPNAME "mysqlwatch"
|
|
||||||
// internal name of the service
|
|
||||||
#define SZSERVICENAME "MySqlWatch"
|
|
||||||
// displayed name of the service
|
|
||||||
#define SZSERVICEDISPLAYNAME "MySqlWatch"
|
|
||||||
// list of service dependencies - "dep1\0dep2\0\0"
|
|
||||||
#define SZDEPENDENCIES ""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
VOID ServiceStart(DWORD dwArgc, LPTSTR *lpszArgv);
|
|
||||||
VOID ServiceStop(void);
|
|
||||||
BOOL ReportStatusToSCMgr(DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwWaitHint);
|
|
||||||
void AddToMessageLog(LPTSTR lpszMsg);
|
|
||||||
|
|
||||||
// internal variables
|
|
||||||
SERVICE_STATUS ssStatus; // current status of the service
|
|
||||||
SERVICE_STATUS_HANDLE sshStatusHandle;
|
|
||||||
DWORD dwErr = 0;
|
|
||||||
BOOL bDebug = FALSE;
|
|
||||||
TCHAR szErr[256];
|
|
||||||
|
|
||||||
// internal function prototypes
|
|
||||||
void WINAPI service_ctrl(DWORD dwCtrlCode);
|
|
||||||
void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv);
|
|
||||||
void CmdInstallService(void);
|
|
||||||
void CmdRemoveService(void);
|
|
||||||
void CmdDebugService(int argc, char **argv);
|
|
||||||
BOOL WINAPI ControlHandler ( DWORD dwCtrlType );
|
|
||||||
LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize );
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: main
|
|
||||||
//
|
|
||||||
// PURPOSE: entrypoint for service
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// argc - number of command line arguments
|
|
||||||
// argv - array of command line arguments
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
// main() either performs the command line task, or
|
|
||||||
// call StartServiceCtrlDispatcher to register the
|
|
||||||
// main service thread. When the this call returns,
|
|
||||||
// the service has stopped, so exit.
|
|
||||||
//
|
|
||||||
void main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
SERVICE_TABLE_ENTRY dispatchTable[] =
|
|
||||||
{
|
|
||||||
{ TEXT(SZSERVICENAME), (LPSERVICE_MAIN_FUNCTION)service_main },
|
|
||||||
{ NULL, NULL }
|
|
||||||
};
|
|
||||||
|
|
||||||
if ( (argc > 1) &&
|
|
||||||
((*argv[1] == '-') || (*argv[1] == '/')) )
|
|
||||||
{
|
|
||||||
if ( stricmp( "install", argv[1]+1 ) == 0 )
|
|
||||||
{
|
|
||||||
CmdInstallService();
|
|
||||||
}
|
|
||||||
else if ( stricmp( "remove", argv[1]+1 ) == 0 )
|
|
||||||
{
|
|
||||||
CmdRemoveService();
|
|
||||||
}
|
|
||||||
else if ( stricmp( "debug", argv[1]+1 ) == 0 )
|
|
||||||
{
|
|
||||||
bDebug = TRUE;
|
|
||||||
CmdDebugService(argc, argv);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
goto dispatch;
|
|
||||||
}
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if it doesn't match any of the above parameters
|
|
||||||
// the service control manager may be starting the service
|
|
||||||
// so we must call StartServiceCtrlDispatcher
|
|
||||||
dispatch:
|
|
||||||
// this is just to be friendly
|
|
||||||
printf( "%s -install to install the service\n", SZAPPNAME );
|
|
||||||
printf( "%s -remove to remove the service\n", SZAPPNAME );
|
|
||||||
printf( "%s -debug <params> to run as a console app for debugging\n", SZAPPNAME );
|
|
||||||
printf( "\nStartServiceCtrlDispatcher being called.\n" );
|
|
||||||
printf( "This may take several seconds. Please wait.\n" );
|
|
||||||
|
|
||||||
if (!StartServiceCtrlDispatcher(dispatchTable))
|
|
||||||
AddToMessageLog(TEXT("StartServiceCtrlDispatcher failed."));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: service_main
|
|
||||||
//
|
|
||||||
// PURPOSE: To perform actual initialization of the service
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// dwArgc - number of command line arguments
|
|
||||||
// lpszArgv - array of command line arguments
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
// This routine performs the service initialization and then calls
|
|
||||||
// the user defined ServiceStart() routine to perform majority
|
|
||||||
// of the work.
|
|
||||||
//
|
|
||||||
void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv)
|
|
||||||
{
|
|
||||||
|
|
||||||
// register our service control handler:
|
|
||||||
//
|
|
||||||
sshStatusHandle = RegisterServiceCtrlHandler( TEXT(SZSERVICENAME), service_ctrl);
|
|
||||||
|
|
||||||
if (!sshStatusHandle)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
// SERVICE_STATUS members that don't change in example
|
|
||||||
//
|
|
||||||
ssStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
|
|
||||||
ssStatus.dwServiceSpecificExitCode = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// report the status to the service control manager.
|
|
||||||
//
|
|
||||||
if (!ReportStatusToSCMgr(
|
|
||||||
SERVICE_START_PENDING, // service state
|
|
||||||
NO_ERROR, // exit code
|
|
||||||
3000)) // wait hint
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
|
|
||||||
ServiceStart( dwArgc, lpszArgv );
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
|
|
||||||
// try to report the stopped status to the service control manager.
|
|
||||||
//
|
|
||||||
if (sshStatusHandle)
|
|
||||||
ReportStatusToSCMgr(
|
|
||||||
SERVICE_STOPPED,
|
|
||||||
dwErr,
|
|
||||||
0);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: service_ctrl
|
|
||||||
//
|
|
||||||
// PURPOSE: This function is called by the SCM whenever
|
|
||||||
// ControlService() is called on this service.
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// dwCtrlCode - type of control requested
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void WINAPI service_ctrl(DWORD dwCtrlCode)
|
|
||||||
{
|
|
||||||
// Handle the requested control code.
|
|
||||||
//
|
|
||||||
switch(dwCtrlCode)
|
|
||||||
{
|
|
||||||
// Stop the service.
|
|
||||||
//
|
|
||||||
case SERVICE_CONTROL_STOP:
|
|
||||||
ssStatus.dwCurrentState = SERVICE_STOP_PENDING;
|
|
||||||
ServiceStop();
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Update the service status.
|
|
||||||
//
|
|
||||||
case SERVICE_CONTROL_INTERROGATE:
|
|
||||||
break;
|
|
||||||
|
|
||||||
// invalid control code
|
|
||||||
//
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ReportStatusToSCMgr(ssStatus.dwCurrentState, NO_ERROR, 0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: ReportStatusToSCMgr()
|
|
||||||
//
|
|
||||||
// PURPOSE: Sets the current status of the service and
|
|
||||||
// reports it to the Service Control Manager
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// dwCurrentState - the state of the service
|
|
||||||
// dwWin32ExitCode - error code to report
|
|
||||||
// dwWaitHint - worst case estimate to next checkpoint
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// TRUE - success
|
|
||||||
// FALSE - failure
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
BOOL ReportStatusToSCMgr(DWORD dwCurrentState,
|
|
||||||
DWORD dwWin32ExitCode,
|
|
||||||
DWORD dwWaitHint)
|
|
||||||
{
|
|
||||||
static DWORD dwCheckPoint = 1;
|
|
||||||
BOOL fResult = TRUE;
|
|
||||||
|
|
||||||
|
|
||||||
if ( !bDebug ) // when debugging we don't report to the SCM
|
|
||||||
{
|
|
||||||
if (dwCurrentState == SERVICE_START_PENDING)
|
|
||||||
ssStatus.dwControlsAccepted = 0;
|
|
||||||
else
|
|
||||||
ssStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
|
|
||||||
|
|
||||||
ssStatus.dwCurrentState = dwCurrentState;
|
|
||||||
ssStatus.dwWin32ExitCode = dwWin32ExitCode;
|
|
||||||
ssStatus.dwWaitHint = dwWaitHint;
|
|
||||||
|
|
||||||
if ( ( dwCurrentState == SERVICE_RUNNING ) ||
|
|
||||||
( dwCurrentState == SERVICE_STOPPED ) )
|
|
||||||
ssStatus.dwCheckPoint = 0;
|
|
||||||
else
|
|
||||||
ssStatus.dwCheckPoint = dwCheckPoint++;
|
|
||||||
|
|
||||||
|
|
||||||
// Report the status of the service to the service control manager.
|
|
||||||
//
|
|
||||||
if (!(fResult = SetServiceStatus( sshStatusHandle, &ssStatus))) {
|
|
||||||
AddToMessageLog(TEXT("SetServiceStatus"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: AddToMessageLog(LPTSTR lpszMsg)
|
|
||||||
//
|
|
||||||
// PURPOSE: Allows any thread to log an error message
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// lpszMsg - text for message
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void AddToMessageLog(LPTSTR lpszMsg)
|
|
||||||
{
|
|
||||||
TCHAR szMsg[256];
|
|
||||||
HANDLE hEventSource;
|
|
||||||
LPTSTR lpszStrings[2];
|
|
||||||
|
|
||||||
|
|
||||||
if ( !bDebug )
|
|
||||||
{
|
|
||||||
dwErr = GetLastError();
|
|
||||||
|
|
||||||
// Use event logging to log the error.
|
|
||||||
//
|
|
||||||
hEventSource = RegisterEventSource(NULL, TEXT(SZSERVICENAME));
|
|
||||||
|
|
||||||
_stprintf(szMsg, TEXT("%s error: %d"), TEXT(SZSERVICENAME), dwErr);
|
|
||||||
lpszStrings[0] = szMsg;
|
|
||||||
lpszStrings[1] = lpszMsg;
|
|
||||||
|
|
||||||
if (hEventSource != NULL) {
|
|
||||||
ReportEvent(hEventSource, // handle of event source
|
|
||||||
EVENTLOG_ERROR_TYPE, // event type
|
|
||||||
0, // event category
|
|
||||||
0, // event ID
|
|
||||||
NULL, // current user's SID
|
|
||||||
2, // strings in lpszStrings
|
|
||||||
0, // no bytes of raw data
|
|
||||||
lpszStrings, // array of error strings
|
|
||||||
NULL); // no raw data
|
|
||||||
|
|
||||||
DeregisterEventSource(hEventSource);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// The following code handles service installation and removal
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: CmdInstallService()
|
|
||||||
//
|
|
||||||
// PURPOSE: Installs the service
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void CmdInstallService()
|
|
||||||
{
|
|
||||||
SC_HANDLE schService;
|
|
||||||
SC_HANDLE schSCManager;
|
|
||||||
|
|
||||||
TCHAR szPath[512];
|
|
||||||
|
|
||||||
if ( GetModuleFileName( NULL, szPath, 512 ) == 0 )
|
|
||||||
{
|
|
||||||
_tprintf(TEXT("Unable to install %s - %s\n"), TEXT(SZSERVICEDISPLAYNAME), GetLastErrorText(szErr, 256));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
schSCManager = OpenSCManager(
|
|
||||||
NULL, // machine (NULL == local)
|
|
||||||
NULL, // database (NULL == default)
|
|
||||||
SC_MANAGER_ALL_ACCESS // access required
|
|
||||||
);
|
|
||||||
if ( schSCManager )
|
|
||||||
{
|
|
||||||
schService = CreateService(
|
|
||||||
schSCManager, // SCManager database
|
|
||||||
TEXT(SZSERVICENAME), // name of service
|
|
||||||
TEXT(SZSERVICEDISPLAYNAME), // name to display
|
|
||||||
SERVICE_ALL_ACCESS, // desired access
|
|
||||||
SERVICE_WIN32_OWN_PROCESS, // service type
|
|
||||||
SERVICE_DEMAND_START, // start type
|
|
||||||
SERVICE_ERROR_NORMAL, // error control type
|
|
||||||
szPath, // service's binary
|
|
||||||
NULL, // no load ordering group
|
|
||||||
NULL, // no tag identifier
|
|
||||||
TEXT(SZDEPENDENCIES), // dependencies
|
|
||||||
NULL, // LocalSystem account
|
|
||||||
NULL); // no password
|
|
||||||
|
|
||||||
if ( schService )
|
|
||||||
{
|
|
||||||
_tprintf(TEXT("%s installed.\n"), TEXT(SZSERVICEDISPLAYNAME) );
|
|
||||||
CloseServiceHandle(schService);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_tprintf(TEXT("CreateService failed - %s\n"), GetLastErrorText(szErr, 256));
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseServiceHandle(schSCManager);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: CmdRemoveService()
|
|
||||||
//
|
|
||||||
// PURPOSE: Stops and removes the service
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void CmdRemoveService()
|
|
||||||
{
|
|
||||||
SC_HANDLE schService;
|
|
||||||
SC_HANDLE schSCManager;
|
|
||||||
|
|
||||||
schSCManager = OpenSCManager(
|
|
||||||
NULL, // machine (NULL == local)
|
|
||||||
NULL, // database (NULL == default)
|
|
||||||
SC_MANAGER_ALL_ACCESS // access required
|
|
||||||
);
|
|
||||||
if ( schSCManager )
|
|
||||||
{
|
|
||||||
schService = OpenService(schSCManager, TEXT(SZSERVICENAME), SERVICE_ALL_ACCESS);
|
|
||||||
|
|
||||||
if (schService)
|
|
||||||
{
|
|
||||||
// try to stop the service
|
|
||||||
if ( ControlService( schService, SERVICE_CONTROL_STOP, &ssStatus ) )
|
|
||||||
{
|
|
||||||
_tprintf(TEXT("Stopping %s."), TEXT(SZSERVICEDISPLAYNAME));
|
|
||||||
Sleep( 1000 );
|
|
||||||
|
|
||||||
while( QueryServiceStatus( schService, &ssStatus ) )
|
|
||||||
{
|
|
||||||
if ( ssStatus.dwCurrentState == SERVICE_STOP_PENDING )
|
|
||||||
{
|
|
||||||
_tprintf(TEXT("."));
|
|
||||||
Sleep( 1000 );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ssStatus.dwCurrentState == SERVICE_STOPPED )
|
|
||||||
_tprintf(TEXT("\n%s stopped.\n"), TEXT(SZSERVICEDISPLAYNAME) );
|
|
||||||
else
|
|
||||||
_tprintf(TEXT("\n%s failed to stop.\n"), TEXT(SZSERVICEDISPLAYNAME) );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// now remove the service
|
|
||||||
if( DeleteService(schService) )
|
|
||||||
_tprintf(TEXT("%s removed.\n"), TEXT(SZSERVICEDISPLAYNAME) );
|
|
||||||
else
|
|
||||||
_tprintf(TEXT("DeleteService failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
|
|
||||||
|
|
||||||
CloseServiceHandle(schService);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_tprintf(TEXT("OpenService failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
|
|
||||||
CloseServiceHandle(schSCManager);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: CmdRestartService()
|
|
||||||
//
|
|
||||||
// PURPOSE: Stops and removes the service
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void CmdRestartService(char *szServiceName)
|
|
||||||
{
|
|
||||||
SC_HANDLE schService;
|
|
||||||
SC_HANDLE schSCManager;
|
|
||||||
|
|
||||||
schSCManager = OpenSCManager(
|
|
||||||
NULL, // machine (NULL == local)
|
|
||||||
NULL, // database (NULL == default)
|
|
||||||
SC_MANAGER_ALL_ACCESS // access required
|
|
||||||
);
|
|
||||||
if ( schSCManager )
|
|
||||||
{
|
|
||||||
schService = OpenService(schSCManager, TEXT(szServiceName), SERVICE_ALL_ACCESS);
|
|
||||||
if (schService)
|
|
||||||
{
|
|
||||||
if(! ControlService( schService, SERVICE_CONTROL_INTERROGATE, &ssStatus ) )
|
|
||||||
//if(QueryServiceStatus( schService, &ssStatus )==0)
|
|
||||||
{
|
|
||||||
if(GetLastError()==ERROR_SERVICE_NOT_ACTIVE)
|
|
||||||
{
|
|
||||||
|
|
||||||
//AddToMessageLog(TEXT("Start service..."));
|
|
||||||
StartService( schService, 0,NULL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ ;
|
|
||||||
//AddToMessageLog(TEXT("QueryService..."));
|
|
||||||
//AddToMessageLog(TEXT(GetLastErrorText(szErr,256)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CloseServiceHandle(schService);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ _tprintf(TEXT("OpenService failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
AddToMessageLog(TEXT("OpenService..."));
|
|
||||||
AddToMessageLog(TEXT(GetLastErrorText(szErr,256)));
|
|
||||||
|
|
||||||
}
|
|
||||||
CloseServiceHandle(schSCManager);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ _tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(szErr,256));
|
|
||||||
AddToMessageLog(TEXT("OpenSCMManager.."));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// The following code is for running the service as a console app
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: CmdDebugService(int argc, char ** argv)
|
|
||||||
//
|
|
||||||
// PURPOSE: Runs the service as a console application
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// argc - number of command line arguments
|
|
||||||
// argv - array of command line arguments
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// none
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
void CmdDebugService(int argc, char ** argv)
|
|
||||||
{
|
|
||||||
DWORD dwArgc;
|
|
||||||
LPTSTR *lpszArgv;
|
|
||||||
|
|
||||||
#ifdef UNICODE
|
|
||||||
lpszArgv = CommandLineToArgvW(GetCommandLineW(), &(dwArgc) );
|
|
||||||
#else
|
|
||||||
dwArgc = (DWORD) argc;
|
|
||||||
lpszArgv = argv;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_tprintf(TEXT("Debugging %s.\n"), TEXT(SZSERVICEDISPLAYNAME));
|
|
||||||
|
|
||||||
SetConsoleCtrlHandler( ControlHandler, TRUE );
|
|
||||||
|
|
||||||
ServiceStart( dwArgc, lpszArgv );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: ControlHandler ( DWORD dwCtrlType )
|
|
||||||
//
|
|
||||||
// PURPOSE: Handled console control events
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// dwCtrlType - type of control event
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// True - handled
|
|
||||||
// False - unhandled
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
BOOL WINAPI ControlHandler ( DWORD dwCtrlType )
|
|
||||||
{
|
|
||||||
switch( dwCtrlType )
|
|
||||||
{
|
|
||||||
case CTRL_BREAK_EVENT: // use Ctrl+C or Ctrl+Break to simulate
|
|
||||||
case CTRL_C_EVENT: // SERVICE_CONTROL_STOP in debug mode
|
|
||||||
_tprintf(TEXT("Stopping %s.\n"), TEXT(SZSERVICEDISPLAYNAME));
|
|
||||||
ServiceStop();
|
|
||||||
return TRUE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: GetLastErrorText
|
|
||||||
//
|
|
||||||
// PURPOSE: copies error message text to string
|
|
||||||
//
|
|
||||||
// PARAMETERS:
|
|
||||||
// lpszBuf - destination buffer
|
|
||||||
// dwSize - size of buffer
|
|
||||||
//
|
|
||||||
// RETURN VALUE:
|
|
||||||
// destination buffer
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
LPTSTR GetLastErrorText( LPTSTR lpszBuf, DWORD dwSize )
|
|
||||||
{
|
|
||||||
DWORD dwRet;
|
|
||||||
LPTSTR lpszTemp = NULL;
|
|
||||||
|
|
||||||
dwRet = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ARGUMENT_ARRAY,
|
|
||||||
NULL,
|
|
||||||
GetLastError(),
|
|
||||||
LANG_NEUTRAL,
|
|
||||||
(LPTSTR)&lpszTemp,
|
|
||||||
0,
|
|
||||||
NULL );
|
|
||||||
|
|
||||||
// supplied buffer is not long enough
|
|
||||||
if ( !dwRet || ( (long)dwSize < (long)dwRet+14 ) )
|
|
||||||
lpszBuf[0] = TEXT('\0');
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lpszTemp[lstrlen(lpszTemp)-2] = TEXT('\0'); //remove cr and newline character
|
|
||||||
_stprintf( lpszBuf, TEXT("%s (0x%x)"), lpszTemp, GetLastError() );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( lpszTemp )
|
|
||||||
LocalFree((HLOCAL) lpszTemp );
|
|
||||||
|
|
||||||
return lpszBuf;
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// this event is signalled when the
|
|
||||||
// service should end
|
|
||||||
//-------------------------------------------------
|
|
||||||
HANDLE hServerStopEvent = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// FUNCTION: ServiceStart
|
|
||||||
//
|
|
||||||
// PURPOSE: Actual code of the service
|
|
||||||
// that does the work.
|
|
||||||
//-------------------------------------------------
|
|
||||||
void ServiceStart (DWORD dwArgc, LPTSTR *lpszArgv)
|
|
||||||
{
|
|
||||||
DWORD dwWait,dwTimeout=1000*60*1;
|
|
||||||
|
|
||||||
if (!ReportStatusToSCMgr(
|
|
||||||
SERVICE_START_PENDING, // service state
|
|
||||||
NO_ERROR, // exit code
|
|
||||||
3000)) // wait hint
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
// create the event object. The control handler function signals
|
|
||||||
// this event when it receives the "stop" control code.
|
|
||||||
//
|
|
||||||
hServerStopEvent = CreateEvent(
|
|
||||||
NULL, // no security attributes
|
|
||||||
TRUE, // manual reset event
|
|
||||||
FALSE, // not-signalled
|
|
||||||
NULL); // no name
|
|
||||||
|
|
||||||
if ( hServerStopEvent == NULL) goto cleanup;
|
|
||||||
|
|
||||||
|
|
||||||
// report the status to the service control manager.
|
|
||||||
//
|
|
||||||
if (!ReportStatusToSCMgr(
|
|
||||||
SERVICE_START_PENDING, // service state
|
|
||||||
NO_ERROR, // exit code
|
|
||||||
3000)) // wait hint
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// report the status to the service control manager.
|
|
||||||
//
|
|
||||||
if (!ReportStatusToSCMgr(
|
|
||||||
SERVICE_START_PENDING, // service state
|
|
||||||
NO_ERROR, // exit code
|
|
||||||
3000)) // wait hint
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// report the status to the service control manager.
|
|
||||||
//
|
|
||||||
if (!ReportStatusToSCMgr(
|
|
||||||
SERVICE_RUNNING, // service state
|
|
||||||
NO_ERROR, // exit code
|
|
||||||
0)) // wait hint
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
//
|
|
||||||
// End of initialization
|
|
||||||
// Service is now running, perform work until shutdown
|
|
||||||
//
|
|
||||||
|
|
||||||
while ( 1 )
|
|
||||||
{
|
|
||||||
|
|
||||||
dwWait = WaitForSingleObject( hServerStopEvent, dwTimeout);
|
|
||||||
if(dwWait==WAIT_FAILED)
|
|
||||||
{
|
|
||||||
AddToMessageLog(TEXT("Error in WaitForSingleObject"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if(dwWait==WAIT_TIMEOUT)
|
|
||||||
{
|
|
||||||
CmdRestartService("MySql");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ break; //shutdown
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
|
|
||||||
if (hServerStopEvent)
|
|
||||||
CloseHandle(hServerStopEvent);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// FUNCTION: ServiceStop
|
|
||||||
//
|
|
||||||
// PURPOSE: Stops the service
|
|
||||||
//-------------------------------------------------
|
|
||||||
void ServiceStop()
|
|
||||||
{
|
|
||||||
if ( hServerStopEvent )
|
|
||||||
SetEvent(hServerStopEvent);
|
|
||||||
}
|
|
||||||
//-the end ----------------------------------------
|
|
@ -1,70 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="mysqlwatch" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
|
||||||
|
|
||||||
CFG=mysqlwatch - Win32 Release
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlwatch.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlwatch.mak" CFG="mysqlwatch - Win32 Release"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "mysqlwatch - Win32 Release" (based on "Win32 (x86) Console Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=xicl6.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "release"
|
|
||||||
# PROP Intermediate_Dir "release"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /G6 /W3 /O2 /D "_WINDOWS" /D "_MBCS" /D "NDEBUG" /FD /c
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=xilink6.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqlwatch.exe"
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "mysqlwatch - Win32 Release"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlwatch.c
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
@ -1,71 +0,0 @@
|
|||||||
# Microsoft Developer Studio Project File - Name="mysqlwatch" - Package Owner=<4>
|
|
||||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
||||||
# ** DO NOT EDIT **
|
|
||||||
|
|
||||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
|
||||||
|
|
||||||
CFG=mysqlwatch - WinIA64 Release
|
|
||||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
||||||
!MESSAGE use the Export Makefile command and run
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlwatch_ia64.mak".
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE You can specify a configuration when running NMAKE
|
|
||||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE NMAKE /f "mysqlwatch_ia64.mak" CFG="mysqlwatch - WinIA64 Release"
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE Possible choices for configuration are:
|
|
||||||
!MESSAGE
|
|
||||||
!MESSAGE "mysqlwatch - WinIA64 Release" (based on "Win32 (x86) Console Application")
|
|
||||||
!MESSAGE
|
|
||||||
|
|
||||||
# Begin Project
|
|
||||||
# PROP AllowPerConfigDependencies 0
|
|
||||||
# PROP Scc_ProjName ""
|
|
||||||
# PROP Scc_LocalPath ""
|
|
||||||
CPP=cl.exe
|
|
||||||
RSC=rc.exe
|
|
||||||
# PROP BASE Use_MFC 0
|
|
||||||
# PROP BASE Use_Debug_Libraries 0
|
|
||||||
# PROP BASE Output_Dir "Release"
|
|
||||||
# PROP BASE Intermediate_Dir "Release"
|
|
||||||
# PROP BASE Target_Dir ""
|
|
||||||
# PROP Use_MFC 0
|
|
||||||
# PROP Use_Debug_Libraries 0
|
|
||||||
# PROP Output_Dir "release"
|
|
||||||
# PROP Intermediate_Dir "release"
|
|
||||||
# PROP Ignore_Export_Lib 0
|
|
||||||
# PROP Target_Dir ""
|
|
||||||
MTL=midl.exe
|
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
|
||||||
# ADD CPP /nologo /W3 /Zi /O2 /D "_WINDOWS" /D "_MBCS" /D "NDEBUG" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /G2 /EHsc /Wp64 /Zm600 /c
|
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
||||||
BSC32=bscmake.exe
|
|
||||||
# ADD BASE BSC32 /nologo
|
|
||||||
# ADD BSC32 /nologo
|
|
||||||
LINK32=link.exe
|
|
||||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IA64
|
|
||||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib bufferoverflowU.lib /nologo /subsystem:console /out:"../client_release/mysqlwatch.exe" /machine:IA64
|
|
||||||
# Begin Target
|
|
||||||
|
|
||||||
# Name "mysqlwatch - WinIA64 Release"
|
|
||||||
# Begin Group "Source Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
||||||
# Begin Source File
|
|
||||||
|
|
||||||
SOURCE=.\mysqlwatch.c
|
|
||||||
# End Source File
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Header Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
||||||
# End Group
|
|
||||||
# Begin Group "Resource Files"
|
|
||||||
|
|
||||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
||||||
# End Group
|
|
||||||
# End Target
|
|
||||||
# End Project
|
|
@ -209,6 +209,10 @@ SOURCE=.\default.c
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\default_modify.c
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\errors.c
|
SOURCE=.\errors.c
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -49,7 +49,7 @@ RSC=rc.exe
|
|||||||
# PROP Ignore_Export_Lib 0
|
# PROP Ignore_Export_Lib 0
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../zlib" /I "../include" /I "../regex" /D "NDEBUG" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../zlib" /I "../include" /I "../regex" /I "../extra/yassl/include" /D "NDEBUG" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
|
||||||
# SUBTRACT CPP /YX
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
@ -75,7 +75,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Ignore_Export_Lib 0
|
# PROP Ignore_Export_Lib 0
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||||
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
|
# ADD CPP /nologo /G6 /MTd /W3 /Z7 /Od /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../extra/yassl/include" /I "../zlib" /D "_DEBUG" /D "SAFEMALLOC" /D "SAFE_MUTEX" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "HAVE_BLACKHOLE_DB" /D "HAVE_FEDERATED_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /c
|
||||||
# SUBTRACT CPP /Fr /YX
|
# SUBTRACT CPP /Fr /YX
|
||||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||||
@ -102,7 +102,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G5 /MT /W3 /O2 /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__WIN32__" /D "DBUG_OFF" /FD /c
|
# ADD BASE CPP /nologo /G5 /MT /W3 /O2 /I "../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__WIN32__" /D "DBUG_OFF" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "HAVE_INNOBASE_DB" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-nt /FD /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /I "../extra/yassl/include" /D "__NT__" /D "DBUG_OFF" /D "NDEBUG" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-nt /FD /c
|
||||||
# SUBTRACT CPP /YX
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
@ -130,7 +130,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-nt-max /FD /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../extra/yassl/include" /I "../zlib" /D "NDEBUG" /D "__NT__" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "HAVE_BLACKHOLE_DB" /D "HAVE_FEDERATED_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-nt-max /FD /c
|
||||||
# SUBTRACT CPP /YX
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
@ -159,7 +159,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /D "NDEBUG" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../zlib" /D "NDEBUG" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-max /FD /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../bdb/build_win32" /I "../include" /I "../regex" /I "../extra/yassl/include" /I "../zlib" /D "NDEBUG" /D "DBUG_OFF" /D "USE_SYMDIR" /D "HAVE_INNOBASE_DB" /D "HAVE_BERKELEY_DB" /D "HAVE_BLACKHOLE_DB" /D "HAVE_FEDERATED_DB" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-max /FD /c
|
||||||
# SUBTRACT CPP /YX
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
@ -187,7 +187,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D LICENSE=Commercial /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "HAVE_DLOPEN" /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /FD /D MYSQL_SERVER_SUFFIX=-classic /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /I "../extra/yassl/include" /D LICENSE=Commercial /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "HAVE_DLOPEN" /D "DBUG_OFF" /D "_MBCS" /D "NDEBUG" /FD /D MYSQL_SERVER_SUFFIX=-classic /c
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
@ -215,7 +215,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "MYSQL_SERVER" /D LICENSE=Commercial /D "_MBCS" /D "HAVE_DLOPEN" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "NDEBUG" /D "_WINDOWS" /D "_CONSOLE" /D MYSQL_SERVER_SUFFIX=-pro /FD /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /I "../extra/yassl/include" /D "MYSQL_SERVER" /D LICENSE=Commercial /D "_MBCS" /D "HAVE_DLOPEN" /D "HAVE_INNOBASE_DB" /D "DBUG_OFF" /D "NDEBUG" /D "_WINDOWS" /D "_CONSOLE" /D MYSQL_SERVER_SUFFIX=-pro /FD /c
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
@ -243,7 +243,7 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "__NT__" /D "DBUG_OFF" /D "NDEBUG" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /D LICENSE=Commercial /D MYSQL_SERVER_SUFFIX=-classic-nt /c
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /I "../extra/yassl/include" /D "__NT__" /D "DBUG_OFF" /D "NDEBUG" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /FD /D LICENSE=Commercial /D MYSQL_SERVER_SUFFIX=-classic-nt /c
|
||||||
# SUBTRACT CPP /YX
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
@ -272,7 +272,8 @@ LINK32=xilink6.exe
|
|||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
# ADD BASE CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "DBUG_OFF" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "USE_SYMDIR" /D "HAVE_DLOPEN" /D "NDEBUG" /FD /c
|
||||||
# SUBTRACT BASE CPP /YX
|
# SUBTRACT BASE CPP /YX
|
||||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /D "__NT__" /D "DBUG_OFF" /D "HAVE_INNOBASE_DB" /D LICENSE=Commercial /D "NDEBUG" /D "MYSQL_SERVER" /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-pro-nt" /FD
|
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /I "../regex" /I "../zlib" /I "../extra/yassl/include" /D "__NT__" /D "DBUG_OFF" /D "NDEBUG" /D "HAVE_INNOBASE_DB" /D "MYSQL_SERVER" /D LICENSE=Commercial /D "_WINDOWS" /D "_CONSOLE" /D "_MBCS" /D "HAVE_DLOPEN" /D MYSQL_SERVER_SUFFIX=-pro-nt" /FD /c
|
||||||
|
# SUBTRACT CPP /YX
|
||||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
BSC32=bscmake.exe
|
BSC32=bscmake.exe
|
||||||
@ -451,6 +452,14 @@ SOURCE=.\gstream.cpp
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\ha_blackhole.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\ha_federated.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\ha_berkeley.cpp
|
SOURCE=.\ha_berkeley.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <vcl.h>
|
|
||||||
#pragma hdrstop
|
|
||||||
|
|
||||||
#include "db.h"
|
|
||||||
#include "main.h"
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#pragma package(smart_init)
|
|
||||||
#pragma resource "*.dfm"
|
|
||||||
Tdbfrm *dbfrm;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
__fastcall Tdbfrm::Tdbfrm(TComponent* Owner)
|
|
||||||
: TForm(Owner)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall Tdbfrm::SpeedButton2Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall Tdbfrm::SpeedButton1Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
if (VerDBName())
|
|
||||||
{
|
|
||||||
if (!Form1->CreatingDB())
|
|
||||||
{
|
|
||||||
Form1->OutRefresh();
|
|
||||||
Edit1->Text = "";
|
|
||||||
Application->MessageBox("The database was created", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
bool __fastcall Tdbfrm::VerDBName()
|
|
||||||
{
|
|
||||||
String temp = Edit1->Text;
|
|
||||||
if (Edit1->Text.IsEmpty())
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database is Empty", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (temp.Length() > 64)
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database can't have more than 64 characters ", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int j = 1; j <= temp.Length(); j++)
|
|
||||||
{
|
|
||||||
if (temp[j] == ' ')
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database can't have blank spaces ", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (temp[j] == '/')
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database can't have frontslash (/)", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (temp[j] == '\\')
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database can't have backslash (\\)", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else if (temp[j] == '.')
|
|
||||||
{
|
|
||||||
Application->MessageBox("The name of the Database can't have periods", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
@ -1,32 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#ifndef dbH
|
|
||||||
#define dbH
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <Classes.hpp>
|
|
||||||
#include <Controls.hpp>
|
|
||||||
#include <StdCtrls.hpp>
|
|
||||||
#include <Forms.hpp>
|
|
||||||
#include <ExtCtrls.hpp>
|
|
||||||
#include <Graphics.hpp>
|
|
||||||
#include <Buttons.hpp>
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
class Tdbfrm : public TForm
|
|
||||||
{
|
|
||||||
__published: // IDE-managed Components
|
|
||||||
TImage *Image1;
|
|
||||||
TLabel *Label1;
|
|
||||||
TLabel *Label2;
|
|
||||||
TEdit *Edit1;
|
|
||||||
TSpeedButton *SpeedButton1;
|
|
||||||
TSpeedButton *SpeedButton2;
|
|
||||||
void __fastcall SpeedButton2Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton1Click(TObject *Sender);
|
|
||||||
private: // User declarations
|
|
||||||
bool __fastcall VerDBName();
|
|
||||||
public: // User declarations
|
|
||||||
__fastcall Tdbfrm(TComponent* Owner);
|
|
||||||
};
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
extern PACKAGE Tdbfrm *dbfrm;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#endif
|
|
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 644 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 644 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 644 B |
@ -1,42 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <vcl.h>
|
|
||||||
#pragma hdrstop
|
|
||||||
|
|
||||||
#include "initsetup.h"
|
|
||||||
#include "main.h"
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#pragma package(smart_init)
|
|
||||||
#pragma resource "*.dfm"
|
|
||||||
TForm2 *Form2;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
__fastcall TForm2::TForm2(TComponent* Owner)
|
|
||||||
: TForm(Owner)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
if ((Edit1->Text).IsEmpty() || (Edit2->Text).IsEmpty())
|
|
||||||
Application->MessageBox("Fill the User name and Password text boxs ", "Winmysqladmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(Form1->ForceConnection())
|
|
||||||
if(Form1->ForceMySQLInit())
|
|
||||||
{
|
|
||||||
Form1->CreateMyIniFile();
|
|
||||||
Form1->CreatingShortCut();
|
|
||||||
}
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::BitBtn2Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::SpeedButton1Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
Application->HelpCommand(HELP_FINDER,0);
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 644 B |
@ -1,40 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <vcl.h>
|
|
||||||
#pragma hdrstop
|
|
||||||
|
|
||||||
#include "initsetup.h"
|
|
||||||
#include "main.h"
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#pragma package(smart_init)
|
|
||||||
#pragma resource "*.dfm"
|
|
||||||
TForm2 *Form2;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
__fastcall TForm2::TForm2(TComponent* Owner)
|
|
||||||
: TForm(Owner)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
if ((Edit1->Text).IsEmpty() || (Edit2->Text).IsEmpty())
|
|
||||||
Application->MessageBox("Fill the User name and Password text boxs ", "Winmysqladmin 1.0", MB_OK |MB_ICONINFORMATION);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Form1->GetServerFile();
|
|
||||||
Form1->CreateMyIniFile();
|
|
||||||
Form1->CreatingShortCut();
|
|
||||||
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::BitBtn2Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
Close();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void __fastcall TForm2::SpeedButton1Click(TObject *Sender)
|
|
||||||
{
|
|
||||||
Application->HelpCommand(HELP_FINDER,0);
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
@ -1,38 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#ifndef initsetupH
|
|
||||||
#define initsetupH
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <Classes.hpp>
|
|
||||||
#include <Controls.hpp>
|
|
||||||
#include <StdCtrls.hpp>
|
|
||||||
#include <Forms.hpp>
|
|
||||||
#include <Buttons.hpp>
|
|
||||||
#include <ExtCtrls.hpp>
|
|
||||||
#include <Graphics.hpp>
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
class TForm2 : public TForm
|
|
||||||
{
|
|
||||||
__published: // IDE-managed Components
|
|
||||||
TImage *Image1;
|
|
||||||
TLabel *Label1;
|
|
||||||
TLabel *Label4;
|
|
||||||
TPanel *Panel1;
|
|
||||||
TLabel *Label5;
|
|
||||||
TLabel *Label6;
|
|
||||||
TLabel *Label2;
|
|
||||||
TEdit *Edit1;
|
|
||||||
TEdit *Edit2;
|
|
||||||
TBitBtn *BitBtn1;
|
|
||||||
TSpeedButton *SpeedButton1;
|
|
||||||
TBitBtn *BitBtn2;
|
|
||||||
void __fastcall BitBtn1Click(TObject *Sender);
|
|
||||||
void __fastcall BitBtn2Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton1Click(TObject *Sender);
|
|
||||||
private: // User declarations
|
|
||||||
public: // User declarations
|
|
||||||
__fastcall TForm2(TComponent* Owner);
|
|
||||||
};
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
extern PACKAGE TForm2 *Form2;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#endif
|
|
@ -1,314 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#ifndef mainH
|
|
||||||
#define mainH
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <Classes.hpp>
|
|
||||||
#include <Controls.hpp>
|
|
||||||
#include <StdCtrls.hpp>
|
|
||||||
#include <Forms.hpp>
|
|
||||||
#include <Buttons.hpp>
|
|
||||||
#include <ComCtrls.hpp>
|
|
||||||
#include <ExtCtrls.hpp>
|
|
||||||
#include <Graphics.hpp>
|
|
||||||
#include <Grids.hpp>
|
|
||||||
#include <ImgList.hpp>
|
|
||||||
#include <Menus.hpp>
|
|
||||||
#include <Dialogs.hpp>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#define MYWM_NOTIFY (WM_APP+100)
|
|
||||||
#define IDC_MYICON 1006
|
|
||||||
extern HINSTANCE g_hinst;
|
|
||||||
LRESULT IconDrawItem(LPDRAWITEMSTRUCT lpdi);
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
class TForm1 : public TForm
|
|
||||||
{
|
|
||||||
__published: // IDE-managed Components
|
|
||||||
TStatusBar *StatusLine;
|
|
||||||
TPanel *Panel1;
|
|
||||||
TImage *Image1;
|
|
||||||
TLabel *Label1;
|
|
||||||
TLabel *Label2;
|
|
||||||
TLabel *Label3;
|
|
||||||
TLabel *Label8;
|
|
||||||
TImage *Image3;
|
|
||||||
TImage *Image2;
|
|
||||||
TPageControl *PageControl1;
|
|
||||||
TTabSheet *TabSheet1;
|
|
||||||
TSpeedButton *SpeedButton1;
|
|
||||||
TGroupBox *GroupBox1;
|
|
||||||
TLabel *Label4;
|
|
||||||
TLabel *Label5;
|
|
||||||
TLabel *Label6;
|
|
||||||
TLabel *Label14;
|
|
||||||
TLabel *Label17;
|
|
||||||
TEdit *Localhost;
|
|
||||||
TEdit *Localuser;
|
|
||||||
TEdit *OS;
|
|
||||||
TMemo *Memo2;
|
|
||||||
TEdit *Edit2;
|
|
||||||
TGroupBox *GroupBox2;
|
|
||||||
TMemo *Memo3;
|
|
||||||
TGroupBox *GroupBox3;
|
|
||||||
TLabel *Label13;
|
|
||||||
TLabel *Label15;
|
|
||||||
TLabel *Label16;
|
|
||||||
TLabel *Label7;
|
|
||||||
TLabel *Label47;
|
|
||||||
TLabel *Label44;
|
|
||||||
TLabel *Label42;
|
|
||||||
TLabel *Label45;
|
|
||||||
TEdit *Edit3;
|
|
||||||
TEdit *Edit4;
|
|
||||||
TEdit *Edit5;
|
|
||||||
TEdit *Edit6;
|
|
||||||
TEdit *st29;
|
|
||||||
TEdit *st27;
|
|
||||||
TEdit *st25;
|
|
||||||
TEdit *st28;
|
|
||||||
TTabSheet *TabSheet2;
|
|
||||||
TTabSheet *TabSheet3;
|
|
||||||
TLabel *Label18;
|
|
||||||
TSpeedButton *SpeedButton2;
|
|
||||||
TEdit *BaseDir;
|
|
||||||
TMemo *Memo1;
|
|
||||||
TRadioGroup *RadioGroup1;
|
|
||||||
TRadioButton *ShareVer;
|
|
||||||
TRadioButton *MysqldVer;
|
|
||||||
TRadioButton *OptVer;
|
|
||||||
TRadioButton *NtVer;
|
|
||||||
TButton *Button2;
|
|
||||||
TButton *Button3;
|
|
||||||
TButton *Button1;
|
|
||||||
TTabSheet *TabSheet4;
|
|
||||||
TMemo *Memo4;
|
|
||||||
TButton *Button5;
|
|
||||||
TTabSheet *TabSheet5;
|
|
||||||
TStringGrid *StringGrid1;
|
|
||||||
TButton *Button11;
|
|
||||||
TTabSheet *TabSheet6;
|
|
||||||
TStringGrid *StringGrid2;
|
|
||||||
TButton *Button10;
|
|
||||||
TPopupMenu *PopupMenu1;
|
|
||||||
TMenuItem *Showme1;
|
|
||||||
TMenuItem *N1;
|
|
||||||
TMenuItem *Win9;
|
|
||||||
TMenuItem *Swin9;
|
|
||||||
TMenuItem *N3;
|
|
||||||
TMenuItem *SSW9;
|
|
||||||
TMenuItem *N4;
|
|
||||||
TMenuItem *ShutDownBoth1;
|
|
||||||
TMenuItem *N2;
|
|
||||||
TMenuItem *WinNT;
|
|
||||||
TMenuItem *ShutDownthisTool1;
|
|
||||||
TMenuItem *N5;
|
|
||||||
TMenuItem *StopS;
|
|
||||||
TMenuItem *N6;
|
|
||||||
TMenuItem *RService;
|
|
||||||
TMenuItem *N7;
|
|
||||||
TMenuItem *Standa;
|
|
||||||
TImageList *ImageList1;
|
|
||||||
TTimer *Timer1;
|
|
||||||
TTimer *Timer2;
|
|
||||||
TTimer *Timer3;
|
|
||||||
TSpeedButton *SpeedButton3;
|
|
||||||
TSpeedButton *Extended;
|
|
||||||
TLabel *Label9;
|
|
||||||
TEdit *st26;
|
|
||||||
TLabel *Label43;
|
|
||||||
TEdit *st24;
|
|
||||||
TLabel *Label41;
|
|
||||||
TEdit *st23;
|
|
||||||
TLabel *Label40;
|
|
||||||
TEdit *st22;
|
|
||||||
TLabel *Label39;
|
|
||||||
TTabSheet *TabSheet8;
|
|
||||||
TSaveDialog *SaveFileDialog;
|
|
||||||
TPrinterSetupDialog *PrinterSetupDialog1;
|
|
||||||
TPrintDialog *PrintDialog1;
|
|
||||||
TRichEdit *Memo5;
|
|
||||||
TGroupBox *GroupBox5;
|
|
||||||
TSpeedButton *SpeedButton4;
|
|
||||||
TSpeedButton *SpeedButton5;
|
|
||||||
TSpeedButton *SpeedButton7;
|
|
||||||
TSpeedButton *SpeedButton6;
|
|
||||||
TGroupBox *GroupBox6;
|
|
||||||
TSpeedButton *SpeedButton8;
|
|
||||||
TSpeedButton *SpeedButton9;
|
|
||||||
TSpeedButton *SpeedButton10;
|
|
||||||
TSpeedButton *SpeedButton11;
|
|
||||||
TSpeedButton *SpeedButton12;
|
|
||||||
TTabSheet *TabSheet9;
|
|
||||||
TImageList *ImageList2;
|
|
||||||
TPopupMenu *PopupMenu2;
|
|
||||||
TMenuItem *CreateDatabaseS;
|
|
||||||
TMenuItem *DeleteDatabaseS;
|
|
||||||
TMenuItem *RefreshS;
|
|
||||||
TMenuItem *N8;
|
|
||||||
TMenuItem *N9;
|
|
||||||
TMenuItem *N10;
|
|
||||||
TGroupBox *GroupBox7;
|
|
||||||
TTreeView *DBView;
|
|
||||||
TGroupBox *GroupBox8;
|
|
||||||
TTreeView *TableView;
|
|
||||||
TGroupBox *GroupBox9;
|
|
||||||
TStringGrid *StringGrid4;
|
|
||||||
TMenuItem *FlushHosts1;
|
|
||||||
TMenuItem *N11;
|
|
||||||
TMenuItem *FlushLogs1;
|
|
||||||
TMenuItem *N12;
|
|
||||||
TMenuItem *FlushTables1;
|
|
||||||
TGroupBox *GroupBox10;
|
|
||||||
TStringGrid *StringGrid3;
|
|
||||||
TImage *Image5;
|
|
||||||
TStringGrid *StringGrid5;
|
|
||||||
TSpeedButton *SpeedButton13;
|
|
||||||
TPopupMenu *PopupMenu4;
|
|
||||||
TMenuItem *KillProcess1;
|
|
||||||
TMenuItem *N13;
|
|
||||||
TMenuItem *FlushThreads1;
|
|
||||||
void __fastcall FormCreate(TObject *Sender);
|
|
||||||
void __fastcall Showme1Click(TObject *Sender);
|
|
||||||
void __fastcall Timer1Timer(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton1Click(TObject *Sender);
|
|
||||||
void __fastcall Timer2Timer(TObject *Sender);
|
|
||||||
void __fastcall Swin9Click(TObject *Sender);
|
|
||||||
void __fastcall SSW9Click(TObject *Sender);
|
|
||||||
void __fastcall ShutDownBoth1Click(TObject *Sender);
|
|
||||||
void __fastcall ShutDownthisTool1Click(TObject *Sender);
|
|
||||||
void __fastcall StopSClick(TObject *Sender);
|
|
||||||
void __fastcall RServiceClick(TObject *Sender);
|
|
||||||
void __fastcall StandaClick(TObject *Sender);
|
|
||||||
void __fastcall Button5Click(TObject *Sender);
|
|
||||||
void __fastcall Timer3Timer(TObject *Sender);
|
|
||||||
void __fastcall Button11Click(TObject *Sender);
|
|
||||||
void __fastcall Button10Click(TObject *Sender);
|
|
||||||
void __fastcall Button6Click(TObject *Sender);
|
|
||||||
void __fastcall Button7Click(TObject *Sender);
|
|
||||||
void __fastcall Button8Click(TObject *Sender);
|
|
||||||
|
|
||||||
void __fastcall Button2Click(TObject *Sender);
|
|
||||||
void __fastcall Button3Click(TObject *Sender);
|
|
||||||
void __fastcall Button1Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton2Click(TObject *Sender);
|
|
||||||
void __fastcall Button4Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton3Click(TObject *Sender);
|
|
||||||
void __fastcall ExtendedClick(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton4Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton5Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton6Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton7Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton8Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton9Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton10Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton11Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton12Click(TObject *Sender);
|
|
||||||
void __fastcall DeleteDatabaseSClick(TObject *Sender);
|
|
||||||
void __fastcall DBViewClick(TObject *Sender);
|
|
||||||
void __fastcall TableViewClick(TObject *Sender);
|
|
||||||
void __fastcall TableViewChange(TObject *Sender, TTreeNode *Node);
|
|
||||||
void __fastcall DBViewChange(TObject *Sender, TTreeNode *Node);
|
|
||||||
|
|
||||||
void __fastcall RefreshSClick(TObject *Sender);
|
|
||||||
void __fastcall CreateDatabaseSClick(TObject *Sender);
|
|
||||||
void __fastcall FlushHosts1Click(TObject *Sender);
|
|
||||||
void __fastcall FlushLogs1Click(TObject *Sender);
|
|
||||||
void __fastcall FlushTables1Click(TObject *Sender);
|
|
||||||
void __fastcall SpeedButton13Click(TObject *Sender);
|
|
||||||
void __fastcall KillProcess1Click(TObject *Sender);
|
|
||||||
void __fastcall FlushThreads1Click(TObject *Sender);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private: // User declarations
|
|
||||||
void __fastcall DrawItem(TMessage& Msg);
|
|
||||||
void __fastcall MyNotify(TMessage& Msg);
|
|
||||||
bool __fastcall TrayMessage(DWORD dwMessage);
|
|
||||||
HANDLE __fastcall IconHandle(void);
|
|
||||||
void __fastcall ToggleState(void);
|
|
||||||
PSTR __fastcall TipText(void);
|
|
||||||
void __fastcall WMQueryEndSession(TWMQueryEndSession &msg);
|
|
||||||
AnsiString __fastcall TheComputer();
|
|
||||||
AnsiString __fastcall TheUser();
|
|
||||||
AnsiString __fastcall TheOS();
|
|
||||||
void __fastcall TakeIP(void);
|
|
||||||
void __fastcall GetmemStatus(void);
|
|
||||||
void __fastcall ShowHelp(void);
|
|
||||||
void __fastcall ContinueLoad(void);
|
|
||||||
void __fastcall MyODBC(void);
|
|
||||||
void __fastcall IsMyIniUp(void);
|
|
||||||
void __fastcall QuickSearch(void);
|
|
||||||
AnsiString __fastcall TheWinDir();
|
|
||||||
void __fastcall FillMyIni(void);
|
|
||||||
void __fastcall GetBaseDir(void);
|
|
||||||
bool __fastcall MySQLSignal();
|
|
||||||
bool __fastcall mysqldstart();
|
|
||||||
bool __fastcall SeekErrFile();
|
|
||||||
AnsiString __fastcall TheDir();
|
|
||||||
bool __fastcall TheServiceStart();
|
|
||||||
bool __fastcall TheServicePause();
|
|
||||||
bool __fastcall TheServiceResume();
|
|
||||||
bool __fastcall TheServiceStatus();
|
|
||||||
bool __fastcall TheServiceCreate();
|
|
||||||
bool __fastcall TheServiceRemove();
|
|
||||||
bool __fastcall Shutd();
|
|
||||||
void __fastcall ClearBox(void);
|
|
||||||
bool __fastcall TheServerPath();
|
|
||||||
void __fastcall GetServerOptions(void);
|
|
||||||
void __fastcall GetReportServer(void);
|
|
||||||
|
|
||||||
|
|
||||||
TFileStream *MyFile;
|
|
||||||
String FName;
|
|
||||||
|
|
||||||
void __fastcall IsMySQLInit(void);
|
|
||||||
void __fastcall GetServerStatus(void);
|
|
||||||
bool __fastcall GetExtendedStatus();
|
|
||||||
bool __fastcall GetProcess();
|
|
||||||
bool __fastcall GetVariables();
|
|
||||||
bool __fastcall nice_time(AnsiString buff);
|
|
||||||
String __fastcall GetString(String k);
|
|
||||||
String __fastcall GetNumberServer();
|
|
||||||
// pointers for database screen
|
|
||||||
TTreeNode *MySQLNode, *MySQLDbs, *MySQLNodeT, *MySQLTbs;
|
|
||||||
|
|
||||||
bool __fastcall GetMainRoot();
|
|
||||||
bool __fastcall IsDatabase(String Name);
|
|
||||||
bool __fastcall IsTable(String Name);
|
|
||||||
void __fastcall CleanTree(void);
|
|
||||||
void __fastcall CleanGrid(void);
|
|
||||||
bool __fastcall IsIndex(String Name);
|
|
||||||
void __fastcall CleanGridI(void);
|
|
||||||
bool __fastcall KillPID();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public: // User declarations
|
|
||||||
__fastcall TForm1(TComponent* Owner);
|
|
||||||
void __fastcall GetServerFile(void);
|
|
||||||
void __fastcall CreateMyIniFile(void);
|
|
||||||
bool __fastcall CreatingShortCut();
|
|
||||||
bool __fastcall CreatingDB();
|
|
||||||
void __fastcall OutRefresh(void);
|
|
||||||
bool __fastcall CreatingTable(String TheTable);
|
|
||||||
|
|
||||||
bool IsConnect ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
STARTUPINFO si;
|
|
||||||
PROCESS_INFORMATION pi;
|
|
||||||
BEGIN_MESSAGE_MAP
|
|
||||||
MESSAGE_HANDLER(WM_DRAWITEM,TMessage,DrawItem)
|
|
||||||
MESSAGE_HANDLER(MYWM_NOTIFY,TMessage,MyNotify)
|
|
||||||
MESSAGE_HANDLER(WM_QUERYENDSESSION,TWMQueryEndSession,WMQueryEndSession)
|
|
||||||
END_MESSAGE_MAP(TForm)
|
|
||||||
};
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
extern PACKAGE TForm1 *Form1;
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#endif
|
|
@ -1,295 +0,0 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
MA 02111-1307, USA */
|
|
||||||
|
|
||||||
/* defines for the libmysql library */
|
|
||||||
|
|
||||||
#ifndef _mysql_h
|
|
||||||
#define _mysql_h
|
|
||||||
|
|
||||||
#ifndef MYSQL_SERVER
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _global_h /* If not standard header */
|
|
||||||
#include <sys/types.h>
|
|
||||||
typedef char my_bool;
|
|
||||||
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
|
|
||||||
#define __WIN__
|
|
||||||
#endif
|
|
||||||
#if !defined(__WIN__)
|
|
||||||
#define STDCALL
|
|
||||||
#else
|
|
||||||
#define STDCALL __stdcall
|
|
||||||
#endif
|
|
||||||
typedef char * gptr;
|
|
||||||
|
|
||||||
#ifndef ST_USED_MEM_DEFINED
|
|
||||||
#define ST_USED_MEM_DEFINED
|
|
||||||
typedef struct st_used_mem { /* struct for once_alloc */
|
|
||||||
struct st_used_mem *next; /* Next block in use */
|
|
||||||
unsigned int left; /* memory left in block */
|
|
||||||
unsigned int size; /* size of block */
|
|
||||||
} USED_MEM;
|
|
||||||
typedef struct st_mem_root {
|
|
||||||
USED_MEM *free;
|
|
||||||
USED_MEM *used;
|
|
||||||
unsigned int min_malloc;
|
|
||||||
unsigned int block_size;
|
|
||||||
void (*error_handler)(void);
|
|
||||||
} MEM_ROOT;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef my_socket_defined
|
|
||||||
#ifdef __WIN__
|
|
||||||
#define my_socket SOCKET
|
|
||||||
#else
|
|
||||||
typedef int my_socket;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#include "mysql_com.h"
|
|
||||||
#include "mysql_version.h"
|
|
||||||
|
|
||||||
extern unsigned int mysql_port;
|
|
||||||
extern char *mysql_unix_port;
|
|
||||||
|
|
||||||
#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG)
|
|
||||||
#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG)
|
|
||||||
#define IS_BLOB(n) ((n) & BLOB_FLAG)
|
|
||||||
#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR)
|
|
||||||
|
|
||||||
typedef struct st_mysql_field {
|
|
||||||
char *name; /* Name of column */
|
|
||||||
char *table; /* Table of column if column was a field */
|
|
||||||
char *def; /* Default value (set by mysql_list_fields) */
|
|
||||||
enum enum_field_types type; /* Type of field. Se mysql_com.h for types */
|
|
||||||
unsigned int length; /* Width of column */
|
|
||||||
unsigned int max_length; /* Max width of selected set */
|
|
||||||
unsigned int flags; /* Div flags */
|
|
||||||
unsigned int decimals; /* Number of decimals in field */
|
|
||||||
} MYSQL_FIELD;
|
|
||||||
|
|
||||||
typedef char **MYSQL_ROW; /* return data as array of strings */
|
|
||||||
typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
|
|
||||||
|
|
||||||
#if defined(NO_CLIENT_LONG_LONG)
|
|
||||||
typedef unsigned long my_ulonglong;
|
|
||||||
#elif defined (__WIN__)
|
|
||||||
typedef unsigned __int64 my_ulonglong;
|
|
||||||
#else
|
|
||||||
typedef unsigned long long my_ulonglong;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)
|
|
||||||
|
|
||||||
typedef struct st_mysql_rows {
|
|
||||||
struct st_mysql_rows *next; /* list of rows */
|
|
||||||
MYSQL_ROW data;
|
|
||||||
} MYSQL_ROWS;
|
|
||||||
|
|
||||||
typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */
|
|
||||||
|
|
||||||
typedef struct st_mysql_data {
|
|
||||||
my_ulonglong rows;
|
|
||||||
unsigned int fields;
|
|
||||||
MYSQL_ROWS *data;
|
|
||||||
MEM_ROOT alloc;
|
|
||||||
} MYSQL_DATA;
|
|
||||||
|
|
||||||
struct st_mysql_options {
|
|
||||||
unsigned int connect_timeout,client_flag;
|
|
||||||
my_bool compress,named_pipe;
|
|
||||||
unsigned int port;
|
|
||||||
char *host,*init_command,*user,*password,*unix_socket,*db;
|
|
||||||
char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name;
|
|
||||||
my_bool use_ssl; /* if to use SSL or not */
|
|
||||||
char *ssl_key; /* PEM key file */
|
|
||||||
char *ssl_cert; /* PEM cert file */
|
|
||||||
char *ssl_ca; /* PEM CA file */
|
|
||||||
char *ssl_capath; /* PEM directory of CA-s? */
|
|
||||||
};
|
|
||||||
|
|
||||||
enum 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};
|
|
||||||
|
|
||||||
enum mysql_status { MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,
|
|
||||||
MYSQL_STATUS_USE_RESULT};
|
|
||||||
|
|
||||||
typedef struct st_mysql {
|
|
||||||
NET net; /* Communication parameters */
|
|
||||||
gptr connector_fd; /* ConnectorFd for SSL */
|
|
||||||
char *host,*user,*passwd,*unix_socket,*server_version,*host_info,
|
|
||||||
*info,*db;
|
|
||||||
unsigned int port,client_flag,server_capabilities;
|
|
||||||
unsigned int protocol_version;
|
|
||||||
unsigned int field_count;
|
|
||||||
unsigned int server_status;
|
|
||||||
unsigned long thread_id; /* Id for connection in server */
|
|
||||||
my_ulonglong affected_rows;
|
|
||||||
my_ulonglong insert_id; /* id if insert on table with NEXTNR */
|
|
||||||
my_ulonglong extra_info; /* Not used */
|
|
||||||
unsigned long packet_length;
|
|
||||||
enum mysql_status status;
|
|
||||||
MYSQL_FIELD *fields;
|
|
||||||
MEM_ROOT field_alloc;
|
|
||||||
my_bool free_me; /* If free in mysql_close */
|
|
||||||
my_bool reconnect; /* set to 1 if automatic reconnect */
|
|
||||||
struct st_mysql_options options;
|
|
||||||
char scramble_buff[9];
|
|
||||||
struct charset_info_st *charset;
|
|
||||||
unsigned int server_language;
|
|
||||||
} MYSQL;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct st_mysql_res {
|
|
||||||
my_ulonglong row_count;
|
|
||||||
unsigned int field_count, current_field;
|
|
||||||
MYSQL_FIELD *fields;
|
|
||||||
MYSQL_DATA *data;
|
|
||||||
MYSQL_ROWS *data_cursor;
|
|
||||||
MEM_ROOT field_alloc;
|
|
||||||
MYSQL_ROW row; /* If unbuffered read */
|
|
||||||
MYSQL_ROW current_row; /* buffer to current row */
|
|
||||||
unsigned long *lengths; /* column lengths of current row */
|
|
||||||
MYSQL *handle; /* for unbuffered reads */
|
|
||||||
my_bool eof; /* Used my mysql_fetch_row */
|
|
||||||
} MYSQL_RES;
|
|
||||||
|
|
||||||
/* Functions to get information from the MYSQL and MYSQL_RES structures */
|
|
||||||
/* Should definitely be used if one uses shared libraries */
|
|
||||||
|
|
||||||
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res);
|
|
||||||
unsigned int STDCALL mysql_num_fields(MYSQL_RES *res);
|
|
||||||
my_bool STDCALL mysql_eof(MYSQL_RES *res);
|
|
||||||
MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res,
|
|
||||||
unsigned int fieldnr);
|
|
||||||
MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res);
|
|
||||||
MYSQL_ROWS * STDCALL mysql_row_tell(MYSQL_RES *res);
|
|
||||||
unsigned int STDCALL mysql_field_tell(MYSQL_RES *res);
|
|
||||||
|
|
||||||
unsigned int STDCALL mysql_field_count(MYSQL *mysql);
|
|
||||||
my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql);
|
|
||||||
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql);
|
|
||||||
unsigned int STDCALL mysql_errno(MYSQL *mysql);
|
|
||||||
char * STDCALL mysql_error(MYSQL *mysql);
|
|
||||||
char * STDCALL mysql_info(MYSQL *mysql);
|
|
||||||
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
|
|
||||||
const char * STDCALL mysql_character_set_name(MYSQL *mysql);
|
|
||||||
|
|
||||||
MYSQL * STDCALL mysql_init(MYSQL *mysql);
|
|
||||||
#ifdef HAVE_OPENSSL
|
|
||||||
int STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
|
|
||||||
const char *cert, const char *ca,
|
|
||||||
const char *capath);
|
|
||||||
char * STDCALL mysql_ssl_cipher(MYSQL *mysql);
|
|
||||||
int STDCALL mysql_ssl_clear(MYSQL *mysql);
|
|
||||||
#endif /* HAVE_OPENSSL */
|
|
||||||
MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host,
|
|
||||||
const char *user, const char *passwd);
|
|
||||||
my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
|
|
||||||
const char *passwd, const char *db);
|
|
||||||
#if MYSQL_VERSION_ID >= 32200
|
|
||||||
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
|
|
||||||
const char *user,
|
|
||||||
const char *passwd,
|
|
||||||
const char *db,
|
|
||||||
unsigned int port,
|
|
||||||
const char *unix_socket,
|
|
||||||
unsigned int clientflag);
|
|
||||||
#else
|
|
||||||
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
|
|
||||||
const char *user,
|
|
||||||
const char *passwd,
|
|
||||||
unsigned int port,
|
|
||||||
const char *unix_socket,
|
|
||||||
unsigned int clientflag);
|
|
||||||
#endif
|
|
||||||
void STDCALL mysql_close(MYSQL *sock);
|
|
||||||
int STDCALL mysql_select_db(MYSQL *mysql, const char *db);
|
|
||||||
int STDCALL mysql_query(MYSQL *mysql, const char *q);
|
|
||||||
int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
|
|
||||||
unsigned int length);
|
|
||||||
int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);
|
|
||||||
int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
|
|
||||||
int STDCALL mysql_shutdown(MYSQL *mysql,
|
|
||||||
enum enum_shutdown_level
|
|
||||||
shutdown_level);
|
|
||||||
int STDCALL mysql_dump_debug_info(MYSQL *mysql);
|
|
||||||
int STDCALL mysql_refresh(MYSQL *mysql,
|
|
||||||
unsigned int refresh_options);
|
|
||||||
int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid);
|
|
||||||
int STDCALL mysql_ping(MYSQL *mysql);
|
|
||||||
char * STDCALL mysql_stat(MYSQL *mysql);
|
|
||||||
char * STDCALL mysql_get_server_info(MYSQL *mysql);
|
|
||||||
char * STDCALL mysql_get_client_info(void);
|
|
||||||
char * STDCALL mysql_get_host_info(MYSQL *mysql);
|
|
||||||
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
|
|
||||||
MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild);
|
|
||||||
MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
|
|
||||||
MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
|
|
||||||
const char *wild);
|
|
||||||
MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);
|
|
||||||
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
|
|
||||||
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
|
|
||||||
int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option,
|
|
||||||
const char *arg);
|
|
||||||
void STDCALL mysql_free_result(MYSQL_RES *result);
|
|
||||||
void STDCALL mysql_data_seek(MYSQL_RES *result,
|
|
||||||
my_ulonglong offset);
|
|
||||||
MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET);
|
|
||||||
MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result,
|
|
||||||
MYSQL_FIELD_OFFSET offset);
|
|
||||||
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
|
|
||||||
unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result);
|
|
||||||
MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result);
|
|
||||||
unsigned long STDCALL mysql_escape_string(char *to,const char *from,
|
|
||||||
unsigned long from_length);
|
|
||||||
unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql,
|
|
||||||
char *to,const char *from,
|
|
||||||
unsigned long length);
|
|
||||||
void STDCALL mysql_debug(const char *debug);
|
|
||||||
char * STDCALL mysql_odbc_escape_string(MYSQL *mysql,
|
|
||||||
char *to,
|
|
||||||
unsigned long to_length,
|
|
||||||
const char *from,
|
|
||||||
unsigned long from_length,
|
|
||||||
void *param,
|
|
||||||
char *
|
|
||||||
(*extend_buffer)
|
|
||||||
(void *, char *to,
|
|
||||||
unsigned long *length));
|
|
||||||
void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name);
|
|
||||||
unsigned int STDCALL mysql_thread_safe(void);
|
|
||||||
|
|
||||||
|
|
||||||
#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)
|
|
||||||
|
|
||||||
/* new api functions */
|
|
||||||
|
|
||||||
#define HAVE_MYSQL_REAL_CONNECT
|
|
||||||
|
|
||||||
#ifndef MYSQL_SERVER
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,275 +0,0 @@
|
|||||||
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
MA 02111-1307, USA */
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Common definition between mysql server & client
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _mysql_com_h
|
|
||||||
#define _mysql_com_h
|
|
||||||
|
|
||||||
|
|
||||||
#define NAME_LEN 64 /* Field/table name length */
|
|
||||||
#define HOSTNAME_LENGTH 60
|
|
||||||
#define USERNAME_LENGTH 16
|
|
||||||
|
|
||||||
#define LOCAL_HOST "localhost"
|
|
||||||
#define LOCAL_HOST_NAMEDPIPE "."
|
|
||||||
|
|
||||||
#if defined(__EMX__) || defined(__OS2__)
|
|
||||||
#undef MYSQL_UNIX_ADDR
|
|
||||||
#define MYSQL_OS2_ADDR "\\socket\\MySQL"
|
|
||||||
#define MYSQL_UNIX_ADDR MYSQL_OS2_ADDR
|
|
||||||
#endif
|
|
||||||
#if defined(__WIN__) && !defined( _CUSTOMCONFIG_)
|
|
||||||
#define MYSQL_NAMEDPIPE "MySQL"
|
|
||||||
#define MYSQL_SERVICENAME "MySql"
|
|
||||||
#endif /* __WIN__ */
|
|
||||||
|
|
||||||
enum enum_server_command {COM_SLEEP,COM_QUIT,COM_INIT_DB,COM_QUERY,
|
|
||||||
COM_FIELD_LIST,COM_CREATE_DB,COM_DROP_DB,COM_REFRESH,
|
|
||||||
COM_SHUTDOWN,COM_STATISTICS,
|
|
||||||
COM_PROCESS_INFO,COM_CONNECT,COM_PROCESS_KILL,
|
|
||||||
COM_DEBUG,COM_PING,COM_TIME,COM_DELAYED_INSERT,
|
|
||||||
COM_CHANGE_USER, COM_BINLOG_DUMP,
|
|
||||||
COM_TABLE_DUMP};
|
|
||||||
|
|
||||||
#define NOT_NULL_FLAG 1 /* Field can't be NULL */
|
|
||||||
#define PRI_KEY_FLAG 2 /* Field is part of a primary key */
|
|
||||||
#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */
|
|
||||||
#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */
|
|
||||||
#define BLOB_FLAG 16 /* Field is a blob */
|
|
||||||
#define UNSIGNED_FLAG 32 /* Field is unsigned */
|
|
||||||
#define ZEROFILL_FLAG 64 /* Field is zerofill */
|
|
||||||
#define BINARY_FLAG 128
|
|
||||||
/* The following are only sent to new clients */
|
|
||||||
#define ENUM_FLAG 256 /* field is an enum */
|
|
||||||
#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */
|
|
||||||
#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */
|
|
||||||
#define SET_FLAG 2048 /* field is a set */
|
|
||||||
#define PART_KEY_FLAG 16384 /* Intern; Part of some key */
|
|
||||||
#define GROUP_FLAG 32768 /* Intern: Group field */
|
|
||||||
#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */
|
|
||||||
|
|
||||||
#define REFRESH_GRANT 1 /* Refresh grant tables */
|
|
||||||
#define REFRESH_LOG 2 /* Start on new log file */
|
|
||||||
#define REFRESH_TABLES 4 /* close all tables */
|
|
||||||
#define REFRESH_HOSTS 8 /* Flush host cache */
|
|
||||||
#define REFRESH_STATUS 16 /* Flush status variables */
|
|
||||||
#define REFRESH_THREADS 32 /* Flush status variables */
|
|
||||||
#define REFRESH_SLAVE 64 /* Reset master info and restart slave
|
|
||||||
thread */
|
|
||||||
#define REFRESH_MASTER 128 /* Remove all bin logs in the index
|
|
||||||
and truncate the index */
|
|
||||||
|
|
||||||
/* The following can't be set with mysql_refresh() */
|
|
||||||
#define REFRESH_READ_LOCK 16384 /* Lock tables for read */
|
|
||||||
#define REFRESH_FAST 32768 /* Intern flag */
|
|
||||||
|
|
||||||
#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
|
|
||||||
#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
|
|
||||||
#define CLIENT_LONG_FLAG 4 /* Get all column flags */
|
|
||||||
#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */
|
|
||||||
#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */
|
|
||||||
#define CLIENT_COMPRESS 32 /* Can use compression protocol */
|
|
||||||
#define CLIENT_ODBC 64 /* Odbc client */
|
|
||||||
#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */
|
|
||||||
#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */
|
|
||||||
#define CLIENT_CHANGE_USER 512 /* Support the mysql_change_user() */
|
|
||||||
#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */
|
|
||||||
#define CLIENT_SSL 2048 /* Switch to SSL after handshake */
|
|
||||||
#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */
|
|
||||||
#define CLIENT_TRANSACTIONS 8196 /* Client knows about transactions */
|
|
||||||
|
|
||||||
#define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */
|
|
||||||
#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */
|
|
||||||
|
|
||||||
#define MYSQL_ERRMSG_SIZE 200
|
|
||||||
#define NET_READ_TIMEOUT 30 /* Timeout on read */
|
|
||||||
#define NET_WRITE_TIMEOUT 60 /* Timeout on write */
|
|
||||||
#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */
|
|
||||||
|
|
||||||
#ifndef Vio_defined
|
|
||||||
#define Vio_defined
|
|
||||||
#ifdef HAVE_VIO
|
|
||||||
class Vio; /* Fill Vio class in C++ */
|
|
||||||
#else
|
|
||||||
struct st_vio; /* Only C */
|
|
||||||
typedef struct st_vio Vio;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct st_net {
|
|
||||||
Vio* vio;
|
|
||||||
my_socket fd; /* For Perl DBI/dbd */
|
|
||||||
int fcntl;
|
|
||||||
unsigned char *buff,*buff_end,*write_pos,*read_pos;
|
|
||||||
char last_error[MYSQL_ERRMSG_SIZE];
|
|
||||||
unsigned int last_errno,max_packet,timeout,pkt_nr;
|
|
||||||
unsigned char error;
|
|
||||||
my_bool return_errno,compress;
|
|
||||||
my_bool no_send_ok; /* needed if we are doing several
|
|
||||||
queries in one command ( as in LOAD TABLE ... FROM MASTER ),
|
|
||||||
and do not want to confuse the client with OK at the wrong time
|
|
||||||
*/
|
|
||||||
unsigned long remain_in_buf,length, buf_length, where_b;
|
|
||||||
unsigned int *return_status;
|
|
||||||
unsigned char reading_or_writing;
|
|
||||||
char save_char;
|
|
||||||
} NET;
|
|
||||||
|
|
||||||
#define packet_error ((unsigned int) -1)
|
|
||||||
|
|
||||||
enum enum_field_types { FIELD_TYPE_DECIMAL, FIELD_TYPE_TINY,
|
|
||||||
FIELD_TYPE_SHORT, FIELD_TYPE_LONG,
|
|
||||||
FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE,
|
|
||||||
FIELD_TYPE_NULL, FIELD_TYPE_TIMESTAMP,
|
|
||||||
FIELD_TYPE_LONGLONG,FIELD_TYPE_INT24,
|
|
||||||
FIELD_TYPE_DATE, FIELD_TYPE_TIME,
|
|
||||||
FIELD_TYPE_DATETIME, FIELD_TYPE_YEAR,
|
|
||||||
FIELD_TYPE_NEWDATE,
|
|
||||||
FIELD_TYPE_ENUM=247,
|
|
||||||
FIELD_TYPE_SET=248,
|
|
||||||
FIELD_TYPE_TINY_BLOB=249,
|
|
||||||
FIELD_TYPE_MEDIUM_BLOB=250,
|
|
||||||
FIELD_TYPE_LONG_BLOB=251,
|
|
||||||
FIELD_TYPE_BLOB=252,
|
|
||||||
FIELD_TYPE_VAR_STRING=253,
|
|
||||||
FIELD_TYPE_STRING=254
|
|
||||||
};
|
|
||||||
|
|
||||||
#define FIELD_TYPE_CHAR FIELD_TYPE_TINY /* For compability */
|
|
||||||
#define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM /* For compability */
|
|
||||||
|
|
||||||
|
|
||||||
/* Shutdown/kill enums and constants */
|
|
||||||
|
|
||||||
/* Bits for THD::killable. */
|
|
||||||
#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0)
|
|
||||||
#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1)
|
|
||||||
#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2)
|
|
||||||
#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3)
|
|
||||||
|
|
||||||
enum mysql_enum_shutdown_level {
|
|
||||||
/*
|
|
||||||
We want levels to be in growing order of hardness (because we use number
|
|
||||||
comparisons). Note that DEFAULT does not respect the growing property, but
|
|
||||||
it's ok.
|
|
||||||
*/
|
|
||||||
DEFAULT= 0,
|
|
||||||
/* wait for existing connections to finish */
|
|
||||||
WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT,
|
|
||||||
/* wait for existing trans to finish */
|
|
||||||
WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS,
|
|
||||||
/* wait for existing updates to finish (=> no partial MyISAM update) */
|
|
||||||
WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE,
|
|
||||||
/* flush InnoDB buffers and other storage engines' buffers*/
|
|
||||||
WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1),
|
|
||||||
/* don't flush InnoDB buffers, flush other storage engines' buffers*/
|
|
||||||
WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1,
|
|
||||||
/* Now the 2 levels of the KILL command */
|
|
||||||
#if MYSQL_VERSION_ID >= 50000
|
|
||||||
KILL_QUERY= 254,
|
|
||||||
#endif
|
|
||||||
KILL_CONNECTION= 255
|
|
||||||
};
|
|
||||||
|
|
||||||
extern unsigned long max_allowed_packet;
|
|
||||||
extern unsigned long net_buffer_length;
|
|
||||||
|
|
||||||
#define net_new_transaction(net) ((net)->pkt_nr=0)
|
|
||||||
|
|
||||||
int my_net_init(NET *net, Vio* vio);
|
|
||||||
void net_end(NET *net);
|
|
||||||
void net_clear(NET *net);
|
|
||||||
int net_flush(NET *net);
|
|
||||||
int my_net_write(NET *net,const char *packet,unsigned long len);
|
|
||||||
int net_write_command(NET *net,unsigned char command,const char *packet,
|
|
||||||
unsigned long len);
|
|
||||||
int net_real_write(NET *net,const char *packet,unsigned long len);
|
|
||||||
unsigned int my_net_read(NET *net);
|
|
||||||
|
|
||||||
struct rand_struct {
|
|
||||||
unsigned long seed1,seed2,max_value;
|
|
||||||
double max_value_dbl;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* The following is for user defined functions */
|
|
||||||
|
|
||||||
enum Item_result {STRING_RESULT,REAL_RESULT,INT_RESULT};
|
|
||||||
|
|
||||||
typedef struct st_udf_args
|
|
||||||
{
|
|
||||||
unsigned int arg_count; /* Number of arguments */
|
|
||||||
enum Item_result *arg_type; /* Pointer to item_results */
|
|
||||||
char **args; /* Pointer to argument */
|
|
||||||
unsigned long *lengths; /* Length of string arguments */
|
|
||||||
char *maybe_null; /* Set to 1 for all maybe_null args */
|
|
||||||
} UDF_ARGS;
|
|
||||||
|
|
||||||
/* This holds information about the result */
|
|
||||||
|
|
||||||
typedef struct st_udf_init
|
|
||||||
{
|
|
||||||
my_bool maybe_null; /* 1 if function can return NULL */
|
|
||||||
unsigned int decimals; /* for real functions */
|
|
||||||
unsigned int max_length; /* For string functions */
|
|
||||||
char *ptr; /* free pointer for function data */
|
|
||||||
my_bool const_item; /* 0 if result is independent of arguments */
|
|
||||||
} UDF_INIT;
|
|
||||||
|
|
||||||
/* Constants when using compression */
|
|
||||||
#define NET_HEADER_SIZE 4 /* standard header size */
|
|
||||||
#define COMP_HEADER_SIZE 3 /* compression header extra size */
|
|
||||||
|
|
||||||
/* Prototypes to password functions */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void randominit(struct rand_struct *,unsigned long seed1,
|
|
||||||
unsigned long seed2);
|
|
||||||
double rnd(struct rand_struct *);
|
|
||||||
void make_scrambled_password(char *to,const char *password);
|
|
||||||
void get_salt_from_password(unsigned long *res,const char *password);
|
|
||||||
void make_password_from_salt(char *to, unsigned long *hash_res);
|
|
||||||
char *scramble(char *to,const char *message,const char *password,
|
|
||||||
my_bool old_ver);
|
|
||||||
my_bool check_scramble(const char *, const char *message,
|
|
||||||
unsigned long *salt,my_bool old_ver);
|
|
||||||
char *get_tty_password(char *opt_message);
|
|
||||||
void hash_password(unsigned long *result, const char *password);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Some other useful functions */
|
|
||||||
|
|
||||||
void my_init(void);
|
|
||||||
void load_defaults(const char *conf_file, const char **groups,
|
|
||||||
int *argc, char ***argv);
|
|
||||||
|
|
||||||
#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */
|
|
||||||
|
|
||||||
#ifdef __WIN__
|
|
||||||
#define socket_errno WSAGetLastError()
|
|
||||||
#else
|
|
||||||
#define socket_errno errno
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,20 +0,0 @@
|
|||||||
/* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB & Detron HB
|
|
||||||
This file is public domain and comes with NO WARRANTY of any kind */
|
|
||||||
|
|
||||||
/* Version numbers for protocol & mysqld */
|
|
||||||
|
|
||||||
#ifdef _CUSTOMCONFIG_
|
|
||||||
#include <custom_conf.h>
|
|
||||||
#else
|
|
||||||
#define PROTOCOL_VERSION 10
|
|
||||||
#define MYSQL_SERVER_VERSION "3.23.22-beta"
|
|
||||||
#define FRM_VER 6
|
|
||||||
#define MYSQL_VERSION_ID 32322
|
|
||||||
#define MYSQL_PORT 3306
|
|
||||||
#define MYSQL_UNIX_ADDR "/tmp/mysql.sock"
|
|
||||||
|
|
||||||
/* mysqld compile time options */
|
|
||||||
#ifndef MYSQL_CHARSET
|
|
||||||
#define MYSQL_CHARSET "latin1"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
@ -1,36 +0,0 @@
|
|||||||
//---------------------------------------------------------------------------
|
|
||||||
#include <vcl.h>
|
|
||||||
#pragma hdrstop
|
|
||||||
HINSTANCE g_hinst;
|
|
||||||
USERES("winmysqladmin.res");
|
|
||||||
USEFORM("main.cpp", Form1);
|
|
||||||
USEFORM("initsetup.cpp", Form2);
|
|
||||||
USEFORM("db.cpp", dbfrm);
|
|
||||||
USELIB("lib\mysqlclient.lib");
|
|
||||||
USELIB("lib\myisammrg.lib");
|
|
||||||
USELIB("lib\heap.lib");
|
|
||||||
USELIB("lib\myisam.lib");
|
|
||||||
USELIB("lib\mysys.lib");
|
|
||||||
USELIB("lib\regex.lib");
|
|
||||||
USELIB("lib\strings.lib");
|
|
||||||
USELIB("lib\zlib.lib");
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Application->Initialize();
|
|
||||||
Application->HelpFile = "C:\\mysql\\bin\\WINMYSQLADMIN.HLP";
|
|
||||||
Application->Title = "WinMySQLadmin 1.0";
|
|
||||||
Application->CreateForm(__classid(TForm1), &Form1);
|
|
||||||
Application->CreateForm(__classid(TForm2), &Form2);
|
|
||||||
Application->CreateForm(__classid(Tdbfrm), &dbfrm);
|
|
||||||
Application->Run();
|
|
||||||
}
|
|
||||||
catch (Exception &exception)
|
|
||||||
{
|
|
||||||
Application->ShowException(&exception);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
@ -149,7 +149,7 @@ enum { /* X509 Constants */
|
|||||||
X509_V_ERR_CRL_SIGNATURE_FAILURE = 10,
|
X509_V_ERR_CRL_SIGNATURE_FAILURE = 10,
|
||||||
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
|
X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11,
|
||||||
X509_V_ERR_CRL_HAS_EXPIRED = 12,
|
X509_V_ERR_CRL_HAS_EXPIRED = 12,
|
||||||
X509_V_ERR_CERT_REVOKED = 13,
|
X509_V_ERR_CERT_REVOKED = 13
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ int ERR_GET_REASON(int);
|
|||||||
|
|
||||||
enum { /* ERR Constants */
|
enum { /* ERR Constants */
|
||||||
ERR_TXT_STRING = 1,
|
ERR_TXT_STRING = 1,
|
||||||
EVP_R_BAD_DECRYPT = 2,
|
EVP_R_BAD_DECRYPT = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -263,8 +263,8 @@ enum { /* ssl Constants */
|
|||||||
SSL_UNKNOWN = -2,
|
SSL_UNKNOWN = -2,
|
||||||
SSL_FATAL_ERROR = -1,
|
SSL_FATAL_ERROR = -1,
|
||||||
SSL_NORMAL_SHUTDOWN = 0,
|
SSL_NORMAL_SHUTDOWN = 0,
|
||||||
SSL_ERROR_NONE = 0, // for most functions
|
SSL_ERROR_NONE = 0, /* for most functions */
|
||||||
SSL_FAILURE = 0, // for some functions
|
SSL_FAILURE = 0, /* for some functions */
|
||||||
SSL_SUCCESS = 1,
|
SSL_SUCCESS = 1,
|
||||||
|
|
||||||
SSL_FILETYPE_ASN1 = 10,
|
SSL_FILETYPE_ASN1 = 10,
|
||||||
@ -320,7 +320,7 @@ enum { /* ssl Constants */
|
|||||||
SSL_ST_ACCEPT = 94,
|
SSL_ST_ACCEPT = 94,
|
||||||
SSL_CB_ALERT = 95,
|
SSL_CB_ALERT = 95,
|
||||||
SSL_CB_READ = 96,
|
SSL_CB_READ = 96,
|
||||||
SSL_CB_HANDSHAKE_DONE = 97,
|
SSL_CB_HANDSHAKE_DONE = 97
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ enum YasslError {
|
|||||||
verify_error = 112,
|
verify_error = 112,
|
||||||
send_error = 113,
|
send_error = 113,
|
||||||
receive_error = 114,
|
receive_error = 114,
|
||||||
certificate_error = 115,
|
certificate_error = 115
|
||||||
|
|
||||||
// 1000+ from TaoCrypt error.hpp
|
// 1000+ from TaoCrypt error.hpp
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#ifndef yaSSL_TYPES_HPP
|
#ifndef yaSSL_TYPES_HPP
|
||||||
#define yaSSL_TYPES_HPP
|
#define yaSSL_TYPES_HPP
|
||||||
|
|
||||||
#include<cstddef>
|
#include <stddef.h>
|
||||||
|
|
||||||
namespace yaSSL {
|
namespace yaSSL {
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ enum PublicValueEncoding { implicit_encoding, explicit_encoding };
|
|||||||
|
|
||||||
enum ConnectionEnd { server_end, client_end };
|
enum ConnectionEnd { server_end, client_end };
|
||||||
|
|
||||||
enum AlertLevel { warning = 1, fatal = 2, };
|
enum AlertLevel { warning = 1, fatal = 2 };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -381,7 +381,7 @@ const char* const cipher_names[128] =
|
|||||||
"DES-CBC3-RMD", // TLS_RSA_WITH_3DES_EDE_CBC_RMD160 = 124
|
"DES-CBC3-RMD", // TLS_RSA_WITH_3DES_EDE_CBC_RMD160 = 124
|
||||||
"AES128-RMD", // TLS_RSA_WITH_AES_128_CBC_RMD160 = 125
|
"AES128-RMD", // TLS_RSA_WITH_AES_128_CBC_RMD160 = 125
|
||||||
"AES256-RMD", // TLS_RSA_WITH_AES_256_CBC_RMD160 = 126
|
"AES256-RMD", // TLS_RSA_WITH_AES_256_CBC_RMD160 = 126
|
||||||
null_str, // 127
|
null_str // 127
|
||||||
};
|
};
|
||||||
|
|
||||||
// fill with MD5 pad size since biggest required
|
// fill with MD5 pad size since biggest required
|
||||||
|
@ -30,13 +30,25 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __IBMCPP__
|
||||||
|
/*
|
||||||
|
Workaround for the lack of operator new(size_t, void*)
|
||||||
|
in IBM VA C++ 6.0
|
||||||
|
*/
|
||||||
|
struct Dummy {};
|
||||||
|
inline void *operator new(size_t size, Dummy *d) { return (void*) d; }
|
||||||
|
typedef Dummy *yassl_pointer;
|
||||||
|
#else
|
||||||
|
typedef void *yassl_pointer;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace mySTL {
|
namespace mySTL {
|
||||||
|
|
||||||
|
|
||||||
template <typename T, typename T2>
|
template <typename T, typename T2>
|
||||||
inline void construct(T* p, const T2& value)
|
inline void construct(T* p, const T2& value)
|
||||||
{
|
{
|
||||||
new (static_cast<void*>(p)) T(value);
|
new ((yassl_pointer) p) T(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,13 @@ namespace mySTL {
|
|||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
class list {
|
class list {
|
||||||
|
#ifdef __SUNPRO_CC
|
||||||
|
/*
|
||||||
|
Sun Forte 7 C++ v. 5.4 needs class 'node' be public to be visible to
|
||||||
|
the nested class 'iterator' (a non-standard behaviour).
|
||||||
|
*/
|
||||||
|
public:
|
||||||
|
#endif
|
||||||
struct node {
|
struct node {
|
||||||
node(T t) : prev_(0), next_(0), value_(t) {}
|
node(T t) : prev_(0), next_(0), value_(t) {}
|
||||||
|
|
||||||
|
4
extra/yassl/src/dummy.cpp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/*
|
||||||
|
To make libtool always use a C++ linker when compiling with yaSSL we need
|
||||||
|
to add a dummy C++ file to the source list.
|
||||||
|
*/
|
@ -79,7 +79,7 @@ enum ASNIdFlag
|
|||||||
|
|
||||||
enum DNTags
|
enum DNTags
|
||||||
{
|
{
|
||||||
COMMON_NAME = 0x03,
|
COMMON_NAME = 0x03
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ enum Constants
|
|||||||
MAX_SEQ_SZ = 5, // enum(seq|con) + length(4)
|
MAX_SEQ_SZ = 5, // enum(seq|con) + length(4)
|
||||||
MAX_ALGO_SIZE = 9,
|
MAX_ALGO_SIZE = 9,
|
||||||
MAX_DIGEST_SZ = 25, // SHA + enum(Bit or Octet) + length(4)
|
MAX_DIGEST_SZ = 25, // SHA + enum(Bit or Octet) + length(4)
|
||||||
DSA_SIG_SZ = 40,
|
DSA_SIG_SZ = 40
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ typedef unsigned char byte;
|
|||||||
typedef unsigned short word16;
|
typedef unsigned short word16;
|
||||||
typedef unsigned int word32;
|
typedef unsigned int word32;
|
||||||
|
|
||||||
#if defined(__GNUC__) || defined(__MWERKS__)
|
#if defined(__GNUC__) || defined(__MWERKS__) || defined(_LONGLONG_TYPE)
|
||||||
#define WORD64_AVAILABLE
|
#define WORD64_AVAILABLE
|
||||||
typedef unsigned long long word64;
|
typedef unsigned long long word64;
|
||||||
#define W64LIT(x) x##LL
|
#define W64LIT(x) x##LL
|
||||||
@ -79,8 +79,10 @@ typedef unsigned int word32;
|
|||||||
typedef word32 lword;
|
typedef word32 lword;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// FIXME the !defined(__sun) is a temporarely solution until asm for
|
||||||
|
// __x86_64__ and Solaris is written
|
||||||
#if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || \
|
#if defined(__alpha__) || defined(__ia64__) || defined(_ARCH_PPC64) || \
|
||||||
defined(__x86_64__) || defined(__mips64)
|
defined(__mips64) || (defined(__x86_64__) && !defined(__sun))
|
||||||
// These platforms have 64-bit CPU registers. Unfortunately most C++ compilers
|
// These platforms have 64-bit CPU registers. Unfortunately most C++ compilers
|
||||||
// don't allow any way to access the 64-bit by 64-bit multiply instruction
|
// don't allow any way to access the 64-bit by 64-bit multiply instruction
|
||||||
// without using assembly, so in order to use word64 as word, the assembly
|
// without using assembly, so in order to use word64 as word, the assembly
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
#endif /* __CYGWIN__ */
|
#endif /* __CYGWIN__ */
|
||||||
|
|
||||||
/* Determine when to use "#pragma interface" */
|
/* Determine when to use "#pragma interface" */
|
||||||
#if !defined(__CYGWIN__) && !defined(__ICC) && defined(__GNUC__) && (__GNUC__ < 3)
|
#if !defined(__CYGWIN__) && !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ < 3)
|
||||||
#define USE_PRAGMA_INTERFACE
|
#define USE_PRAGMA_INTERFACE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1926,10 +1926,6 @@ trx_recover_for_mysql(
|
|||||||
ut_ad(xid_list);
|
ut_ad(xid_list);
|
||||||
ut_ad(len);
|
ut_ad(len);
|
||||||
|
|
||||||
ut_print_timestamp(stderr);
|
|
||||||
fprintf(stderr,
|
|
||||||
" InnoDB: Starting recovery for XA transactions...\n");
|
|
||||||
|
|
||||||
/* We should set those transactions which are in the prepared state
|
/* We should set those transactions which are in the prepared state
|
||||||
to the xid_list */
|
to the xid_list */
|
||||||
|
|
||||||
@ -1941,6 +1937,12 @@ trx_recover_for_mysql(
|
|||||||
if (trx->conc_state == TRX_PREPARED) {
|
if (trx->conc_state == TRX_PREPARED) {
|
||||||
xid_list[count] = trx->xid;
|
xid_list[count] = trx->xid;
|
||||||
|
|
||||||
|
if (count == 0) {
|
||||||
|
ut_print_timestamp(stderr);
|
||||||
|
fprintf(stderr,
|
||||||
|
" InnoDB: Starting recovery for XA transactions...\n");
|
||||||
|
}
|
||||||
|
|
||||||
ut_print_timestamp(stderr);
|
ut_print_timestamp(stderr);
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" InnoDB: Transaction %lu %lu in prepared state after recovery\n",
|
" InnoDB: Transaction %lu %lu in prepared state after recovery\n",
|
||||||
@ -1964,10 +1966,12 @@ trx_recover_for_mysql(
|
|||||||
|
|
||||||
mutex_exit(&kernel_mutex);
|
mutex_exit(&kernel_mutex);
|
||||||
|
|
||||||
|
if (count > 0){
|
||||||
ut_print_timestamp(stderr);
|
ut_print_timestamp(stderr);
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" InnoDB: %d transactions in prepared state after recovery\n",
|
" InnoDB: %d transactions in prepared state after recovery\n",
|
||||||
count);
|
count);
|
||||||
|
}
|
||||||
|
|
||||||
return (count);
|
return (count);
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
|||||||
while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
|
while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
|
||||||
{
|
{
|
||||||
if ((end=buff+length)[-1] == '\n')
|
if ((end=buff+length)[-1] == '\n')
|
||||||
end[-1]='\0';
|
*--end='\0';
|
||||||
if (!buff[0])
|
if (!buff[0])
|
||||||
continue; /* Skip empty lines */
|
continue; /* Skip empty lines */
|
||||||
if (buff[0] == '#')
|
if (buff[0] == '#')
|
||||||
@ -86,6 +86,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
|||||||
sizeof(name_buff)-1-dir_length));
|
sizeof(name_buff)-1-dir_length));
|
||||||
VOID(cleanup_dirname(buff,name_buff));
|
VOID(cleanup_dirname(buff,name_buff));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
fn_format(buff, buff, "", "", 0);
|
||||||
if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0))))
|
if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0))))
|
||||||
goto err;
|
goto err;
|
||||||
if (!m_info) /* First file */
|
if (!m_info) /* First file */
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use INFORMATION_SCHEMA;
|
use INFORMATION_SCHEMA;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_INFORMATION_SCHEMA
|
Tables_in_information_schema
|
||||||
SCHEMATA
|
SCHEMATA
|
||||||
TABLES
|
TABLES
|
||||||
COLUMNS
|
COLUMNS
|
||||||
@ -17,7 +17,7 @@ COLUMN_PRIVILEGES
|
|||||||
TABLE_CONSTRAINTS
|
TABLE_CONSTRAINTS
|
||||||
KEY_COLUMN_USAGE
|
KEY_COLUMN_USAGE
|
||||||
show tables from INFORMATION_SCHEMA like 'T%';
|
show tables from INFORMATION_SCHEMA like 'T%';
|
||||||
Tables_in_INFORMATION_SCHEMA (T%)
|
Tables_in_information_schema (T%)
|
||||||
TABLES
|
TABLES
|
||||||
TABLE_PRIVILEGES
|
TABLE_PRIVILEGES
|
||||||
TABLE_CONSTRAINTS
|
TABLE_CONSTRAINTS
|
||||||
|
@ -84,3 +84,9 @@ create table t2 like T1;
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
|
use lpt1;
|
||||||
|
ERROR 42000: Unknown database 'lpt1'
|
||||||
|
use com1;
|
||||||
|
ERROR 42000: Unknown database 'com1'
|
||||||
|
use prn;
|
||||||
|
ERROR 42000: Unknown database 'prn'
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
-- source include/testdb_only.inc
|
-- source include/testdb_only.inc
|
||||||
|
|
||||||
use INFORMATION_SCHEMA;
|
use INFORMATION_SCHEMA;
|
||||||
|
--replace_result Tables_in_INFORMATION_SCHEMA Tables_in_information_schema
|
||||||
show tables;
|
show tables;
|
||||||
|
--replace_result 'Tables_in_INFORMATION_SCHEMA (T%)' 'Tables_in_information_schema (T%)'
|
||||||
show tables from INFORMATION_SCHEMA like 'T%';
|
show tables from INFORMATION_SCHEMA like 'T%';
|
||||||
create database `inf%`;
|
create database `inf%`;
|
||||||
use `inf%`;
|
use `inf%`;
|
||||||
|
@ -83,3 +83,14 @@ create table t2 like T1;
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
show tables;
|
show tables;
|
||||||
|
|
||||||
|
#
|
||||||
|
#Bug 9148: Denial of service
|
||||||
|
#
|
||||||
|
--error 1049
|
||||||
|
use lpt1;
|
||||||
|
--error 1049
|
||||||
|
use com1;
|
||||||
|
--error 1049
|
||||||
|
use prn;
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
--lower_case_table_names=1
|
|
@ -42,7 +42,7 @@ int modify_defaults_file(const char *file_location, const char *option,
|
|||||||
const char *section_name, int remove_option)
|
const char *section_name, int remove_option)
|
||||||
{
|
{
|
||||||
FILE *cnf_file;
|
FILE *cnf_file;
|
||||||
struct stat file_stat;
|
MY_STAT file_stat;
|
||||||
char linebuff[BUFF_SIZE], tmp[BUFF_SIZE], *tmp_ptr, *src_ptr, *dst_ptr,
|
char linebuff[BUFF_SIZE], tmp[BUFF_SIZE], *tmp_ptr, *src_ptr, *dst_ptr,
|
||||||
*file_buffer;
|
*file_buffer;
|
||||||
uint optlen, optval_len, sect_len;
|
uint optlen, optval_len, sect_len;
|
||||||
|
@ -33,9 +33,22 @@ FILE *my_fopen(const char *FileName, int Flags, myf MyFlags)
|
|||||||
DBUG_ENTER("my_fopen");
|
DBUG_ENTER("my_fopen");
|
||||||
DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d",
|
DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d",
|
||||||
FileName, Flags, MyFlags));
|
FileName, Flags, MyFlags));
|
||||||
|
/*
|
||||||
|
if we are not creating, then we need to use my_access to make sure
|
||||||
|
the file exists since Windows doesn't handle files like "com1.sym"
|
||||||
|
very well
|
||||||
|
*/
|
||||||
|
#ifdef __WIN__
|
||||||
|
if (! (Flags & O_CREAT) && my_access(FileName, F_OK))
|
||||||
|
fd=0;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
make_ftype(type,Flags);
|
make_ftype(type,Flags);
|
||||||
if ((fd = fopen(FileName, type)) != 0)
|
fd = fopen(FileName, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fd != 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
The test works if MY_NFILE < 128. The problem is that fileno() is char
|
The test works if MY_NFILE < 128. The problem is that fileno() is char
|
||||||
|
@ -209,6 +209,9 @@ int test_if_hard_path(register const char *dir_name)
|
|||||||
my_bool has_path(const char *name)
|
my_bool has_path(const char *name)
|
||||||
{
|
{
|
||||||
return test(strchr(name, FN_LIBCHAR))
|
return test(strchr(name, FN_LIBCHAR))
|
||||||
|
#if FN_LIBCHAR != '/'
|
||||||
|
|| test(strchr(name,'/'))
|
||||||
|
#endif
|
||||||
#ifdef FN_DEVCHAR
|
#ifdef FN_DEVCHAR
|
||||||
|| test(strchr(name, FN_DEVCHAR))
|
|| test(strchr(name, FN_DEVCHAR))
|
||||||
#endif
|
#endif
|
||||||
|
@ -46,6 +46,13 @@ File my_open(const char *FileName, int Flags, myf MyFlags)
|
|||||||
DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d",
|
DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d",
|
||||||
FileName, Flags, MyFlags));
|
FileName, Flags, MyFlags));
|
||||||
#if defined(MSDOS) || defined(__WIN__) || defined(__EMX__) || defined(OS2)
|
#if defined(MSDOS) || defined(__WIN__) || defined(__EMX__) || defined(OS2)
|
||||||
|
/*
|
||||||
|
if we are not creating, then we need to use my_access to make
|
||||||
|
sure the file exists since Windows doesn't handle files like
|
||||||
|
"com1.sym" very well
|
||||||
|
*/
|
||||||
|
if (! (Flags & O_CREAT) && my_access(FileName, F_OK))
|
||||||
|
return -1;
|
||||||
if (Flags & O_SHARE)
|
if (Flags & O_SHARE)
|
||||||
fd = sopen((my_string) FileName, (Flags & ~O_SHARE) | O_BINARY, SH_DENYNO,
|
fd = sopen((my_string) FileName, (Flags & ~O_SHARE) | O_BINARY, SH_DENYNO,
|
||||||
MY_S_IREAD | MY_S_IWRITE);
|
MY_S_IREAD | MY_S_IWRITE);
|
||||||
|
@ -223,11 +223,8 @@ set_ulimit(const BaseString & pair){
|
|||||||
if(!(list[1].trim() == "unlimited")){
|
if(!(list[1].trim() == "unlimited")){
|
||||||
value = atoi(list[1].c_str());
|
value = atoi(list[1].c_str());
|
||||||
}
|
}
|
||||||
#if defined(__INTEL_COMPILER)
|
|
||||||
struct rlimit64 rlp;
|
|
||||||
#else
|
|
||||||
struct rlimit rlp;
|
struct rlimit rlp;
|
||||||
#endif
|
|
||||||
#define _RLIMIT_FIX(x) { res = getrlimit(x,&rlp); if(!res){ rlp.rlim_cur = value; res = setrlimit(x, &rlp); }}
|
#define _RLIMIT_FIX(x) { res = getrlimit(x,&rlp); if(!res){ rlp.rlim_cur = value; res = setrlimit(x, &rlp); }}
|
||||||
|
|
||||||
if(list[0].trim() == "c"){
|
if(list[0].trim() == "c"){
|
||||||
|
@ -2049,11 +2049,21 @@ NdbDictionaryImpl::getIndexImpl(const char * externalName,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* internalName may be pointer to m_ndb.theImpl->m_internalname.c_str()
|
||||||
|
* and may get deallocated in next call.
|
||||||
|
*
|
||||||
|
* Passing around pointers to volatile internal members may not be
|
||||||
|
* optimal. Suggest use BaseString instances passed by value.
|
||||||
|
*/
|
||||||
|
|
||||||
|
BaseString save_me(internalName);
|
||||||
NdbTableImpl* prim = getTable(tab->m_primaryTable.c_str());
|
NdbTableImpl* prim = getTable(tab->m_primaryTable.c_str());
|
||||||
if(prim == 0){
|
if(prim == 0){
|
||||||
m_error.code = 4243;
|
m_error.code = 4243;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
internalName = save_me.c_str();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create index impl
|
* Create index impl
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
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 */
|
||||||
|
|
||||||
#include <mysql_priv.h>
|
#include "mysql_priv.h"
|
||||||
#include <m_ctype.h>
|
#include <m_ctype.h>
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
|
@ -349,7 +349,7 @@
|
|||||||
#pragma implementation // gcc: Class implementation
|
#pragma implementation // gcc: Class implementation
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <mysql_priv.h>
|
#include "mysql_priv.h"
|
||||||
|
|
||||||
#ifdef HAVE_FEDERATED_DB
|
#ifdef HAVE_FEDERATED_DB
|
||||||
#include "ha_federated.h"
|
#include "ha_federated.h"
|
||||||
|
@ -298,7 +298,7 @@ longlong Item::val_int_from_decimal()
|
|||||||
|
|
||||||
|
|
||||||
Item::Item():
|
Item::Item():
|
||||||
name(0), orig_name(0), name_length(0), fixed(0),
|
rsize(0), name(0), orig_name(0), name_length(0), fixed(0),
|
||||||
collation(&my_charset_bin, DERIVATION_COERCIBLE)
|
collation(&my_charset_bin, DERIVATION_COERCIBLE)
|
||||||
{
|
{
|
||||||
marker= 0;
|
marker= 0;
|
||||||
@ -330,6 +330,7 @@ Item::Item():
|
|||||||
tables
|
tables
|
||||||
*/
|
*/
|
||||||
Item::Item(THD *thd, Item *item):
|
Item::Item(THD *thd, Item *item):
|
||||||
|
rsize(0),
|
||||||
str_value(item->str_value),
|
str_value(item->str_value),
|
||||||
name(item->name),
|
name(item->name),
|
||||||
orig_name(item->orig_name),
|
orig_name(item->orig_name),
|
||||||
|
18
sql/item.h
@ -232,6 +232,21 @@ public:
|
|||||||
static void *operator new(size_t size) {return (void*) sql_alloc((uint) size); }
|
static void *operator new(size_t size) {return (void*) sql_alloc((uint) size); }
|
||||||
static void *operator new(size_t size, MEM_ROOT *mem_root)
|
static void *operator new(size_t size, MEM_ROOT *mem_root)
|
||||||
{ return (void*) alloc_root(mem_root, (uint) size); }
|
{ return (void*) alloc_root(mem_root, (uint) size); }
|
||||||
|
/* Special for SP local variable assignment - reusing slots */
|
||||||
|
static void *operator new(size_t size, Item *reuse, uint *rsize)
|
||||||
|
{
|
||||||
|
if (reuse && size <= reuse->rsize)
|
||||||
|
{
|
||||||
|
reuse->cleanup();
|
||||||
|
TRASH((void *)reuse, size);
|
||||||
|
if (rsize)
|
||||||
|
(*rsize)= reuse->rsize;
|
||||||
|
return (void *)reuse;
|
||||||
|
}
|
||||||
|
if (rsize)
|
||||||
|
(*rsize)= size;
|
||||||
|
return (void *)sql_alloc((uint)size);
|
||||||
|
}
|
||||||
static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); }
|
static void operator delete(void *ptr,size_t size) { TRASH(ptr, size); }
|
||||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) {}
|
static void operator delete(void *ptr, MEM_ROOT *mem_root) {}
|
||||||
|
|
||||||
@ -247,6 +262,9 @@ public:
|
|||||||
|
|
||||||
enum traverse_order { POSTFIX, PREFIX };
|
enum traverse_order { POSTFIX, PREFIX };
|
||||||
|
|
||||||
|
/* Reuse size, only used by SP local variable assignment, otherwize 0 */
|
||||||
|
uint rsize;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
str_values's main purpose is to be used to cache the value in
|
str_values's main purpose is to be used to cache the value in
|
||||||
save_in_field
|
save_in_field
|
||||||
|
@ -131,10 +131,12 @@ sp_prepare_func_item(THD* thd, Item **it_addr)
|
|||||||
** if nothing else.
|
** if nothing else.
|
||||||
*/
|
*/
|
||||||
Item *
|
Item *
|
||||||
sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type,
|
||||||
|
Item *reuse)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("sp_eval_func_item");
|
DBUG_ENTER("sp_eval_func_item");
|
||||||
Item *it= sp_prepare_func_item(thd, it_addr);
|
Item *it= sp_prepare_func_item(thd, it_addr);
|
||||||
|
uint rsize;
|
||||||
DBUG_PRINT("info", ("type: %d", type));
|
DBUG_PRINT("info", ("type: %d", type));
|
||||||
|
|
||||||
if (!it)
|
if (!it)
|
||||||
@ -144,7 +146,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
|
|
||||||
/* QQ How do we do this? Is there some better way? */
|
/* QQ How do we do this? Is there some better way? */
|
||||||
if (type == MYSQL_TYPE_NULL)
|
if (type == MYSQL_TYPE_NULL)
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (sp_map_result_type(type)) {
|
switch (sp_map_result_type(type)) {
|
||||||
@ -155,12 +157,12 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
if (it->null_value)
|
if (it->null_value)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("INT_RESULT: null"));
|
DBUG_PRINT("info", ("INT_RESULT: null"));
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("INT_RESULT: %d", i));
|
DBUG_PRINT("info", ("INT_RESULT: %d", i));
|
||||||
it= new Item_int(i);
|
it= new(reuse, &rsize) Item_int(i);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -171,7 +173,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
if (it->null_value)
|
if (it->null_value)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("REAL_RESULT: null"));
|
DBUG_PRINT("info", ("REAL_RESULT: null"));
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -180,7 +182,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
uint8 decimals= it->decimals;
|
uint8 decimals= it->decimals;
|
||||||
uint32 max_length= it->max_length;
|
uint32 max_length= it->max_length;
|
||||||
DBUG_PRINT("info", ("REAL_RESULT: %g", d));
|
DBUG_PRINT("info", ("REAL_RESULT: %g", d));
|
||||||
it= new Item_float(d);
|
it= new(reuse, &rsize) Item_float(d);
|
||||||
it->decimals= decimals;
|
it->decimals= decimals;
|
||||||
it->max_length= max_length;
|
it->max_length= max_length;
|
||||||
}
|
}
|
||||||
@ -190,9 +192,9 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
{
|
{
|
||||||
my_decimal value, *val= it->val_decimal(&value);
|
my_decimal value, *val= it->val_decimal(&value);
|
||||||
if (it->null_value)
|
if (it->null_value)
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
else
|
else
|
||||||
it= new Item_decimal(val);
|
it= new(reuse, &rsize) Item_decimal(val);
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
char dbug_buff[DECIMAL_MAX_STR_LENGTH+1];
|
char dbug_buff[DECIMAL_MAX_STR_LENGTH+1];
|
||||||
DBUG_PRINT("info", ("DECIMAL_RESULT: %s", dbug_decimal_as_string(dbug_buff, val)));
|
DBUG_PRINT("info", ("DECIMAL_RESULT: %s", dbug_decimal_as_string(dbug_buff, val)));
|
||||||
@ -208,14 +210,16 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
if (it->null_value)
|
if (it->null_value)
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info", ("default result: null"));
|
DBUG_PRINT("info", ("default result: null"));
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info",("default result: %*s",
|
DBUG_PRINT("info",("default result: %*s",
|
||||||
s->length(), s->c_ptr_quick()));
|
s->length(), s->c_ptr_quick()));
|
||||||
it= new Item_string(thd->strmake(s->ptr(), s->length()),
|
it= new(reuse, &rsize) Item_string(thd->strmake(s->ptr(),
|
||||||
s->length(), it->collation.collation);
|
s->length()),
|
||||||
|
s->length(),
|
||||||
|
it->collation.collation);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -224,6 +228,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type)
|
|||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
it->rsize= rsize;
|
||||||
|
|
||||||
DBUG_RETURN(it);
|
DBUG_RETURN(it);
|
||||||
}
|
}
|
||||||
@ -708,7 +713,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount, Item **resp)
|
|||||||
for (i= 0 ; i < params && i < argcount ; i++)
|
for (i= 0 ; i < params && i < argcount ; i++)
|
||||||
{
|
{
|
||||||
sp_pvar_t *pvar = m_pcont->find_pvar(i);
|
sp_pvar_t *pvar = m_pcont->find_pvar(i);
|
||||||
Item *it= sp_eval_func_item(thd, argp++, pvar->type);
|
Item *it= sp_eval_func_item(thd, argp++, pvar->type, NULL);
|
||||||
|
|
||||||
if (it)
|
if (it)
|
||||||
nctx->push_item(it);
|
nctx->push_item(it);
|
||||||
@ -823,7 +828,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Item *it2= sp_eval_func_item(thd, li.ref(), pvar->type);
|
Item *it2= sp_eval_func_item(thd, li.ref(), pvar->type, NULL);
|
||||||
|
|
||||||
if (it2)
|
if (it2)
|
||||||
nctx->push_item(it2); // IN or INOUT
|
nctx->push_item(it2); // IN or INOUT
|
||||||
@ -1466,19 +1471,9 @@ sp_instr_set::execute(THD *thd, uint *nextp)
|
|||||||
int
|
int
|
||||||
sp_instr_set::exec_core(THD *thd, uint *nextp)
|
sp_instr_set::exec_core(THD *thd, uint *nextp)
|
||||||
{
|
{
|
||||||
Item *it;
|
int res= thd->spcont->set_item_eval(thd, m_offset, &m_value, m_type);
|
||||||
int res;
|
|
||||||
|
|
||||||
it= sp_eval_func_item(thd, &m_value, m_type);
|
|
||||||
if (! it)
|
|
||||||
res= -1;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
res= 0;
|
|
||||||
thd->spcont->set_item(m_offset, it);
|
|
||||||
}
|
|
||||||
*nextp = m_ip+1;
|
*nextp = m_ip+1;
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1715,7 +1710,7 @@ sp_instr_freturn::exec_core(THD *thd, uint *nextp)
|
|||||||
Item *it;
|
Item *it;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
it= sp_eval_func_item(thd, &m_value, m_type);
|
it= sp_eval_func_item(thd, &m_value, m_type, NULL);
|
||||||
if (! it)
|
if (! it)
|
||||||
res= -1;
|
res= -1;
|
||||||
else
|
else
|
||||||
|
@ -40,19 +40,39 @@ sp_rcontext::sp_rcontext(uint fsize, uint hmax, uint cmax)
|
|||||||
m_saved.empty();
|
m_saved.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
sp_rcontext::set_item_eval(uint idx, Item **item_addr, enum_field_types type)
|
|
||||||
{
|
|
||||||
extern Item *sp_eval_func_item(THD *thd, Item **it, enum_field_types type);
|
|
||||||
Item *it= sp_eval_func_item(current_thd, item_addr, type);
|
|
||||||
|
|
||||||
|
int
|
||||||
|
sp_rcontext::set_item_eval(THD *thd, uint idx, Item **item_addr,
|
||||||
|
enum_field_types type)
|
||||||
|
{
|
||||||
|
extern Item *sp_eval_func_item(THD *thd, Item **it, enum_field_types type,
|
||||||
|
Item *reuse);
|
||||||
|
Item *it;
|
||||||
|
Item *reuse_it;
|
||||||
|
Item *old_item_next;
|
||||||
|
Item *old_free_list= thd->free_list;
|
||||||
|
int res;
|
||||||
|
LINT_INIT(old_item_next);
|
||||||
|
|
||||||
|
if ((reuse_it= get_item(idx)))
|
||||||
|
old_item_next= reuse_it->next;
|
||||||
|
it= sp_eval_func_item(thd, item_addr, type, reuse_it);
|
||||||
if (! it)
|
if (! it)
|
||||||
return -1;
|
res= -1;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
set_item(idx, it);
|
res= 0;
|
||||||
return 0;
|
if (reuse_it && it == reuse_it)
|
||||||
|
{
|
||||||
|
// A reused item slot, where the constructor put it in the free_list,
|
||||||
|
// so we have to restore the list.
|
||||||
|
thd->free_list= old_free_list;
|
||||||
|
it->next= old_item_next;
|
||||||
}
|
}
|
||||||
|
set_item(idx, it);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -111,7 +131,10 @@ void
|
|||||||
sp_rcontext::save_variables(uint fp)
|
sp_rcontext::save_variables(uint fp)
|
||||||
{
|
{
|
||||||
while (fp < m_count)
|
while (fp < m_count)
|
||||||
m_saved.push_front(m_frame[fp++]);
|
{
|
||||||
|
m_saved.push_front(m_frame[fp]);
|
||||||
|
m_frame[fp++]= NULL; // Prevent reuse
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -230,7 +253,12 @@ sp_cursor::fetch(THD *thd, List<struct sp_pvar> *vars)
|
|||||||
for (fldcount= 0 ; (pv= li++) ; fldcount++)
|
for (fldcount= 0 ; (pv= li++) ; fldcount++)
|
||||||
{
|
{
|
||||||
Item *it;
|
Item *it;
|
||||||
|
Item *reuse;
|
||||||
|
uint rsize;
|
||||||
|
Item *old_item_next;
|
||||||
|
Item *old_free_list= thd->free_list;
|
||||||
const char *s;
|
const char *s;
|
||||||
|
LINT_INIT(old_item_next);
|
||||||
|
|
||||||
if (fldcount >= m_prot->get_field_count())
|
if (fldcount >= m_prot->get_field_count())
|
||||||
{
|
{
|
||||||
@ -238,9 +266,13 @@ sp_cursor::fetch(THD *thd, List<struct sp_pvar> *vars)
|
|||||||
ER(ER_SP_WRONG_NO_OF_FETCH_ARGS), MYF(0));
|
ER(ER_SP_WRONG_NO_OF_FETCH_ARGS), MYF(0));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((reuse= thd->spcont->get_item(pv->offset)))
|
||||||
|
old_item_next= reuse->next;
|
||||||
|
|
||||||
s= row[fldcount];
|
s= row[fldcount];
|
||||||
if (!s)
|
if (!s)
|
||||||
it= new Item_null();
|
it= new(reuse, &rsize) Item_null();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -255,23 +287,32 @@ sp_cursor::fetch(THD *thd, List<struct sp_pvar> *vars)
|
|||||||
len= (*next -s)-1;
|
len= (*next -s)-1;
|
||||||
switch (sp_map_result_type(pv->type)) {
|
switch (sp_map_result_type(pv->type)) {
|
||||||
case INT_RESULT:
|
case INT_RESULT:
|
||||||
it= new Item_int(s);
|
it= new(reuse, &rsize) Item_int(s);
|
||||||
break;
|
break;
|
||||||
case REAL_RESULT:
|
case REAL_RESULT:
|
||||||
it= new Item_float(s, len);
|
it= new(reuse, &rsize) Item_float(s, len);
|
||||||
break;
|
break;
|
||||||
case DECIMAL_RESULT:
|
case DECIMAL_RESULT:
|
||||||
it= new Item_decimal(s, len, thd->db_charset);
|
it= new(reuse, &rsize) Item_decimal(s, len, thd->db_charset);
|
||||||
break;
|
break;
|
||||||
case STRING_RESULT:
|
case STRING_RESULT:
|
||||||
/* TODO: Document why we do an extra copy of the string 's' here */
|
/* TODO: Document why we do an extra copy of the string 's' here */
|
||||||
it= new Item_string(thd->strmake(s, len), len, thd->db_charset);
|
it= new(reuse, &rsize) Item_string(thd->strmake(s, len), len,
|
||||||
|
thd->db_charset);
|
||||||
break;
|
break;
|
||||||
case ROW_RESULT:
|
case ROW_RESULT:
|
||||||
default:
|
default:
|
||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
it->rsize= rsize;
|
||||||
|
if (reuse && it == reuse)
|
||||||
|
{
|
||||||
|
// A reused item slot, where the constructor put it in the free_list,
|
||||||
|
// so we have to restore the list.
|
||||||
|
thd->free_list= old_free_list;
|
||||||
|
it->next= old_item_next;
|
||||||
|
}
|
||||||
thd->spcont->set_item(pv->offset, it);
|
thd->spcont->set_item(pv->offset, it);
|
||||||
}
|
}
|
||||||
if (fldcount < m_prot->get_field_count())
|
if (fldcount < m_prot->get_field_count())
|
||||||
|
@ -74,7 +74,7 @@ class sp_rcontext : public Sql_alloc
|
|||||||
|
|
||||||
/* Returns 0 on success, -1 on (eval) failure */
|
/* Returns 0 on success, -1 on (eval) failure */
|
||||||
int
|
int
|
||||||
set_item_eval(uint idx, Item **i, enum_field_types type);
|
set_item_eval(THD *thd, uint idx, Item **i, enum_field_types type);
|
||||||
|
|
||||||
inline Item *
|
inline Item *
|
||||||
get_item(uint idx)
|
get_item(uint idx)
|
||||||
@ -82,7 +82,6 @@ class sp_rcontext : public Sql_alloc
|
|||||||
return m_frame[idx];
|
return m_frame[idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline Item **
|
inline Item **
|
||||||
get_item_addr(uint idx)
|
get_item_addr(uint idx)
|
||||||
{
|
{
|
||||||
|
@ -1746,7 +1746,8 @@ bool select_dumpvar::send_data(List<Item> &items)
|
|||||||
{
|
{
|
||||||
if ((yy=var_li++))
|
if ((yy=var_li++))
|
||||||
{
|
{
|
||||||
if (thd->spcont->set_item_eval(yy->get_offset(), it.ref(), zz->type))
|
if (thd->spcont->set_item_eval(current_thd,
|
||||||
|
yy->get_offset(), it.ref(), zz->type))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -757,7 +757,13 @@ typedef struct st_lex
|
|||||||
bool drop_if_exists, drop_temporary, local_file, one_shot_set;
|
bool drop_if_exists, drop_temporary, local_file, one_shot_set;
|
||||||
bool in_comment, ignore_space, verbose, no_write_to_binlog;
|
bool in_comment, ignore_space, verbose, no_write_to_binlog;
|
||||||
bool tx_chain, tx_release;
|
bool tx_chain, tx_release;
|
||||||
/* special JOIN::prepare mode: changing of query is prohibited */
|
/*
|
||||||
|
Special JOIN::prepare mode: changing of query is prohibited.
|
||||||
|
When creating a view, we need to just check its syntax omitting
|
||||||
|
any optimizations: afterwards definition of the view will be
|
||||||
|
reconstructed by means of ::print() methods and written to
|
||||||
|
to an .frm file. We need this definition to stay untouched.
|
||||||
|
*/
|
||||||
bool view_prepare_mode;
|
bool view_prepare_mode;
|
||||||
bool safe_to_cache_query;
|
bool safe_to_cache_query;
|
||||||
bool subqueries, ignore;
|
bool subqueries, ignore;
|
||||||
|
@ -19,15 +19,17 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ $(openssl_libs)
|
|||||||
pkglib_LIBRARIES= libvio.a
|
pkglib_LIBRARIES= libvio.a
|
||||||
noinst_PROGRAMS = test-ssl test-sslserver test-sslclient
|
noinst_PROGRAMS = test-ssl test-sslserver test-sslclient
|
||||||
noinst_HEADERS= vio_priv.h
|
noinst_HEADERS= vio_priv.h
|
||||||
test_ssl_SOURCES= test-ssl.c
|
test_ssl_SOURCES= test-ssl.c $(top_srcdir)/extra/yassl/src/dummy.cpp
|
||||||
test_ssl_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
test_ssl_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
||||||
../mysys/libmysys.a ../strings/libmystrings.a \
|
../mysys/libmysys.a ../strings/libmystrings.a \
|
||||||
$(openssl_libs)
|
$(openssl_libs)
|
||||||
test_sslserver_SOURCES= test-sslserver.c
|
test_sslserver_SOURCES= test-sslserver.c \
|
||||||
|
$(top_srcdir)/extra/yassl/src/dummy.cpp
|
||||||
test_sslserver_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
test_sslserver_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
||||||
../mysys/libmysys.a ../strings/libmystrings.a \
|
../mysys/libmysys.a ../strings/libmystrings.a \
|
||||||
$(openssl_libs)
|
$(openssl_libs)
|
||||||
test_sslclient_SOURCES= test-sslclient.c
|
test_sslclient_SOURCES= test-sslclient.c \
|
||||||
|
$(top_srcdir)/extra/yassl/src/dummy.cpp
|
||||||
test_sslclient_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
test_sslclient_LDADD= @CLIENT_EXTRA_LDFLAGS@ ../dbug/libdbug.a libvio.a \
|
||||||
../mysys/libmysys.a ../strings/libmystrings.a \
|
../mysys/libmysys.a ../strings/libmystrings.a \
|
||||||
$(openssl_libs)
|
$(openssl_libs)
|
||||||
|