diff --git a/BitKeeper/etc/gone b/BitKeeper/etc/gone index 2b341c92a92..7c9741f7e79 100644 --- a/BitKeeper/etc/gone +++ b/BitKeeper/etc/gone @@ -1187,20 +1187,32 @@ mwagner@work.mysql.com|mysql-test/r/3.23/sel000002.result|20001010091454|29230|d 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/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|build-tags|20011125054855|05181|7afb7e785b80f97 sasha@mysql.sashanet.com|build-tags|20011201050944|25384|b6f6fff142121618 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|20001214012355|41825|2de7575ca81155e5 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/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.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/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/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/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/sel000003.result|20001011230020|64653|d7b657b1e3a286a7 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/identity.result|20010910233028|16331|e41453a364242503 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/std_data/m.MRG|20001212152450|17736|3f5632c37af00f18 sasha@mysql.sashanet.com|mysql-test/std_data/m.frm|20001212152450|13897|e351dfe0b6824c0c diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 8e03cb3bad2..d8d16aaa1d8 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -54,6 +54,7 @@ dlenev@mysql.com ejonore@mc03.ndb.mysql.com evgen@moonbone.(none) evgen@moonbone.local +gbichot@bk-internal.mysql.com gbichot@production.mysql.com gbichot@quadita2.mysql.com gbichot@quadxeon.mysql.com diff --git a/VC++Files/libmysql/libmysql.dsp b/VC++Files/libmysql/libmysql.dsp index b94aaf07bed..1db5ed538a4 100644 --- a/VC++Files/libmysql/libmysql.dsp +++ b/VC++Files/libmysql/libmysql.dsp @@ -219,6 +219,10 @@ SOURCE=..\mysys\default.c # End Source File # Begin Source File +SOURCE=..\mysys\default_modify.c +# End Source File +# Begin Source File + SOURCE=.\dll.c # End Source File # Begin Source File diff --git a/VC++Files/libmysqld/libmysqld.dsp b/VC++Files/libmysqld/libmysqld.dsp index c5c40b07dfd..a82538c91dd 100644 --- a/VC++Files/libmysqld/libmysqld.dsp +++ b/VC++Files/libmysqld/libmysqld.dsp @@ -180,6 +180,10 @@ SOURCE=..\mysys\default.c # End Source File # Begin Source File +SOURCE=..\mysys\default_modify.c +# End Source File +# Begin Source File + SOURCE=..\sql\derror.cpp # End Source File # Begin Source File diff --git a/VC++Files/mysql.dsw b/VC++Files/mysql.dsw index 73db9d095cb..25bcab8338b 100644 --- a/VC++Files/mysql.dsw +++ b/VC++Files/mysql.dsw @@ -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> Package=<5> diff --git a/VC++Files/mysql_ia64.dsw b/VC++Files/mysql_ia64.dsw index dd86d498afe..3b588deee61 100644 --- a/VC++Files/mysql_ia64.dsw +++ b/VC++Files/mysql_ia64.dsw @@ -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> Package=<5> diff --git a/VC++Files/mysqlshutdown/myshutdown.dsp b/VC++Files/mysqlshutdown/myshutdown.dsp deleted file mode 100644 index 0119df3cd59..00000000000 --- a/VC++Files/mysqlshutdown/myshutdown.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysqlshutdown/myshutdown_ia64.dsp b/VC++Files/mysqlshutdown/myshutdown_ia64.dsp deleted file mode 100644 index 1cee7987d5e..00000000000 --- a/VC++Files/mysqlshutdown/myshutdown_ia64.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysqlshutdown/mysql.ico b/VC++Files/mysqlshutdown/mysql.ico deleted file mode 100644 index 1fe0b7115bb..00000000000 Binary files a/VC++Files/mysqlshutdown/mysql.ico and /dev/null differ diff --git a/VC++Files/mysqlshutdown/mysqlshutdown.c b/VC++Files/mysqlshutdown/mysqlshutdown.c deleted file mode 100644 index ccaf4a00eda..00000000000 --- a/VC++Files/mysqlshutdown/mysqlshutdown.c +++ /dev/null @@ -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 - -//----------------------------------------------------------------------- -// 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 ------------------------------------------ - - diff --git a/VC++Files/mysqlshutdown/mysqlshutdown.dsp b/VC++Files/mysqlshutdown/mysqlshutdown.dsp deleted file mode 100644 index b7802240d42..00000000000 --- a/VC++Files/mysqlshutdown/mysqlshutdown.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysqlshutdown/mysqlshutdown.rc b/VC++Files/mysqlshutdown/mysqlshutdown.rc deleted file mode 100644 index 6837f863a81..00000000000 --- a/VC++Files/mysqlshutdown/mysqlshutdown.rc +++ /dev/null @@ -1,2 +0,0 @@ -MySql ICON DISCARDABLE "MYSQL.ICO" - diff --git a/VC++Files/mysqlshutdown/mysqlshutdown_ia64.dsp b/VC++Files/mysqlshutdown/mysqlshutdown_ia64.dsp deleted file mode 100644 index 2549606bf60..00000000000 --- a/VC++Files/mysqlshutdown/mysqlshutdown_ia64.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysqlwatch/mysqlwatch.c b/VC++Files/mysqlwatch/mysqlwatch.c deleted file mode 100644 index 2a1f62b4394..00000000000 --- a/VC++Files/mysqlwatch/mysqlwatch.c +++ /dev/null @@ -1,745 +0,0 @@ -/**************************************************************************** - MySqlWatch - WinNT service program MySQL - - Re-start MySql server in case of failure -*****************************************************************************/ -#include -#include -#include -#include -#include - - -// 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 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 ---------------------------------------- diff --git a/VC++Files/mysqlwatch/mysqlwatch.dsp b/VC++Files/mysqlwatch/mysqlwatch.dsp deleted file mode 100644 index ee683c60351..00000000000 --- a/VC++Files/mysqlwatch/mysqlwatch.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysqlwatch/mysqlwatch_ia64.dsp b/VC++Files/mysqlwatch/mysqlwatch_ia64.dsp deleted file mode 100644 index eb17b6991f8..00000000000 --- a/VC++Files/mysqlwatch/mysqlwatch_ia64.dsp +++ /dev/null @@ -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 diff --git a/VC++Files/mysys/mysys.dsp b/VC++Files/mysys/mysys.dsp index 428f75d0045..ab5077810b2 100644 --- a/VC++Files/mysys/mysys.dsp +++ b/VC++Files/mysys/mysys.dsp @@ -209,6 +209,10 @@ SOURCE=.\default.c # End Source File # Begin Source File +SOURCE=.\default_modify.c +# End Source File +# Begin Source File + SOURCE=.\errors.c # End Source File # Begin Source File diff --git a/VC++Files/sql/mysqld.dsp b/VC++Files/sql/mysqld.dsp index 723c0d63b36..a140b99080b 100644 --- a/VC++Files/sql/mysqld.dsp +++ b/VC++Files/sql/mysqld.dsp @@ -49,7 +49,7 @@ RSC=rc.exe # 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 /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 # ADD BASE RSC /l 0x410 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -75,7 +75,7 @@ LINK32=xilink6.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # 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 # ADD BASE RSC /l 0x410 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" @@ -102,7 +102,7 @@ LINK32=xilink6.exe # 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 # 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 # ADD BASE RSC /l 0x410 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -130,7 +130,7 @@ LINK32=xilink6.exe # 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 # 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 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -159,7 +159,7 @@ LINK32=xilink6.exe # 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 # 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 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -187,7 +187,7 @@ LINK32=xilink6.exe # 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 # 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 RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -215,7 +215,7 @@ LINK32=xilink6.exe # 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 # 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 RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -243,7 +243,7 @@ LINK32=xilink6.exe # 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 # 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 # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" @@ -272,7 +272,8 @@ LINK32=xilink6.exe # 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 # 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 RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -451,6 +452,14 @@ SOURCE=.\gstream.cpp # End 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 # End Source File # Begin Source File diff --git a/VC++Files/winmysqladmin/db.cpp b/VC++Files/winmysqladmin/db.cpp deleted file mode 100644 index 6e796856a7e..00000000000 --- a/VC++Files/winmysqladmin/db.cpp +++ /dev/null @@ -1,80 +0,0 @@ -//--------------------------------------------------------------------------- -#include -#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; -} -//--------------------------------------------------------------------------- diff --git a/VC++Files/winmysqladmin/db.h b/VC++Files/winmysqladmin/db.h deleted file mode 100644 index f7ab87351ea..00000000000 --- a/VC++Files/winmysqladmin/db.h +++ /dev/null @@ -1,32 +0,0 @@ -//--------------------------------------------------------------------------- -#ifndef dbH -#define dbH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -#include -//--------------------------------------------------------------------------- -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 diff --git a/VC++Files/winmysqladmin/images/Goahead.ico b/VC++Files/winmysqladmin/images/Goahead.ico deleted file mode 100644 index 8241c90e2a2..00000000000 Binary files a/VC++Files/winmysqladmin/images/Goahead.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/HELP.ICO b/VC++Files/winmysqladmin/images/HELP.ICO deleted file mode 100644 index d0cd6d68cce..00000000000 Binary files a/VC++Files/winmysqladmin/images/HELP.ICO and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/INFO.ICO b/VC++Files/winmysqladmin/images/INFO.ICO deleted file mode 100644 index e3afa8cf52c..00000000000 Binary files a/VC++Files/winmysqladmin/images/INFO.ICO and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Info.bmp b/VC++Files/winmysqladmin/images/Info.bmp deleted file mode 100644 index 58f729fb1fd..00000000000 Binary files a/VC++Files/winmysqladmin/images/Info.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/MYINI.ICO b/VC++Files/winmysqladmin/images/MYINI.ICO deleted file mode 100644 index 428ed8e92b0..00000000000 Binary files a/VC++Files/winmysqladmin/images/MYINI.ICO and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Myini.bmp b/VC++Files/winmysqladmin/images/Myini.bmp deleted file mode 100644 index e743a1b9b32..00000000000 Binary files a/VC++Files/winmysqladmin/images/Myini.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Noentry.ico b/VC++Files/winmysqladmin/images/Noentry.ico deleted file mode 100644 index 27f2211f56c..00000000000 Binary files a/VC++Files/winmysqladmin/images/Noentry.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/SETUP.BMP b/VC++Files/winmysqladmin/images/SETUP.BMP deleted file mode 100644 index c5794e5ac00..00000000000 Binary files a/VC++Files/winmysqladmin/images/SETUP.BMP and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Setup 16.bmp b/VC++Files/winmysqladmin/images/Setup 16.bmp deleted file mode 100644 index e17b06155fb..00000000000 Binary files a/VC++Files/winmysqladmin/images/Setup 16.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Table.ico b/VC++Files/winmysqladmin/images/Table.ico deleted file mode 100644 index 4469a915b7f..00000000000 Binary files a/VC++Files/winmysqladmin/images/Table.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/Working.ico b/VC++Files/winmysqladmin/images/Working.ico deleted file mode 100644 index 72faedbbfc5..00000000000 Binary files a/VC++Files/winmysqladmin/images/Working.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/database.ico b/VC++Files/winmysqladmin/images/database.ico deleted file mode 100644 index 9689aa88361..00000000000 Binary files a/VC++Files/winmysqladmin/images/database.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/find.ico b/VC++Files/winmysqladmin/images/find.ico deleted file mode 100644 index 2e0f96c52f9..00000000000 Binary files a/VC++Files/winmysqladmin/images/find.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/green.ico b/VC++Files/winmysqladmin/images/green.ico deleted file mode 100644 index ef53cd87994..00000000000 Binary files a/VC++Files/winmysqladmin/images/green.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/help.bmp b/VC++Files/winmysqladmin/images/help.bmp deleted file mode 100644 index 76c6a90d2d8..00000000000 Binary files a/VC++Files/winmysqladmin/images/help.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/initsetup.cpp b/VC++Files/winmysqladmin/images/initsetup.cpp deleted file mode 100644 index d0dd15b059c..00000000000 --- a/VC++Files/winmysqladmin/images/initsetup.cpp +++ /dev/null @@ -1,42 +0,0 @@ -//--------------------------------------------------------------------------- -#include -#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); -} -//--------------------------------------------------------------------------- diff --git a/VC++Files/winmysqladmin/images/killdb.ico b/VC++Files/winmysqladmin/images/killdb.ico deleted file mode 100644 index 9689aa88361..00000000000 Binary files a/VC++Files/winmysqladmin/images/killdb.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/logo.ico b/VC++Files/winmysqladmin/images/logo.ico deleted file mode 100644 index 9409cad72b6..00000000000 Binary files a/VC++Files/winmysqladmin/images/logo.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/multitrg.ico b/VC++Files/winmysqladmin/images/multitrg.ico deleted file mode 100644 index 76ffbe29c77..00000000000 Binary files a/VC++Files/winmysqladmin/images/multitrg.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/mysql-07.bmp b/VC++Files/winmysqladmin/images/mysql-07.bmp deleted file mode 100644 index dcae23b8813..00000000000 Binary files a/VC++Files/winmysqladmin/images/mysql-07.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/mysql-17.bmp b/VC++Files/winmysqladmin/images/mysql-17.bmp deleted file mode 100644 index 0291c804006..00000000000 Binary files a/VC++Files/winmysqladmin/images/mysql-17.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/mysql.BMP b/VC++Files/winmysqladmin/images/mysql.BMP deleted file mode 100644 index ed5c7f9051f..00000000000 Binary files a/VC++Files/winmysqladmin/images/mysql.BMP and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/red.ico b/VC++Files/winmysqladmin/images/red.ico deleted file mode 100644 index b28288d576e..00000000000 Binary files a/VC++Files/winmysqladmin/images/red.ico and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/red22.BMP b/VC++Files/winmysqladmin/images/red22.BMP deleted file mode 100644 index a35052afa01..00000000000 Binary files a/VC++Files/winmysqladmin/images/red22.BMP and /dev/null differ diff --git a/VC++Files/winmysqladmin/images/see.bmp b/VC++Files/winmysqladmin/images/see.bmp deleted file mode 100644 index 72fb2c50ec6..00000000000 Binary files a/VC++Files/winmysqladmin/images/see.bmp and /dev/null differ diff --git a/VC++Files/winmysqladmin/initsetup.cpp b/VC++Files/winmysqladmin/initsetup.cpp deleted file mode 100644 index 0a25b8cb79c..00000000000 --- a/VC++Files/winmysqladmin/initsetup.cpp +++ /dev/null @@ -1,40 +0,0 @@ -//--------------------------------------------------------------------------- -#include -#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); -} -//--------------------------------------------------------------------------- diff --git a/VC++Files/winmysqladmin/initsetup.h b/VC++Files/winmysqladmin/initsetup.h deleted file mode 100644 index 28f575198e3..00000000000 --- a/VC++Files/winmysqladmin/initsetup.h +++ /dev/null @@ -1,38 +0,0 @@ -//--------------------------------------------------------------------------- -#ifndef initsetupH -#define initsetupH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -#include -//--------------------------------------------------------------------------- -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 diff --git a/VC++Files/winmysqladmin/main.cpp b/VC++Files/winmysqladmin/main.cpp deleted file mode 100644 index 150bc669c74..00000000000 --- a/VC++Files/winmysqladmin/main.cpp +++ /dev/null @@ -1,2531 +0,0 @@ -//--------------------------------------------------------------------------- -#include -#pragma hdrstop - -#include "main.h" -#include "initsetup.h" -#include "db.h" - -//--------------------------------------------------------------------------- -#pragma package(smart_init) -#pragma resource "*.dfm" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "mysql.h" -#include - -TForm1 *Form1; -bool i_start, NT; -bool IsForce = false; -bool IsVariables = false; -bool IsProcess = false ; -bool IsDatabases = false; -bool new_line = 0; -bool ya = true; -bool yy = true; -bool rinit = false; -AnsiString vpath; -AnsiString vip; -MYSQL_RES *res_1; -static unsigned long q = 0; -bool preport = false; -bool treport = false; -bool ereport = false; -AnsiString mainroot; -bool IsMySQLNode = false; -MYSQL *MySQL; -//--------------------------------------------------------------------------- -__fastcall TForm1::TForm1(TComponent* Owner) - : TForm(Owner) -{ -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::FormCreate(TObject *Sender) -{ - i_start = true; - IsConnect = false; - if (ParamCount() > 0){ - if (ParamStr(1) == "-h" || ParamStr(1) == "h" ) { - ShowHelp(); Application->Terminate(); } - else if (ParamStr(1) == "-w" || ParamStr(1) == "w") { - i_start = false; ContinueLoad(); } - } - else { - ContinueLoad(); Hide(); GetServerOptions(); } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::DrawItem(TMessage& Msg) -{ - IconDrawItem((LPDRAWITEMSTRUCT)Msg.LParam); - TForm::Dispatch(&Msg); -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::MyNotify(TMessage& Msg) -{ - POINT MousePos; - - switch(Msg.LParam) { - case WM_RBUTTONUP: - if (GetCursorPos(&MousePos)){ - PopupMenu1->PopupComponent = Form1; SetForegroundWindow(Handle); - PopupMenu1->Popup(MousePos.x, MousePos.y);} - else Show(); - break; - case WM_LBUTTONUP: - if (GetCursorPos(&MousePos)){ - PopupMenu1->PopupComponent = Form1; SetForegroundWindow(Handle); - PopupMenu1->Popup(MousePos.x, MousePos.y); } - - ToggleState(); - break; - default: - break; } - - TForm::Dispatch(&Msg); -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TrayMessage(DWORD dwMessage) -{ - NOTIFYICONDATA tnd; - PSTR pszTip; - - pszTip = TipText(); - - tnd.cbSize = sizeof(NOTIFYICONDATA); - tnd.hWnd = Handle; - tnd.uID = IDC_MYICON; - tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; - tnd.uCallbackMessage = MYWM_NOTIFY; - - if (dwMessage == NIM_MODIFY){ - tnd.hIcon = IconHandle(); - if (pszTip)lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); - else tnd.szTip[0] = '\0'; } - else { tnd.hIcon = NULL; tnd.szTip[0] = '\0'; } - - return (Shell_NotifyIcon(dwMessage, &tnd)); -} -//--------------------------------------------------------------------------- -HANDLE __fastcall TForm1::IconHandle(void) -{ - - if (!NT){ - if (MySQLSignal()){Image3->Visible = false; Image2->Visible = true; - return (Image2->Picture->Icon->Handle); } - else {Image2->Visible = false; Image3->Visible = true; - return (Image3->Picture->Icon->Handle); } - } - else { - if (TheServiceStatus()){Image3->Visible = false; Image2->Visible = true; - return (Image2->Picture->Icon->Handle); } - - else if (MySQLSignal()){Image3->Visible = false; Image2->Visible = true; - return (Image2->Picture->Icon->Handle); } - else {Image2->Visible = false; Image3->Visible = true; - return (Image3->Picture->Icon->Handle); } - } - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::ToggleState(void) -{ - - TrayMessage(NIM_MODIFY); - if (!NT){ - if (MySQLSignal()){SSW9->Caption = "ShutDown the Server"; - Image3->Visible = false; Image2->Visible = true; } - else {SSW9->Caption = "Start the Server"; - Image2->Visible = false; Image3->Visible = true; } - } - else { - if (TheServiceStart()) { - Standa->Enabled = false; - if (TheServiceStatus()) {RService->Enabled = false; - StopS->Enabled = true; - StopS->Caption = "Stop the Service"; - Image3->Visible = false; - Image2->Visible = true; } - else {RService->Enabled = true; - StopS->Enabled = true; - RService->Caption = "Remove the Service"; - StopS->Caption = "Start the Service"; - Image2->Visible = false; - Image3->Visible = true; } - } - else { - Standa->Enabled = true; - StopS->Enabled = false; - if (MySQLSignal()) { - RService->Enabled = false; - Standa->Caption = "ShutDown the Server Standalone"; - Image3->Visible = false; - Image2->Visible = true; } - - else { - RService->Enabled = true; - RService->Caption = "Install the Service"; - Standa->Caption = "Start the Server Standalone"; - Image2->Visible = false; - Image3->Visible = true; } - - } - - - } - -} -//--------------------------------------------------------------------------- -PSTR __fastcall TForm1::TipText(void) -{ - char* status = StatusLine->SimpleText.c_str(); - return status; - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::WMQueryEndSession(TWMQueryEndSession &msg) -{ - - - if (!NT) { - - if (MySQLSignal()){ - StatusLine->SimpleText = "Shutdown in progress....."; - Show(); Shutd(); msg.Result = 1; } - else { - StatusLine->SimpleText = "The Server already is down......"; - Show(); msg.Result = 1; Close(); } - } - else { - - Show(); - if (!TheServiceStart()) { if (MySQLSignal()) Shutd(); } - msg.Result = 1; - } - -} - -//--------------------------------------------------------------------------- -LRESULT IconDrawItem(LPDRAWITEMSTRUCT lpdi) -{ - HICON hIcon; - - hIcon = (HICON)LoadImage(g_hinst, MAKEINTRESOURCE(lpdi->CtlID), IMAGE_ICON, - 16, 16, 0); - if (!hIcon) - return(false); - - DrawIconEx(lpdi->hDC, lpdi->rcItem.left, lpdi->rcItem.top, hIcon, - 16, 16, 0, NULL, DI_NORMAL); - - return(true); -} -//--------------------------------------------------------------------------- -AnsiString __fastcall TForm1::TheComputer() -{ - AnsiString theword; - DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1; - char szBuf[MAX_COMPUTERNAME_LENGTH + 1]; - szBuf[0] = '\0'; - - GetComputerName(szBuf, &dwSize); - theword = (AnsiString) szBuf; - delete [] szBuf; - return theword; - -} -//--------------------------------------------------------------------------- -AnsiString __fastcall TForm1::TheOS() -{ - AnsiString theword; - OSVERSIONINFO info; - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&info); - - switch (info.dwPlatformId) - { - case VER_PLATFORM_WIN32s: - NT = false; - theword = "Win32s detected"; - break; - case VER_PLATFORM_WIN32_WINDOWS: - NT = false; - theword = "Win 95 or Win 98 detected"; - break; - case VER_PLATFORM_WIN32_NT: - NT = true; - theword = "Windows NT detected"; - break; - } - return theword; -} -///--------------------------------------------------------------------------- -AnsiString __fastcall TForm1::TheUser() -{ - AnsiString theword; - DWORD dwSize = 0; - - GetUserName(NULL, &dwSize); - - char *szBuf = new char[dwSize]; - szBuf[0] = '\0'; - - GetUserName(szBuf, &dwSize); - theword = (AnsiString) szBuf; - delete [] szBuf; - return theword; - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::TakeIP(void) -{ - WORD wVersionRequested; - WSADATA WSAData; - wVersionRequested = MAKEWORD(1,1); - WSAStartup(wVersionRequested,&WSAData); - - hostent *P; - char s[128]; - in_addr in; - char *P2; - gethostname(s, 128); - P = gethostbyname(s); - - Memo2->Lines->Clear(); - Memo2->Lines->Add((AnsiString)P->h_name); - mainroot = P->h_name; - in.S_un.S_un_b.s_b1 = P->h_addr_list[0][0]; - in.S_un.S_un_b.s_b2 = P->h_addr_list[0][1]; - in.S_un.S_un_b.s_b3 = P->h_addr_list[0][2]; - in.S_un.S_un_b.s_b4 = P->h_addr_list[0][3]; - P2 = inet_ntoa(in); - vip = P2; - mainroot += " ( " + (AnsiString)P2 + " )"; - Memo2->Lines->Add(P2); - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetmemStatus(void) -{ - MEMORYSTATUS ms; - ms.dwLength = sizeof(MEMORYSTATUS); - GlobalMemoryStatus(&ms); - - Edit2->Text = AnsiString((double)ms.dwTotalPhys / 1024000.0) + " MB RAM"; -} - -//--------------------------------------------------------------------------- -void __fastcall TForm1::ShowHelp(void) -{ - Application->MessageBox("Usage: WinMySQLadmin.EXE [OPTIONS]\n\n-w Run the tool without start the Server.\n-h Shows this message and exit ", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::ContinueLoad(void) -{ - OS->Text = TheOS(); - Localhost->Text = TheComputer(); - Localuser->Text = TheUser(); - GetmemStatus(); - ClearBox(); - TakeIP(); - MyODBC(); - - - IsMyIniUp(); - - if (!NT) { WinNT->Enabled = false; NtVer->Enabled = false; Win9->Enabled = true; } - else { WinNT->Enabled = true; Win9->Enabled = false; } - - if (i_start) - { - // NT never is started from the prompt - if ((!NT) && (!MySQLSignal())) mysqldstart(); - { - TrayMessage(NIM_MODIFY); - SeekErrFile(); - } - } - Hide(); - -} - -//--------------------------------------------------------------------------- -void __fastcall TForm1::MyODBC(void) -{ - - TRegistry *Registry = new TRegistry(); - Memo3->Lines->Clear(); - - try - { - Registry->RootKey = HKEY_LOCAL_MACHINE; - // the basic data of myodbc - if (Registry->OpenKey("Software\\ODBC\\ODBCINST.INI\\MySQL", false)) - { - Memo3->Lines->Add("Driver Version\t" + Registry->ReadString("DriverODBCVer")); - Memo3->Lines->Add("Driver\t\t" + Registry->ReadString("Driver")); - Memo3->Lines->Add("API Level\t\t" + Registry->ReadString("APILevel")); - Memo3->Lines->Add("Setup\t\t" + Registry->ReadString("Setup")); - Memo3->Lines->Add("SQL Level\t" + Registry->ReadString("SQLLevel")); - } - else - Memo3->Lines->Add("Not Found"); - - } - catch (...) - { - delete Registry; - } - Memo3->Enabled = false; -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::IsMyIniUp(void) -{ - // we see if the my.ini is Up - AnsiString asFileName = FileSearch("my.ini", TheWinDir()); - if (asFileName.IsEmpty()) - { - IsForce = true; - i_start = false; - QuickSearch(); - } - else - { - Memo1->Enabled = true; - Memo1->Lines->Clear(); - FillMyIni(); - GetBaseDir(); - } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::QuickSearch(void) -{ - AnsiString asFileName = FileSearch("mysql.exe", "c:/mysql/bin"); - if (!asFileName.IsEmpty()) - BaseDir->Text = "c:/mysql"; -} -//--------------------------------------------------------------------------- -AnsiString __fastcall TForm1::TheWinDir() -{ - AnsiString WinDir; - UINT BufferSize = GetWindowsDirectory(NULL,0); - WinDir.SetLength(BufferSize+1); - GetWindowsDirectory(WinDir.c_str(),BufferSize); - char* dirw = WinDir.c_str(); - return dirw ; - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::FillMyIni(void) -{ - Memo1->Lines->LoadFromFile(TheWinDir() + "\\my.ini"); - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetBaseDir(void) -{ - - char drive[_MAX_DRIVE]; - char dir[_MAX_DIR]; - char file[_MAX_FNAME]; - char ext[_MAX_EXT]; - - - TIniFile *pIniFile = new - TIniFile(TheWinDir() + "\\my.ini"); - - BaseDir->Text = pIniFile->ReadString("mysqld","basedir","") ; - AnsiString lx = pIniFile->ReadString("WinMySQLadmin","Server","") ; - _splitpath((lx).c_str(),drive,dir,file,ext); - AnsiString lw = (AnsiString) file + ext; - - if ( lw == "mysqld-shareware.exe") {ShareVer->Checked = true;} - if ( lw == "mysqld.exe") {MysqldVer->Checked = true;} - if ( lw == "mysqld-opt.exe") {OptVer->Checked = true;} - if ( lw == "mysqld-nt.exe") {NtVer->Checked = true;} - - delete pIniFile; - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::Showme1Click(TObject *Sender) -{ - if(Showme1->Caption == "Show me") { TrayMessage(NIM_DELETE); - Showme1->Caption = "Hide me"; Show(); } - else { TrayMessage(NIM_ADD); TrayMessage(NIM_MODIFY); - Showme1->Caption = "Show me"; Hide(); } -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::MySQLSignal() -{ - HANDLE hEventShutdown; - hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown"); - - if(hEventShutdown) - { - CloseHandle(hEventShutdown); - return true; - } - else - { - CloseHandle(hEventShutdown); - return false; - } - -} - -//--------------------------------------------------------------------------- -bool __fastcall TForm1::mysqldstart() -{ - memset(&pi, 0, sizeof(pi)); - memset(&si, 0, sizeof(si)); - si.cb = sizeof(si); - si.dwFlags |= STARTF_USESHOWWINDOW; - si.wShowWindow |= SW_SHOWNORMAL; - - - TIniFile *pIniFile = new - TIniFile(TheWinDir() + "\\my.ini"); - - if (NT) - vpath = pIniFile->ReadString("WinMySQLadmin","Server","") + " --standalone\0" ; - else - vpath = pIniFile->ReadString("WinMySQLadmin","Server","") + "\0" ; - - if ( ! CreateProcess(0,vpath.c_str(), 0, 0, 0, 0, 0, 0, &si,&pi)) - { - TrayMessage(NIM_MODIFY); - return false; - } - else - { - TrayMessage(NIM_MODIFY); - return true; - - } - -} - -//--------------------------------------------------------------------------- -bool __fastcall TForm1::SeekErrFile() -{ - Memo4->Enabled = true; - Memo4->Lines->Clear(); - AnsiString asFileName = FileSearch("mysql.err", BaseDir->Text + "/data"); - if (!asFileName.IsEmpty()) - { - FName = BaseDir->Text + "/data/mysql.err"; - ifstream in((FName).c_str()); - in.seekg(0, ios::end); - string s, line; - deque v; - deque lines; - streampos sp = in.tellg(); - if (sp <= 1000) - in.seekg(0, ios::beg); - else - { - in.seekg(0, ios::beg); - in.seekg((sp - 1000)); - } - - do { - lines.push_back(line); - }while (getline(in, line)); - - - if( lines.size() <= 15) - { - deque::reverse_iterator r; - for(r = lines.rbegin(); r != lines.rend() ; r++) - { - if (ereport) - Memo5->Lines->Add((*r).c_str()); - Memo4->Lines->Add((*r).c_str()); - - } - } - else - { - int k = 0; - deque::reverse_iterator r; - for(r = lines.rbegin(); r != lines.rend(); r++) - { - if (ereport) - Memo5->Lines->Add((*r).c_str()); - Memo4->Lines->Add((*r).c_str()); - if (++k >= 15) { break;} - } - } - in.close(); - return true; - } - else - return false; - -} - -//--------------------------------------------------------------------------- -void __fastcall TForm1::Timer1Timer(TObject *Sender) -{ - Showme1->Caption = "Show me"; - TrayMessage(NIM_ADD); - TrayMessage(NIM_MODIFY); - Hide(); - if (IsForce) {Form2->Show();} - Timer1->Enabled = false; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetServerFile() -{ - - AnsiString FileName; - - if(!NT) { - FileName = FileSearch("mysqld-opt.exe", ExtractFilePath(Application->ExeName)); - if (FileName.IsEmpty()) FileName = FileSearch("mysqld.exe", ExtractFilePath(Application->ExeName)); - if (FileName.IsEmpty()) FileName = FileSearch("mysqld-shareware.exe", ExtractFilePath(Application->ExeName)); - - if (!FileName.IsEmpty()){ - if ( FileName == "mysqld-opt.exe") {OptVer->Checked = true;} - if ( FileName == "mysqld.exe") {MysqldVer->Checked= true;} - if ( FileName == "mysqld-shareware.exe") {ShareVer->Checked= true;} } - - } - else { - - FileName = FileSearch("mysqld-nt.exe", ExtractFilePath(Application->ExeName)); - if (FileName.IsEmpty()) FileName = FileSearch("mysqld.exe", ExtractFilePath(Application->ExeName)); - if (FileName.IsEmpty()) FileName = FileSearch("mysqld-shareware.exe", ExtractFilePath(Application->ExeName)); - - if (!FileName.IsEmpty()) { - if ( FileName == "mysqld-nt.exe") {NtVer->Checked = true;} - if ( FileName == "mysqld.exe") {MysqldVer->Checked= true;} - if ( FileName == "mysqld-shareware.exe") {ShareVer->Checked= true;} } - - } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::CreateMyIniFile(void) -{ - char szFileName[6]; - int iFileHandle; - AnsiString jk; - - Memo1->Enabled = true; - Memo1->Lines->Clear(); - strcpy(szFileName,"\\my.ini"); - iFileHandle = FileCreate(TheWinDir() + szFileName ); - - jk = "#This File was made using the WinMySQLadmin 1.0 Tool\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#" + Now() + "\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#Uncomment or Add only the keys that you know how works.\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#Read the MySQL Manual for instructions\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - - jk = "[mysqld]\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "basedir=" + TheDir() + "\n"; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#bind-address=" + vip + "\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#datadir=" + TheDir() + "/data\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#language=" + TheDir() + "/share/your language directory\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#delay-key-write-for-all-tables\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#log-long-format\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#slow query log=#\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#tmpdir=#\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#ansi\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#new\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#port=3306\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#safe\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#skip-name-resolve\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#skip-networking\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#skip-new\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#skip-host-cache\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable = key_buffer=16M\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable = max_allowed_packet=1M\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable = thread_stack=128K\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable = flush_time=1800\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "[mysqldump]\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#quick\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable = max_allowed_packet=16M\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "[mysql]\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#no-auto-rehash\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "[isamchk]\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "#set-variable= key=16M\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "[WinMySQLadmin]\n\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - - if (ShareVer->Checked) { jk = "Server=" + TheDir() + "/bin/mysqld-shareware.exe\n\n";} - if (MysqldVer->Checked) {jk = "Server=" + TheDir() + "/bin/mysqld.exe\n\n";} - if (OptVer->Checked) {jk = "Server=" + TheDir() + "/bin/mysqld-opt.exe\n\n";} - if (NtVer->Checked) {jk = "Server=" + TheDir() + "/bin/mysqld-nt.exe\n\n";} - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "user=" + Form2->Edit1->Text + "\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - jk = "password=" + Form2->Edit2->Text + "\n" ; - FileWrite(iFileHandle, (jk).c_str(), (jk).Length()); - - FileClose(iFileHandle); - FillMyIni(); - -} - -//--------------------------------------------------------------------------- -bool __fastcall TForm1::CreatingShortCut() -{ - // Where is The Start Menu in this Machine ? - LPITEMIDLIST pidl; - LPMALLOC pShellMalloc; - char szDir[MAX_PATH + 16]; - AnsiString file; - AnsiString jk = "\\WinMySQLadmin.lnk" ; - - if(SUCCEEDED(SHGetMalloc(&pShellMalloc))) - { - if(SUCCEEDED(SHGetSpecialFolderLocation(NULL, - CSIDL_STARTUP, &pidl))) - { - if(!SHGetPathFromIDList(pidl, szDir)) - { - pShellMalloc->Release(); - pShellMalloc->Free(pidl); - return false; - } - - pShellMalloc->Free(pidl); - } - - pShellMalloc->Release(); - StrCat(szDir, jk.c_str()); - } - - // the create - - IShellLink* pLink; - IPersistFile* pPersistFile; - - if(SUCCEEDED(CoInitialize(NULL))) - { - if(SUCCEEDED(CoCreateInstance(CLSID_ShellLink, NULL, - CLSCTX_INPROC_SERVER, - IID_IShellLink, (void **) &pLink))) - { - - pLink->SetPath((ExtractFilePath(Application->ExeName) + "WinMySQLadmin.exe").c_str()); - pLink->SetDescription("WinMySQLadmin Tool"); - pLink->SetShowCmd(SW_SHOW); - - if(SUCCEEDED(pLink->QueryInterface(IID_IPersistFile, - (void **)&pPersistFile))) - { - - WideString strShortCutLocation(szDir); - pPersistFile->Save(strShortCutLocation.c_bstr(), TRUE); - pPersistFile->Release(); - } - pLink->Release(); - } - - CoUninitialize(); - } - - - return true; -} - -//--------------------------------------------------------------------------- -AnsiString __fastcall TForm1::TheDir() -{ - AnsiString buffer; - char s[_MAX_PATH + 1]; - - StrCopy(s, ( BaseDir->Text).c_str()) ; - - for (int i = 0; s[i] != NULL; i++) - if (s[i] != '\\') - buffer += s[i]; - else - buffer += "/"; - - return buffer; - -} - -//--------------------------------------------------------------------------- -void __fastcall TForm1::SpeedButton1Click(TObject *Sender) -{ - Application->HelpCommand(HELP_FINDER,0); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Timer2Timer(TObject *Sender) -{ - ToggleState(); - -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServiceStart() -{ - bool thatok; - char *SERVICE_NAME = "MySql"; - SC_HANDLE myService, scm; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS | GENERIC_WRITE); - if (scm) - { - myService = OpenService(scm, SERVICE_NAME, SERVICE_ALL_ACCESS); - if (myService) - thatok = true; - else - thatok = false; - } - CloseServiceHandle(myService); - CloseServiceHandle(scm); - return thatok; -} - -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServicePause() -{ - - bool thatok; - char *SERVICE_NAME = "MySql"; - SC_HANDLE myService, scm; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS); - - if (scm) - { - myService = OpenService(scm, SERVICE_NAME, SERVICE_ALL_ACCESS); - if (myService) - { - // stop the service - if (IsConnect) - { - mysql_kill(MySQL,mysql_thread_id(MySQL)); - StatusLine->SimpleText = ""; - q = 0; - } - - - SERVICE_STATUS ss; - thatok = ControlService(myService, - SERVICE_CONTROL_STOP, - &ss); - - } - else - thatok = false; - } - else - thatok = false; - - CloseServiceHandle(myService); - CloseServiceHandle(scm); - return thatok; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServiceResume() -{ - - bool thatok; - char *SERVICE_NAME = "MySql"; - SC_HANDLE myService, scm; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS); - - if (scm) - { - myService = OpenService(scm, SERVICE_NAME, SERVICE_ALL_ACCESS); - if (myService) - { - // start the service - - thatok = StartService(myService, 0, NULL); - } - else - thatok = false; - } - else - thatok = false; - - CloseServiceHandle(myService); - CloseServiceHandle(scm); - return thatok; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServiceStatus() -{ - bool thatok; - bool k; - char *SERVICE_NAME = "MySql"; - SC_HANDLE myService, scm; - SERVICE_STATUS ss; - DWORD dwState = 0xFFFFFFFF; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS); - - if (scm) - { - myService = OpenService(scm, SERVICE_NAME, SERVICE_ALL_ACCESS); - if (myService) - { - memset(&ss, 0, sizeof(ss)); - k = QueryServiceStatus(myService,&ss); - if (k) - { - dwState = ss.dwCurrentState; - if (dwState == SERVICE_RUNNING) - thatok = true; - } - else - thatok = false; - } - else - thatok = false; - } - else - thatok = false; - - CloseServiceHandle(myService); - CloseServiceHandle(scm); - return thatok; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServiceCreate() - -{ - bool thatok; - char *SERVICE_NAME = "MySql"; - char *szFullPath = vpath.c_str(); - SC_HANDLE myService, scm; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS); - - if (scm) - { myService = CreateService( - scm, - SERVICE_NAME, - SERVICE_NAME, - SERVICE_ALL_ACCESS, - SERVICE_WIN32_OWN_PROCESS, - SERVICE_AUTO_START , - SERVICE_ERROR_NORMAL, - szFullPath, - NULL, - NULL, - NULL, - NULL, - NULL); - - if (myService) - thatok = true; - else - thatok = false; - - } - - CloseServiceHandle(myService); - CloseServiceHandle(scm); - return thatok; - -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Swin9Click(TObject *Sender) -{ - if(Application->MessageBox("Shutdown this tool", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - Close(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SSW9Click(TObject *Sender) -{ - if (MySQLSignal()) - { - if(Application->MessageBox("Shutdown the MySQL Server ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - - if (Shutd()) - { - IsConnect = false; - IsVariables = false; - IsProcess = false; - IsDatabases = false; - ya = false; - ClearBox(); - Sleep(500); - TrayMessage(NIM_MODIFY); - - } - else - Application->MessageBox("Fails to Shutdown the Server", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } - else - { - if(Application->MessageBox("Start the MySQL Server ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (mysqldstart()) - { - TrayMessage(NIM_MODIFY); - ya = true; - } - else - Application->MessageBox("Fails to Start the Server", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - - } - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::ShutDownBoth1Click(TObject *Sender) -{ - if (MySQLSignal()) - { - if(Application->MessageBox("Shutdown the MySQL Server and this tool ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - - if (Shutd()) - Close(); - else - { - Application->MessageBox("Fails to Shutdown the Server", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - - } - } - } - else - if(Application->MessageBox("Shutdown this tool ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - Close(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::ShutDownthisTool1Click(TObject *Sender) -{ - if(Application->MessageBox("Shutdown this tool ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - Close(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::StopSClick(TObject *Sender) -{ - AnsiString theWarning; - theWarning = "Are you sure to stop the Service ?\n\nAll the connections will be loss !" ; - if (TheServiceStatus()) - { - if(Application->MessageBox(theWarning.c_str(), "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (TheServicePause()) - { - TrayMessage(NIM_MODIFY); - IsConnect = false; - IsVariables = false; - IsProcess = false; - IsDatabases = false; - ya = false; - ClearBox(); - - } - else - Application->MessageBox("Fails to stop the Service", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - - } - } - else - { - if(Application->MessageBox("Start the Service Manager for the MySQL Server ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (TheServiceResume()) - { - ya = true; - TrayMessage(NIM_MODIFY); - } - else - Application->MessageBox("Fails to start the Service", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::RServiceClick(TObject *Sender) -{ - if (TheServiceStart()) - { - if(Application->MessageBox("Remove the MySQL Server service ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (!TheServiceRemove()) - Application->MessageBox("Fails to Remove The MySQL Server Service", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } - else - { - if(Application->MessageBox("Install the MySQL Server service ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (!TheServerPath()) - Application->MessageBox("Please create first the my.ini setup", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - else - { - if (!TheServiceCreate()) - Application->MessageBox("Fails to Install The MySQL Server Service", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - - } - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::StandaClick(TObject *Sender) -{ - if (MySQLSignal()) - { - if(Application->MessageBox("Shutdown the MySQL Server ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (Shutd()) - { - IsConnect = false; - IsVariables = false; - IsProcess = false; - IsDatabases = false; - ya = false; - ClearBox(); - Sleep(500); - TrayMessage(NIM_MODIFY); - - } - else - Application->MessageBox("Fails to Shutdown the Server", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } - else - { - if(Application->MessageBox("Start the MySQL Server ", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (mysqldstart()) - { - StatusLine->SimpleText = ""; - TrayMessage(NIM_MODIFY); - - } - else - Application->MessageBox("Fails to Start the Server", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::Shutd() -{ - // from Irena - HANDLE hEventShutdown; - hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown"); - - if (IsConnect) - { - mysql_kill(MySQL,mysql_thread_id(MySQL)); - mysql_shutdown(MySQL, SHUTDOWN_DEFAULT); - StatusLine->SimpleText = ""; - - } - - q = 0; - - - if(hEventShutdown) - { - SetEvent(hEventShutdown); - CloseHandle(hEventShutdown); - TrayMessage(NIM_MODIFY); - IsConnect = false; - return true; - } - else - { - TrayMessage(NIM_MODIFY); - return false; - } - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::ClearBox(void) -{ - - st22->Text = ""; - st23->Text = ""; - st24->Text = ""; - st25->Text = ""; - st26->Text = ""; - st27->Text = ""; - st28->Text = ""; - st29->Text = ""; - Edit3->Text = ""; - Edit4->Text = ""; - Edit5->Text = ""; - Edit6->Text = ""; - -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServiceRemove() -{ - bool thatok; - char *SERVICE_NAME = "MySql"; - SC_HANDLE myService, scm; - scm = OpenSCManager(0, 0, SC_MANAGER_ALL_ACCESS); - if (scm) - { - myService = OpenService(scm, SERVICE_NAME, SERVICE_ALL_ACCESS); - if (myService) - { - if(DeleteService(myService)) - { - CloseServiceHandle(myService); - CloseServiceHandle(scm); - thatok = true; - } - else - { - CloseServiceHandle(myService); - CloseServiceHandle(scm); - thatok = false; - } - - } - else - { - CloseServiceHandle(myService); - CloseServiceHandle(scm); - thatok = false; - } - } - else - { - thatok = false; - CloseServiceHandle(scm); - } - - return thatok; - -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::TheServerPath() -{ - - TIniFile *pIniFile = new - TIniFile(TheWinDir() + "\\my.ini"); - - vpath = pIniFile->ReadString("WinMySQLadmin","Server","") ; - delete pIniFile; - if (vpath.IsEmpty()) - return false; - else - return true; - -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button5Click(TObject *Sender) -{ - if (!SeekErrFile()) - Application->MessageBox("Fails to find mysql.err", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::IsMySQLInit(void) -{ - AnsiString theCommand; - char *host = NULL,*password=0,*user=0 ; - TIniFile *pIniFile = new - TIniFile(TheWinDir() + "\\my.ini"); - - AnsiString MyUser = pIniFile->ReadString("WinMySQLadmin","user","") ; - AnsiString MyPass = pIniFile->ReadString("WinMySQLadmin","password","") ; - - delete pIniFile; - - - if (!MyUser.IsEmpty() && MyUser.Length() && !MyPass.IsEmpty() && MyPass.Length()) - { - if (!IsConnect) - { - - MySQL = mysql_init(MySQL); - if (mysql_real_connect(MySQL, "localhost",(MyUser).c_str(), (MyPass).c_str() , 0, 0, NULL, 0)) - IsConnect = true; - else - { - if(mysql_real_connect(MySQL,host,user,password , 0, 0, NULL, 0)) - { - IsConnect = true; - theCommand = "GRANT ALL PRIVILEGES ON *.* TO "; - theCommand += "'" + MyUser + "' @localhost IDENTIFIED BY "; - theCommand += "'" + MyPass + "' with GRANT OPTION"; - char* los = theCommand.c_str(); - if(!mysql_query(MySQL, los )) - StatusLine->SimpleText = " "; - } - - } - MySQL->reconnect= 1; - - } - - } - else - { - if (!IsConnect) - { - MySQL = mysql_init(MySQL); - if(mysql_real_connect(MySQL,host,user,password , 0, 0, NULL, 0)) - IsConnect = true; - MySQL->reconnect= 1; - } - } -} - -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Timer3Timer(TObject *Sender) -{ - if ((NT) && TheServiceStatus()) {IsMySQLInit(); } - - if ((NT) && !TheServiceStatus() && MySQLSignal()) {IsMySQLInit(); } - - if (!(NT) && MySQLSignal()) {IsMySQLInit(); } - - if (IsConnect) - { - GetServerStatus(); - if (!IsMySQLNode) - GetMainRoot(); - Extended->Enabled = true; - if (!IsProcess && !GetProcess()) - StatusLine->SimpleText = ""; - if (!IsVariables && !GetVariables()) - StatusLine->SimpleText = ""; - Timer3->Interval = 10000; - } - else - Extended->Enabled = false; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetServerStatus(void) -{ - - GetExtendedStatus(); - Edit3->Text = mysql_get_server_info(MySQL); - Edit4->Text = mysql_get_host_info(MySQL); - Edit5->Text = mysql_get_client_info(); - Edit6->Text = mysql_get_proto_info(MySQL); - - -} - -//--------------------------------------------------------------------------- -bool __fastcall TForm1::GetProcess() -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - int k = 0; - int therow = 1; - new_line=1; - - StringGrid2->RowCount= 2; - - if (!(res=mysql_list_processes(MySQL))) - { - return false; - } - - while ((row=mysql_fetch_row(res)) != 0) - { - mysql_field_seek(res,0); - StringGrid2->Cells[0][0] = "PID"; - StringGrid2->Cells[1][0] = "User"; - StringGrid2->Cells[2][0] = "Host"; - StringGrid2->Cells[3][0] = "DB"; - StringGrid2->Cells[4][0] = "Command"; - StringGrid2->Cells[5][0] = "Time"; - StringGrid2->Cells[6][0] = "State"; - StringGrid2->Cells[7][0] = "Info"; - for (i=0 ; i < mysql_num_fields(res); i++) - { - - if (k <= 6 ) - { - StringGrid2->Cells[k][therow] = row[i]; - k++; - } - else - { - - StringGrid2->Cells[(k)][therow] = row[i]; - k = 0; - therow++ ; - StringGrid2->RowCount++; - - } - - } - - } - - StringGrid2->RowCount--; - mysql_free_result(res); - StringGrid5->RowCount--; - IsProcess = true; - return true; - -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::GetVariables() -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - int k = 1; - new_line=1; - bool left = true; - AnsiString report; - StringGrid1->RowCount = 2; - if (mysql_query(MySQL,"show variables") || - !(res=mysql_store_result(MySQL))) - { - return false; - } - - while ((row=mysql_fetch_row(res)) != 0) - { - mysql_field_seek(res,0); - - StringGrid1->Cells[0][0] = "Variable Name"; - StringGrid1->Cells[1][0] = "Value"; - - - for (i=0 ; i < mysql_num_fields(res); i++) - { - - if (left) - { - if (treport) - report = GetString(row[i]); - StringGrid1->Cells[0][k++] = row[i]; - left = false; - } - else - { - if (treport) - Memo5->Lines->Add(report + row[i]); - StringGrid1->RowCount++; - StringGrid1->Cells[1][--k] = row[i]; - k++; - left = true; - } - - } - - } - - StringGrid1->RowCount--; - mysql_free_result(res); - IsVariables = true; - return true; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::nice_time(AnsiString buff) -{ - - unsigned long sec; - unsigned long tmp; - AnsiString mytime; - - sec = StrToInt(buff); - - if (sec >= 3600L*24) - { - tmp=sec/(3600L*24); - sec-=3600L*24*tmp; - - mytime = IntToStr(tmp); - if (tmp > 1) - mytime+= " days "; - else - mytime+= " day "; - - } - - if (sec >= 3600L) - { - tmp=sec/3600L; - sec-=3600L*tmp; - mytime += IntToStr(tmp); - if (tmp > 1) - mytime+= " hours "; - else - mytime+= " hour "; - } - if (sec >= 60) - { - tmp=sec/60; - sec-=60*tmp; - mytime += IntToStr(tmp); - mytime+= " min "; - - } - mytime += IntToStr(sec); - mytime+= " sec "; - st29->Text = mytime ; - return true; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::Button11Click(TObject *Sender) -{ - if (IsConnect) - { - if (GetVariables()) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button10Click(TObject *Sender) -{ - if (IsConnect) - { - if (GetProcess()) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button6Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_HOSTS)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button7Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_LOG)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button8Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_TABLES)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button2Click(TObject *Sender) -{ - Memo1->Enabled = true; - Memo1->Lines->Clear(); - AnsiString asFileName = FileSearch("my.ini", TheWinDir()); - if (asFileName.IsEmpty()) - Application->MessageBox("Don't found my.ini file on the Win Directory", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); - else - FillMyIni(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button3Click(TObject *Sender) -{ - TIniFile *pIniFile = new - TIniFile(TheWinDir() + "\\my.ini"); - - if (!Memo1->GetTextLen()) - Application->MessageBox("The Memo Box is Empty", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); - else - { - if(Application->MessageBox("Are you sure to write the modifications into My.ini file.", "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - Memo1->Lines->SaveToFile(TheWinDir() + "\\my.ini"); - - Memo1->Lines->Clear(); - Memo1->Enabled = true; - Memo1->Lines->Clear(); - if (NtVer->Checked) - pIniFile->WriteString("WinMySQLadmin","Server",TheDir() + "/bin/mysqld-nt.exe"); - if (MysqldVer->Checked == true) - pIniFile->WriteString("WinMySQLadmin","Server", TheDir() + "/bin/mysqld.exe"); - if (ShareVer->Checked) - pIniFile->WriteString("WinMySQLadmin","Server",TheDir() + "/bin/mysqld-shareware.exe"); - if (OptVer->Checked) - pIniFile->WriteString("WinMySQLadmin","Server", TheDir() + "/bin/mysqld-opt.exe"); - FillMyIni(); - Application->MessageBox("My.ini was modificated", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); - } - - } - delete pIniFile; - Memo1->Lines->Clear(); - FillMyIni(); - -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button1Click(TObject *Sender) -{ - if(CreatingShortCut()) - Application->MessageBox("The ShortCut on Start Menu was created", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); - else - Application->MessageBox("Fails the Operation of Create the ShortCut", "WinMySQLadmin 1.0", MB_OK |MB_ICONINFORMATION); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton2Click(TObject *Sender) -{ - BROWSEINFO info; - char szDir[MAX_PATH]; - char szDisplayName[MAX_PATH]; - LPITEMIDLIST pidl; - LPMALLOC pShellMalloc; - - - if(SHGetMalloc(&pShellMalloc) == NO_ERROR) - { - - memset(&info, 0x00,sizeof(info)); - info.hwndOwner = Handle; - info.pidlRoot = 0; - info.pszDisplayName = szDisplayName; - info.lpszTitle = "Search MySQL Base Directory"; - info.ulFlags = BIF_RETURNONLYFSDIRS; - info.lpfn = 0; - - pidl = SHBrowseForFolder(&info); - - if(pidl) - { - - if(SHGetPathFromIDList(pidl, szDir)) {BaseDir->Text = szDir; } - - pShellMalloc->Free(pidl); - } - pShellMalloc->Release(); - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::Button4Click(TObject *Sender) -{ - if (IsConnect) - { - Memo3->Lines->Add(mysql_stat(MySQL)); - } -} -//--------------------------------------------------------------------------- - - -void __fastcall TForm1::SpeedButton3Click(TObject *Sender) -{ - if(Showme1->Caption == "Show me") { TrayMessage(NIM_DELETE); - Showme1->Caption = "Hide me"; Show(); } - else { TrayMessage(NIM_ADD); TrayMessage(NIM_MODIFY); - Showme1->Caption = "Show me"; Hide(); } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::ExtendedClick(TObject *Sender) -{ -if (ya) - { - Extended->Caption = "Start Extended Server Status"; - ya = false; - ClearBox(); - } -else - { - Extended->Caption = "Stop Extended Server Status"; - ya = true; - } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetServerOptions(void) -{ -AnsiString FileName; -FileName = FileSearch("mysqld-opt.exe", ExtractFilePath(Application->ExeName)); -if (FileName.IsEmpty()) {OptVer->Enabled = false; } - -FileName = FileSearch("mysqld-shareware.exe", ExtractFilePath(Application->ExeName)); -if (FileName.IsEmpty()) {ShareVer->Enabled = false; } - -FileName = FileSearch("mysqld.exe", ExtractFilePath(Application->ExeName)); -if (FileName.IsEmpty()) {MysqldVer->Enabled = false; } - -FileName = FileSearch("mysqld-nt.exe", ExtractFilePath(Application->ExeName)); -if (FileName.IsEmpty()) {NtVer->Enabled = false; } - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::GetReportServer(void) -{ - - AnsiString strspace; - Memo5->Lines->Clear(); - Memo5->Lines->Add("This Report was made using the WinMySQLadmin 1.0 Tool"); - Memo5->Lines->Add(""); - Memo5->Lines->Add(Now()); - Memo5->Lines->Add(""); - - preport = true; - Memo5->Lines->Add(""); - Memo5->Lines->Add("Server Status Values"); - Memo5->Lines->Add(""); - Memo5->Lines->Add(GetString("Server Info") + mysql_get_server_info(MySQL)); - Memo5->Lines->Add(GetString("Host Info") + mysql_get_host_info(MySQL)); - Memo5->Lines->Add(GetString("Client Info") + mysql_get_client_info()); - Memo5->Lines->Add(GetString("Proto Info") + mysql_get_proto_info(MySQL)); - GetExtendedStatus(); - preport = false; - treport = true; - Memo5->Lines->Add(""); - Memo5->Lines->Add("Variables Values"); - Memo5->Lines->Add(""); - GetVariables(); - treport = false; - ereport = true; - Memo5->Lines->Add(""); - Memo5->Lines->Add("Last Lines from Err File"); - Memo5->Lines->Add(""); - SeekErrFile(); - ereport = false; - -} - -void __fastcall TForm1::SpeedButton4Click(TObject *Sender) -{ - if(IsConnect) - GetReportServer(); - else - Application->MessageBox("The Server must be connected", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton5Click(TObject *Sender) -{ - AnsiString PathName; - SaveFileDialog->FileName = PathName; - if (SaveFileDialog->Execute() ){ - PathName= SaveFileDialog->FileName; - Caption = ExtractFileName(PathName); - Memo5->Lines->SaveToFile(PathName); - Memo5->Modified = false; - } -} -//--------------------------------------------------------------------------- -String __fastcall TForm1::GetString(String k) -{ - int i = 35 - k.Length(); - for (int y = 1 ; y <= i ;y++ ) - k+= " "; - return k ; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::SpeedButton6Click(TObject *Sender) -{ - PrinterSetupDialog1->Execute(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton7Click(TObject *Sender) -{ - AnsiString PathName; - if (PrintDialog1->Execute()){ - try { - Memo5->Print(PathName); - } - catch(...){ - Printer()->EndDoc(); - throw; - } - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton8Click(TObject *Sender) -{ - Memo5->CutToClipboard(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton9Click(TObject *Sender) -{ - Memo5->CopyToClipboard(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton10Click(TObject *Sender) -{ - - Memo5->PasteFromClipboard(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton11Click(TObject *Sender) -{ - Memo5->ClearSelection(); -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::SpeedButton12Click(TObject *Sender) -{ - Memo5->SelectAll(); -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::GetMainRoot() -{ - - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - AnsiString command; - - CleanGrid(); - CleanGridI(); - TakeIP(); - - MySQLNode = DBView->Items->Add(NULL, mainroot.UpperCase()); - MySQLNode->ImageIndex = 0; - - if (!(res=mysql_list_dbs(MySQL,"%"))) { return false; } - while ((row=mysql_fetch_row(res)) != 0) { - mysql_field_seek(res,0); - - for (i=0 ; i < mysql_num_fields(res); i++) - { - MySQLDbs = DBView->Items->AddChild(MySQLNode, row[i]); - MySQLDbs->ImageIndex = 1; - MySQLDbs->SelectedIndex = 1; - - - } - - } - - mysql_free_result(res); - MySQLNode->Expanded = true; - - - - - IsMySQLNode = true; - return true; - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::DeleteDatabaseSClick(TObject *Sender) -{ - AnsiString alert; - if (IsConnect) - { - if(DBView->Selected == MySQLNode ) - Application->MessageBox("Invalid database row selected.", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - else if ( DBView->Selected == NULL ) - Application->MessageBox("Invalid database row selected.", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - else - { - if (DBView->Selected->Text.UpperCase() == "MYSQL") - Application->MessageBox("You cann't use this tool to drop the MySQL Database.", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - else { - alert = "Are you sure to drop the < "; - alert+= DBView->Selected->Text.c_str(); - alert+= " > database."; - if(Application->MessageBox(alert.c_str(), "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - char* lese = DBView->Selected->Text.c_str(); - if (!mysql_drop_db(MySQL, lese )) - { - DBView->Items->Clear(); - GetMainRoot(); - } - else - Application->MessageBox("Fails to drop the Database.", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - } - } - } - } - else - Application->MessageBox("The Server must be connected", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); -} -//--------------------------------------------------------------------------- - bool __fastcall TForm1::IsDatabase(String Name) -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - AnsiString command; - - - CleanTree(); - command = "use "; - command+= Name.c_str(); - char* das = command.c_str(); - char* lis = Name.c_str(); - if (mysql_query(MySQL, das ) || - !(res=mysql_list_tables(MySQL,"%"))) - return false; - - MySQLNodeT = TableView->Items->Add(NULL, lis); - MySQLNodeT->ImageIndex = 1; - MySQLNodeT->SelectedIndex = 1; - while ((row=mysql_fetch_row(res)) != 0) { - mysql_field_seek(res,0); - - for (i=0 ; i < mysql_num_fields(res); i++) - { - - MySQLTbs = TableView->Items->AddChild(MySQLNodeT, row[i]); - MySQLTbs->ImageIndex = 2; - MySQLTbs->SelectedIndex = 2; - } - MySQLNodeT->Expanded = true; - } - mysql_free_result(res); - return true; -} -//--------------------------------------------------------------------------- - - -void __fastcall TForm1::DBViewClick(TObject *Sender) -{ - - if (IsConnect) - { - if (DBView->Selected != MySQLNode && DBView->Selected != NULL ) - { - IsDatabase(DBView->Selected->Text); - - } - else - { - CleanTree(); - } - } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::TableViewClick(TObject *Sender) -{ - if (IsConnect) - { - if (DBView->Selected != MySQLNodeT ) - { - IsTable(TableView->Selected->Text); - IsIndex(TableView->Selected->Text); - - } - else - { - CleanGrid(); - CleanGridI(); - - } - } -} -//--------------------------------------------------------------------------- - bool __fastcall TForm1::IsTable(String Name) -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - int k = 0; - int therow = 1; - new_line=1; - AnsiString command; - AnsiString commandt; - - CleanGrid(); - CleanGridI(); - command = "use "; - command+= DBView->Selected->Text.c_str(); - char* las = command.c_str(); - - commandt = "desc "; - commandt+= Name.c_str(); - char* les = commandt.c_str(); - - if (mysql_query(MySQL, las )) - return false; - - if (mysql_query(MySQL, les ) || - !(res=mysql_store_result(MySQL))) - return false ; - - StringGrid4->Cells[0][0] = "Field"; - StringGrid4->Cells[1][0] = "Type"; - StringGrid4->Cells[2][0] = "Null"; - StringGrid4->Cells[3][0] = "Key"; - StringGrid4->Cells[4][0] = "Default"; - StringGrid4->Cells[5][0] = "Extra"; - StringGrid4->Cells[6][0] = "Previleges"; - - - int thecounter; - String u = GetNumberServer(); - if ( u == "3.22") - { - StringGrid3->ColCount = 7; - thecounter = 4; - } - else - thecounter = 5; - - while ((row=mysql_fetch_row(res)) != 0) - { - mysql_field_seek(res,0); - - for (i=0 ; i < mysql_num_fields(res); i++) - { - if (k <= thecounter ) - { - StringGrid4->Cells[k][therow] = row[i]; - k++; - } - else - { - StringGrid4->Cells[(k)][therow] = row[i]; - k = 0; - therow++ ; - StringGrid4->RowCount++; - } - } - - } - StringGrid4->RowCount--; - mysql_free_result(res); - return true; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::TableViewChange(TObject *Sender, TTreeNode *Node) -{ -if (IsConnect) - { - if (DBView->Selected != MySQLNodeT ) - { - IsTable(TableView->Selected->Text); - IsIndex(TableView->Selected->Text); - - } - else - { - CleanGrid(); - CleanGridI(); - - } - } -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::DBViewChange(TObject *Sender, TTreeNode *Node) -{ - if (IsConnect) - { - if (DBView->Selected != MySQLNode ) - { - IsDatabase(DBView->Selected->Text); - - } - else - { - CleanTree(); - } - } - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::RefreshSClick(TObject *Sender) -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - AnsiString command; - - if (IsConnect) - { - IsMySQLNode = false; - CleanTree(); - DBView->Items->Clear(); - - TakeIP(); - - MySQLNode = DBView->Items->Add(NULL, mainroot.UpperCase()); - MySQLNode->ImageIndex = 0; - - if (!(res=mysql_list_dbs(MySQL,"%"))) { /*do nothing;*/ } - while ((row=mysql_fetch_row(res)) != 0) { - mysql_field_seek(res,0); - - for (i=0 ; i < mysql_num_fields(res); i++) - { - MySQLDbs = DBView->Items->AddChild(MySQLNode, row[i]); - MySQLDbs->ImageIndex = 1; - MySQLDbs->SelectedIndex = 1; - - } - - } - - mysql_free_result(res); - - IsMySQLNode = true; - - MySQLNode->Expanded = true; - - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::CreateDatabaseSClick(TObject *Sender) -{ - - if (IsConnect) - { - dbfrm->Show(); - - } - else - ShowMessage("Precisa estar conectado"); -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::CleanTree(void) -{ - StringGrid4->RowCount= 2; - StringGrid4->Cells[0][1] = ""; - StringGrid4->Cells[1][1] = ""; - StringGrid4->Cells[2][1] = ""; - StringGrid4->Cells[3][1] = ""; - StringGrid4->Cells[4][1] = ""; - StringGrid4->Cells[5][1] = ""; - TableView->Items->Clear(); - -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::CleanGrid(void) -{ - StringGrid4->RowCount= 2; - StringGrid4->Cells[0][1] = ""; - StringGrid4->Cells[1][1] = ""; - StringGrid4->Cells[2][1] = ""; - StringGrid4->Cells[3][1] = ""; - StringGrid4->Cells[4][1] = ""; - StringGrid4->Cells[5][1] = ""; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::CreatingDB() -{ - - if (mysql_create_db(MySQL, dbfrm->Edit1->Text.c_str())) - return true; - else - return false; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::OutRefresh(void) -{ - RefreshSClick(dbfrm->SpeedButton1); -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::FlushHosts1Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_HOSTS)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::FlushLogs1Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_LOG)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - -void __fastcall TForm1::FlushTables1Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_TABLES)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - bool __fastcall TForm1::IsIndex(String Name) -{ - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - int k = 0; - int therow = 1; - new_line=1; - AnsiString command; - AnsiString commandt; - i = 0; - CleanGridI(); - command = "use "; - command+= DBView->Selected->Text.c_str(); - char* las = command.c_str(); - - commandt = "show index from "; - commandt+= Name.c_str(); - char* les = commandt.c_str(); - - if (mysql_query(MySQL, las )) - return false; - - if (mysql_query(MySQL, les ) || - !(res=mysql_store_result(MySQL))) - return false ; - - StringGrid3->RowCount= 2; - StringGrid3->Cells[0][0] = "Table"; - StringGrid3->Cells[1][0] = "Non_unique"; - StringGrid3->Cells[2][0] = "Key_name"; - StringGrid3->Cells[3][0] = "Seq_in_index"; - StringGrid3->Cells[4][0] = "Col_name"; - StringGrid3->Cells[5][0] = "Collation"; - StringGrid3->Cells[6][0] = "Card."; - StringGrid3->Cells[7][0] = "Sub_part"; - StringGrid3->Cells[8][0] = "Packed"; - StringGrid3->Cells[9][0] = "Comment"; - - int thecounter; - String u = GetNumberServer(); - - if ( u == "3.22") - { - StringGrid3->ColCount = 8; - thecounter = 6; - } - else - thecounter = 8; - while ((row=mysql_fetch_row(res)) != 0) - { - mysql_field_seek(res,0); - - for (i=0 ; i < mysql_num_fields(res); i++) - { - if (k <= thecounter ) - { - StringGrid3->Cells[k][therow] = row[i]; - k++; - } - else - { - StringGrid3->Cells[(k)][therow] = row[i]; - k = 0; - therow++ ; - StringGrid3->RowCount++; - } - } - - } - if (i) - StringGrid3->RowCount--; - mysql_free_result(res); - return true; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::CleanGridI(void) -{ - StringGrid3->RowCount= 2; - StringGrid3->Cells[0][1] = ""; - StringGrid3->Cells[1][1] = ""; - StringGrid3->Cells[2][1] = ""; - StringGrid3->Cells[3][1] = ""; - StringGrid3->Cells[4][1] = ""; - StringGrid3->Cells[5][1] = ""; - StringGrid3->Cells[6][1] = ""; - StringGrid3->Cells[7][1] = ""; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::CreatingTable(String TheTable) -{ - - if (!mysql_query(MySQL, TheTable.c_str())) - return true; - else - return false; -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::GetExtendedStatus() -{ - if (!ya && !preport) - return true; - - MYSQL_RES *res; - MYSQL_ROW row; - unsigned int i; - int k = 1; - new_line=1; - bool left = true; - bool open_tables = false; - bool open_files = false; - bool uptime = false; - bool running_threads = false; - bool open_streams = false; - bool slow_queries = false; - bool opened_tables = false; - bool questions = false; - - AnsiString report; - if (yy) - StringGrid5->RowCount = 2; - - if (mysql_query(MySQL,"show status") || - !(res=mysql_store_result(MySQL))) - { - return false; - } - - while ((row=mysql_fetch_row(res)) != 0) - { - mysql_field_seek(res,0); - - StringGrid5->Cells[0][0] = "Variable Name"; - StringGrid5->Cells[1][0] = "Value"; - - - for (i=0 ; i < mysql_num_fields(res); i++) - { - - if (left) - { - if (preport) - report = GetString(row[i]); - if ( (String) row[i] == "Open_tables") - open_tables = true; - else - open_tables = false; - if ( (String) row[i] == "Open_files") - open_files = true; - else - open_files = false; - if ((String) row[i] == "Uptime") - uptime = true; - else - uptime = false; - - if ( (String) row[i] == "Opened_tables") - opened_tables = true; - else - opened_tables = false; - - if ( (String) row[i] == "Threads_running" || (String) row[i] == "Running_threads") - running_threads = true; - else - running_threads = false; - - if ( (String) row[i] == "Open_streams") - open_streams = true; - else - open_streams = false; - - if ( (String) row[i] == "Slow_queries") - slow_queries = true; - else - slow_queries = false; - - if ( (String) row[i] == "Questions") - questions = true; - else - questions = false; - - if (yy) - StringGrid5->Cells[0][k++] = row[i]; - - left = false; - } - else - { - if (preport) - Memo5->Lines->Add(report + row[i]); - if (open_tables) - st22->Text = row[i]; - if (open_files) - st23->Text = row[i]; - if (uptime) - nice_time(row[i]); - if (running_threads) - st27->Text = row[i]; - if (open_streams) - st24->Text = row[i]; - if (slow_queries) - st28->Text = row[i]; - if (opened_tables) - st25->Text = row[i]; - if (questions){ - q++; - st26->Text = StrToInt64(row[i]) - q; } - - if (yy){ - StringGrid5->RowCount++; - StringGrid5->Cells[1][--k] = row[i]; - k++; } - - left = true; - } - - } - - } - - - if (rinit) - StringGrid5->RowCount--; - mysql_free_result(res); - yy = false; - return true; -} -//--------------------------------------------------------------------------- -void __fastcall TForm1::SpeedButton13Click(TObject *Sender) -{ - yy = true; - // rinit = true; -} -//--------------------------------------------------------------------------- -String __fastcall TForm1::GetNumberServer() -{ - String TheVersion; - - TheVersion = mysql_get_server_info(MySQL) ; - TheVersion.SetLength(4); - return TheVersion; - - -} - -//--------------------------------------------------------------------------- -void __fastcall TForm1::KillProcess1Click(TObject *Sender) -{ - - if (IsConnect) - KillPID(); - else - Application->MessageBox("The Server must be connected", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); -} -//--------------------------------------------------------------------------- -bool __fastcall TForm1::KillPID() -{ - String s = "Are you sure to kill the process PID no. "; - s+= StringGrid2->Cells[0][StringGrid2->Row]; - s+= " of the USER "; - s+= StringGrid2->Cells[1][StringGrid2->Row]; - unsigned long xx = mysql_thread_id(MySQL); - unsigned long yy = StrToInt(StringGrid2->Cells[0][StringGrid2->Row]); - if ( xx != yy) - { - if(Application->MessageBox(s.c_str(), "WinMySQLadmin 1.0", MB_YESNOCANCEL | MB_ICONQUESTION ) == IDYES) - { - if (!mysql_kill(MySQL,yy)) - { - GetProcess(); - return true; - } - } - } - else - { - Application->MessageBox("From here you can't kill the PID of this tool", "WinMySQLadmin 1.0", MB_OK | MB_ICONEXCLAMATION); - return true; - } - return true; -} -void __fastcall TForm1::FlushThreads1Click(TObject *Sender) -{ - if (IsConnect) - { - if (mysql_refresh(MySQL,REFRESH_THREADS)) - StatusLine->SimpleText = ""; - } -} -//--------------------------------------------------------------------------- - diff --git a/VC++Files/winmysqladmin/main.h b/VC++Files/winmysqladmin/main.h deleted file mode 100644 index dcb8ad60d7b..00000000000 --- a/VC++Files/winmysqladmin/main.h +++ /dev/null @@ -1,314 +0,0 @@ -//--------------------------------------------------------------------------- -#ifndef mainH -#define mainH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 diff --git a/VC++Files/winmysqladmin/mysql.h b/VC++Files/winmysqladmin/mysql.h deleted file mode 100644 index 734d78efea0..00000000000 --- a/VC++Files/winmysqladmin/mysql.h +++ /dev/null @@ -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 -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 diff --git a/VC++Files/winmysqladmin/mysql_com.h b/VC++Files/winmysqladmin/mysql_com.h deleted file mode 100644 index 2a7eb57d745..00000000000 --- a/VC++Files/winmysqladmin/mysql_com.h +++ /dev/null @@ -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 diff --git a/VC++Files/winmysqladmin/mysql_version.h b/VC++Files/winmysqladmin/mysql_version.h deleted file mode 100644 index 1f868704fe8..00000000000 --- a/VC++Files/winmysqladmin/mysql_version.h +++ /dev/null @@ -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 -#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 diff --git a/VC++Files/winmysqladmin/winmysqladmin.cpp b/VC++Files/winmysqladmin/winmysqladmin.cpp deleted file mode 100644 index a4fbe590196..00000000000 --- a/VC++Files/winmysqladmin/winmysqladmin.cpp +++ /dev/null @@ -1,36 +0,0 @@ -//--------------------------------------------------------------------------- -#include -#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; -} -//--------------------------------------------------------------------------- diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h index 361918846fc..85f0771ca85 100644 --- a/extra/yassl/include/openssl/ssl.h +++ b/extra/yassl/include/openssl/ssl.h @@ -149,7 +149,7 @@ enum { /* X509 Constants */ X509_V_ERR_CRL_SIGNATURE_FAILURE = 10, X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 11, 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 */ 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_FATAL_ERROR = -1, SSL_NORMAL_SHUTDOWN = 0, - SSL_ERROR_NONE = 0, // for most functions - SSL_FAILURE = 0, // for some functions + SSL_ERROR_NONE = 0, /* for most functions */ + SSL_FAILURE = 0, /* for some functions */ SSL_SUCCESS = 1, SSL_FILETYPE_ASN1 = 10, @@ -320,7 +320,7 @@ enum { /* ssl Constants */ SSL_ST_ACCEPT = 94, SSL_CB_ALERT = 95, SSL_CB_READ = 96, - SSL_CB_HANDSHAKE_DONE = 97, + SSL_CB_HANDSHAKE_DONE = 97 }; diff --git a/extra/yassl/include/yassl_error.hpp b/extra/yassl/include/yassl_error.hpp index 4165eb24b66..0b06a37a635 100644 --- a/extra/yassl/include/yassl_error.hpp +++ b/extra/yassl/include/yassl_error.hpp @@ -51,7 +51,7 @@ enum YasslError { verify_error = 112, send_error = 113, receive_error = 114, - certificate_error = 115, + certificate_error = 115 // 1000+ from TaoCrypt error.hpp diff --git a/extra/yassl/include/yassl_types.hpp b/extra/yassl/include/yassl_types.hpp index 70888f35c81..1ad4998bade 100644 --- a/extra/yassl/include/yassl_types.hpp +++ b/extra/yassl/include/yassl_types.hpp @@ -27,7 +27,7 @@ #ifndef yaSSL_TYPES_HPP #define yaSSL_TYPES_HPP -#include +#include namespace yaSSL { @@ -129,7 +129,7 @@ enum PublicValueEncoding { implicit_encoding, explicit_encoding }; 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 "AES128-RMD", // TLS_RSA_WITH_AES_128_CBC_RMD160 = 125 "AES256-RMD", // TLS_RSA_WITH_AES_256_CBC_RMD160 = 126 - null_str, // 127 + null_str // 127 }; // fill with MD5 pad size since biggest required diff --git a/extra/yassl/mySTL/helpers.hpp b/extra/yassl/mySTL/helpers.hpp index 10f120e914b..779389e322a 100644 --- a/extra/yassl/mySTL/helpers.hpp +++ b/extra/yassl/mySTL/helpers.hpp @@ -30,13 +30,25 @@ #include +#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 { template inline void construct(T* p, const T2& value) { - new (static_cast(p)) T(value); + new ((yassl_pointer) p) T(value); } diff --git a/extra/yassl/mySTL/list.hpp b/extra/yassl/mySTL/list.hpp index 5bbec6ab7c6..be149b1a984 100644 --- a/extra/yassl/mySTL/list.hpp +++ b/extra/yassl/mySTL/list.hpp @@ -38,6 +38,13 @@ namespace mySTL { template 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 { node(T t) : prev_(0), next_(0), value_(t) {} diff --git a/extra/yassl/src/dummy.cpp b/extra/yassl/src/dummy.cpp new file mode 100644 index 00000000000..19b7fe887cd --- /dev/null +++ b/extra/yassl/src/dummy.cpp @@ -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. +*/ diff --git a/extra/yassl/taocrypt/include/asn.hpp b/extra/yassl/taocrypt/include/asn.hpp index 71633339a40..974bbf4c86f 100644 --- a/extra/yassl/taocrypt/include/asn.hpp +++ b/extra/yassl/taocrypt/include/asn.hpp @@ -79,7 +79,7 @@ enum ASNIdFlag enum DNTags { - COMMON_NAME = 0x03, + COMMON_NAME = 0x03 }; @@ -92,7 +92,7 @@ enum Constants MAX_SEQ_SZ = 5, // enum(seq|con) + length(4) MAX_ALGO_SIZE = 9, MAX_DIGEST_SZ = 25, // SHA + enum(Bit or Octet) + length(4) - DSA_SIG_SZ = 40, + DSA_SIG_SZ = 40 }; diff --git a/extra/yassl/taocrypt/include/misc.hpp b/extra/yassl/taocrypt/include/misc.hpp index b9cc9a6fe71..b5b0a4575fc 100644 --- a/extra/yassl/taocrypt/include/misc.hpp +++ b/extra/yassl/taocrypt/include/misc.hpp @@ -59,7 +59,7 @@ typedef unsigned char byte; typedef unsigned short word16; typedef unsigned int word32; -#if defined(__GNUC__) || defined(__MWERKS__) +#if defined(__GNUC__) || defined(__MWERKS__) || defined(_LONGLONG_TYPE) #define WORD64_AVAILABLE typedef unsigned long long word64; #define W64LIT(x) x##LL @@ -79,8 +79,10 @@ typedef unsigned int word32; typedef word32 lword; #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) || \ - defined(__x86_64__) || defined(__mips64) + defined(__mips64) || (defined(__x86_64__) && !defined(__sun)) // 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 // without using assembly, so in order to use word64 as word, the assembly diff --git a/include/my_global.h b/include/my_global.h index 068832e927d..75a99133e33 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -44,7 +44,7 @@ #endif /* __CYGWIN__ */ /* 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 #endif diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c index cdda1dd4dee..c6d1f953772 100644 --- a/innobase/trx/trx0trx.c +++ b/innobase/trx/trx0trx.c @@ -1926,10 +1926,6 @@ trx_recover_for_mysql( ut_ad(xid_list); 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 to the xid_list */ @@ -1941,6 +1937,12 @@ trx_recover_for_mysql( if (trx->conc_state == TRX_PREPARED) { 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); fprintf(stderr, " InnoDB: Transaction %lu %lu in prepared state after recovery\n", @@ -1964,10 +1966,12 @@ trx_recover_for_mysql( mutex_exit(&kernel_mutex); - ut_print_timestamp(stderr); - fprintf(stderr, + if (count > 0){ + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: %d transactions in prepared state after recovery\n", - count); + count); + } return (count); } diff --git a/myisammrg/myrg_open.c b/myisammrg/myrg_open.c index 0dc2f4f9768..f9cdc2bb205 100644 --- a/myisammrg/myrg_open.c +++ b/myisammrg/myrg_open.c @@ -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))) { if ((end=buff+length)[-1] == '\n') - end[-1]='\0'; + *--end='\0'; if (!buff[0]) continue; /* Skip empty lines */ 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)); 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)))) goto err; if (!m_info) /* First file */ diff --git a/mysql-test/r/information_schema_db.result b/mysql-test/r/information_schema_db.result index 0ccb22be22a..3da5cc7bd11 100644 --- a/mysql-test/r/information_schema_db.result +++ b/mysql-test/r/information_schema_db.result @@ -1,6 +1,6 @@ use INFORMATION_SCHEMA; show tables; -Tables_in_INFORMATION_SCHEMA +Tables_in_information_schema SCHEMATA TABLES COLUMNS @@ -17,7 +17,7 @@ COLUMN_PRIVILEGES TABLE_CONSTRAINTS KEY_COLUMN_USAGE show tables from INFORMATION_SCHEMA like 'T%'; -Tables_in_INFORMATION_SCHEMA (T%) +Tables_in_information_schema (T%) TABLES TABLE_PRIVILEGES TABLE_CONSTRAINTS diff --git a/mysql-test/r/lowercase_table.result b/mysql-test/r/lowercase_table.result index 7705961d08d..c09750ed561 100644 --- a/mysql-test/r/lowercase_table.result +++ b/mysql-test/r/lowercase_table.result @@ -84,3 +84,9 @@ create table t2 like T1; drop table t1, t2; show tables; Tables_in_test +use lpt1; +ERROR 42000: Unknown database 'lpt1' +use com1; +ERROR 42000: Unknown database 'com1' +use prn; +ERROR 42000: Unknown database 'prn' diff --git a/mysql-test/t/information_schema_db.test b/mysql-test/t/information_schema_db.test index f88d04c2783..efb738d682c 100644 --- a/mysql-test/t/information_schema_db.test +++ b/mysql-test/t/information_schema_db.test @@ -1,7 +1,9 @@ -- source include/testdb_only.inc use INFORMATION_SCHEMA; +--replace_result Tables_in_INFORMATION_SCHEMA Tables_in_information_schema show tables; +--replace_result 'Tables_in_INFORMATION_SCHEMA (T%)' 'Tables_in_information_schema (T%)' show tables from INFORMATION_SCHEMA like 'T%'; create database `inf%`; use `inf%`; diff --git a/mysql-test/t/lowercase_table.test b/mysql-test/t/lowercase_table.test index d60ad06b3a7..9332c47cb2f 100644 --- a/mysql-test/t/lowercase_table.test +++ b/mysql-test/t/lowercase_table.test @@ -83,3 +83,14 @@ create table t2 like T1; drop table t1, t2; show tables; + +# +#Bug 9148: Denial of service +# +--error 1049 +use lpt1; +--error 1049 +use com1; +--error 1049 +use prn; + diff --git a/mysql-test/t/reserved_win_names-master.opt b/mysql-test/t/reserved_win_names-master.opt deleted file mode 100644 index 62ab6dad1e0..00000000000 --- a/mysql-test/t/reserved_win_names-master.opt +++ /dev/null @@ -1 +0,0 @@ ---lower_case_table_names=1 diff --git a/mysys/default_modify.c b/mysys/default_modify.c index 3476b8628cf..add4317bb56 100644 --- a/mysys/default_modify.c +++ b/mysys/default_modify.c @@ -42,7 +42,7 @@ int modify_defaults_file(const char *file_location, const char *option, const char *section_name, int remove_option) { FILE *cnf_file; - struct stat file_stat; + MY_STAT file_stat; char linebuff[BUFF_SIZE], tmp[BUFF_SIZE], *tmp_ptr, *src_ptr, *dst_ptr, *file_buffer; uint optlen, optval_len, sect_len; diff --git a/mysys/my_fopen.c b/mysys/my_fopen.c index e918b7b0de2..4310250bd0d 100644 --- a/mysys/my_fopen.c +++ b/mysys/my_fopen.c @@ -33,9 +33,22 @@ FILE *my_fopen(const char *FileName, int Flags, myf MyFlags) DBUG_ENTER("my_fopen"); DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d", FileName, Flags, MyFlags)); - - make_ftype(type,Flags); - if ((fd = fopen(FileName, type)) != 0) + /* + 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); + fd = fopen(FileName, type); + } + + if (fd != 0) { /* The test works if MY_NFILE < 128. The problem is that fileno() is char diff --git a/mysys/my_getwd.c b/mysys/my_getwd.c index 89f949eca27..5663ceaa60e 100644 --- a/mysys/my_getwd.c +++ b/mysys/my_getwd.c @@ -208,7 +208,10 @@ int test_if_hard_path(register const char *dir_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 || test(strchr(name, FN_DEVCHAR)) #endif diff --git a/mysys/my_open.c b/mysys/my_open.c index a5cd3811bbf..7fc5282838f 100644 --- a/mysys/my_open.c +++ b/mysys/my_open.c @@ -46,6 +46,13 @@ File my_open(const char *FileName, int Flags, myf MyFlags) DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d", FileName, Flags, MyFlags)); #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) fd = sopen((my_string) FileName, (Flags & ~O_SHARE) | O_BINARY, SH_DENYNO, MY_S_IREAD | MY_S_IWRITE); diff --git a/ndb/src/cw/cpcd/Process.cpp b/ndb/src/cw/cpcd/Process.cpp index cfffec7d0ce..431c96e3320 100644 --- a/ndb/src/cw/cpcd/Process.cpp +++ b/ndb/src/cw/cpcd/Process.cpp @@ -223,11 +223,8 @@ set_ulimit(const BaseString & pair){ if(!(list[1].trim() == "unlimited")){ value = atoi(list[1].c_str()); } -#if defined(__INTEL_COMPILER) - struct rlimit64 rlp; -#else + struct rlimit rlp; -#endif #define _RLIMIT_FIX(x) { res = getrlimit(x,&rlp); if(!res){ rlp.rlim_cur = value; res = setrlimit(x, &rlp); }} if(list[0].trim() == "c"){ diff --git a/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/ndb/src/ndbapi/NdbDictionaryImpl.cpp index fe2df815f1f..baf5c7e5c83 100644 --- a/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -2049,12 +2049,22 @@ NdbDictionaryImpl::getIndexImpl(const char * externalName, 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()); if(prim == 0){ m_error.code = 4243; return 0; } - + internalName = save_me.c_str(); + /** * Create index impl */ diff --git a/sql/des_key_file.cc b/sql/des_key_file.cc index c6b4c5f2c34..a5a3e78d70f 100644 --- a/sql/des_key_file.cc +++ b/sql/des_key_file.cc @@ -14,7 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include +#include "mysql_priv.h" #include #ifdef HAVE_OPENSSL diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index 0ac209d82e0..8cb6dcb7285 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -349,7 +349,7 @@ #pragma implementation // gcc: Class implementation #endif -#include +#include "mysql_priv.h" #ifdef HAVE_FEDERATED_DB #include "ha_federated.h" diff --git a/sql/item.cc b/sql/item.cc index f105d97bec2..a28cc261b3c 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -298,7 +298,7 @@ longlong Item::val_int_from_decimal() 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) { marker= 0; @@ -330,6 +330,7 @@ Item::Item(): tables */ Item::Item(THD *thd, Item *item): + rsize(0), str_value(item->str_value), name(item->name), orig_name(item->orig_name), diff --git a/sql/item.h b/sql/item.h index 11b9460906e..18a81dcaa03 100644 --- a/sql/item.h +++ b/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, MEM_ROOT *mem_root) { 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, MEM_ROOT *mem_root) {} @@ -247,6 +262,9 @@ public: 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 save_in_field diff --git a/sql/sp_head.cc b/sql/sp_head.cc index ca2ec6d0acf..988345694b2 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -131,10 +131,12 @@ sp_prepare_func_item(THD* thd, Item **it_addr) ** if nothing else. */ 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"); Item *it= sp_prepare_func_item(thd, it_addr); + uint rsize; DBUG_PRINT("info", ("type: %d", type)); 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? */ if (type == MYSQL_TYPE_NULL) - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); else { 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) { DBUG_PRINT("info", ("INT_RESULT: null")); - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); } else { DBUG_PRINT("info", ("INT_RESULT: %d", i)); - it= new Item_int(i); + it= new(reuse, &rsize) Item_int(i); } break; } @@ -171,7 +173,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type) if (it->null_value) { DBUG_PRINT("info", ("REAL_RESULT: null")); - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); } else { @@ -180,7 +182,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type) uint8 decimals= it->decimals; uint32 max_length= it->max_length; DBUG_PRINT("info", ("REAL_RESULT: %g", d)); - it= new Item_float(d); + it= new(reuse, &rsize) Item_float(d); it->decimals= decimals; 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); if (it->null_value) - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); else - it= new Item_decimal(val); + it= new(reuse, &rsize) Item_decimal(val); #ifndef DBUG_OFF char dbug_buff[DECIMAL_MAX_STR_LENGTH+1]; 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) { DBUG_PRINT("info", ("default result: null")); - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); } else { DBUG_PRINT("info",("default result: %*s", s->length(), s->c_ptr_quick())); - it= new Item_string(thd->strmake(s->ptr(), s->length()), - s->length(), it->collation.collation); + it= new(reuse, &rsize) Item_string(thd->strmake(s->ptr(), + s->length()), + s->length(), + it->collation.collation); } break; } @@ -224,6 +228,7 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type) DBUG_ASSERT(0); } } + it->rsize= rsize; 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++) { 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) nctx->push_item(it); @@ -823,7 +828,7 @@ sp_head::execute_procedure(THD *thd, List *args) } 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) nctx->push_item(it2); // IN or INOUT @@ -1466,19 +1471,9 @@ sp_instr_set::execute(THD *thd, uint *nextp) int sp_instr_set::exec_core(THD *thd, uint *nextp) { - Item *it; - int res; + int res= thd->spcont->set_item_eval(thd, m_offset, &m_value, m_type); - 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; - return res; } @@ -1715,7 +1710,7 @@ sp_instr_freturn::exec_core(THD *thd, uint *nextp) Item *it; 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) res= -1; else diff --git a/sql/sp_rcontext.cc b/sql/sp_rcontext.cc index 672491a97f2..49ead5d1585 100644 --- a/sql/sp_rcontext.cc +++ b/sql/sp_rcontext.cc @@ -40,19 +40,39 @@ sp_rcontext::sp_rcontext(uint fsize, uint hmax, uint cmax) 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) - return -1; + res= -1; else { + res= 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 0; } + + return res; } bool @@ -111,7 +131,10 @@ void sp_rcontext::save_variables(uint fp) { 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 @@ -230,7 +253,12 @@ sp_cursor::fetch(THD *thd, List *vars) for (fldcount= 0 ; (pv= li++) ; fldcount++) { Item *it; + Item *reuse; + uint rsize; + Item *old_item_next; + Item *old_free_list= thd->free_list; const char *s; + LINT_INIT(old_item_next); if (fldcount >= m_prot->get_field_count()) { @@ -238,9 +266,13 @@ sp_cursor::fetch(THD *thd, List *vars) ER(ER_SP_WRONG_NO_OF_FETCH_ARGS), MYF(0)); return -1; } + + if ((reuse= thd->spcont->get_item(pv->offset))) + old_item_next= reuse->next; + s= row[fldcount]; if (!s) - it= new Item_null(); + it= new(reuse, &rsize) Item_null(); else { /* @@ -255,23 +287,32 @@ sp_cursor::fetch(THD *thd, List *vars) len= (*next -s)-1; switch (sp_map_result_type(pv->type)) { case INT_RESULT: - it= new Item_int(s); + it= new(reuse, &rsize) Item_int(s); break; case REAL_RESULT: - it= new Item_float(s, len); + it= new(reuse, &rsize) Item_float(s, len); break; case DECIMAL_RESULT: - it= new Item_decimal(s, len, thd->db_charset); + it= new(reuse, &rsize) Item_decimal(s, len, thd->db_charset); break; case STRING_RESULT: /* 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; case ROW_RESULT: default: 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); } if (fldcount < m_prot->get_field_count()) diff --git a/sql/sp_rcontext.h b/sql/sp_rcontext.h index c132032e32c..417c50d0f0f 100644 --- a/sql/sp_rcontext.h +++ b/sql/sp_rcontext.h @@ -62,19 +62,19 @@ class sp_rcontext : public Sql_alloc push_item(Item *i) { if (m_count < m_fsize) - m_frame[m_count++] = i; + m_frame[m_count++]= i; } inline void set_item(uint idx, Item *i) { if (idx < m_count) - m_frame[idx] = i; + m_frame[idx]= i; } /* Returns 0 on success, -1 on (eval) failure */ 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 * get_item(uint idx) @@ -82,7 +82,6 @@ class sp_rcontext : public Sql_alloc return m_frame[idx]; } - inline Item ** get_item_addr(uint idx) { diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 2d5c4722164..2a500610479 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1746,7 +1746,8 @@ bool select_dumpvar::send_data(List &items) { 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); } } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index fffb8ff9ae6..3e463cb35ce 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -757,7 +757,13 @@ typedef struct st_lex bool drop_if_exists, drop_temporary, local_file, one_shot_set; bool in_comment, ignore_space, verbose, no_write_to_binlog; 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 safe_to_cache_query; bool subqueries, ignore; diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c index 935cc2d380d..0e036c2bbcd 100644 --- a/strings/my_vsnprintf.c +++ b/strings/my_vsnprintf.c @@ -28,7 +28,7 @@ %#[l]u %#[l]x %#.#s Note first # is ignored - + RETURN length of result string */ diff --git a/vio/Makefile.am b/vio/Makefile.am index 9c961025080..22e706efe4c 100644 --- a/vio/Makefile.am +++ b/vio/Makefile.am @@ -19,15 +19,17 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ $(openssl_libs) pkglib_LIBRARIES= libvio.a noinst_PROGRAMS = test-ssl test-sslserver test-sslclient 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 \ ../mysys/libmysys.a ../strings/libmystrings.a \ $(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 \ ../mysys/libmysys.a ../strings/libmystrings.a \ $(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 \ ../mysys/libmysys.a ../strings/libmystrings.a \ $(openssl_libs)