Add menu item for launching mysql.exe command line with current parameters. Fixes issue #2728.

This commit is contained in:
Ansgar Becker
2012-02-28 23:34:58 +00:00
parent 156bd42291
commit 3370a6a4da
5 changed files with 133 additions and 48 deletions

View File

@@ -220,6 +220,8 @@ const
DEFAULT_DISPLAYBARS = true;
REGNAME_BARCOLOR = 'BarColor';
DEFAULT_BARCOLOR = $00BBFFDD;
REGNAME_MYSQLBINARIES = 'MySQL_Binaries';
DEFAULT_MYSQLBINARIES = '';
REGNAME_PROMPTFILESAVE = 'PromptSaveFileOnTabClose';
DEFAULT_PROMPTFILESAVE = True;
REGNAME_COMPLETIONPROPOSAL = 'CompletionProposal';

View File

@@ -1809,6 +1809,9 @@ object MainForm: TMainForm
object Bulktableeditor1: TMenuItem
Action = actBulkTableEdit
end
object Launchcommandline1: TMenuItem
Action = actLaunchCommandline
end
object N7: TMenuItem
Caption = '-'
end
@@ -2579,6 +2582,12 @@ object MainForm: TMainForm
ImageIndex = 27
OnExecute = actSynchronizeDatabaseExecute
end
object actLaunchCommandline: TAction
Category = 'Tools'
Caption = 'Launch command line'
ImageIndex = 170
OnExecute = actLaunchCommandlineExecute
end
end
object SaveDialog2: TSaveDialog
DefaultExt = 'reg'
@@ -2608,7 +2617,7 @@ object MainForm: TMainForm
Left = 104
Top = 160
Bitmap = {
494C0101AA005001B00110001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
494C0101AB005001200210001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000B0020000010020000000000000B0
0200000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000081A205D0C3745870000
@@ -2622,113 +2631,113 @@ object MainForm: TMainForm
00000000000000000000000000000000000000000000051013484BCFF7FF21B1
DEF31BADDDF331C2F4FF010E1348000000000000000000000000000000030000
03230000000003115AA70628D1FF0628D1FF0628D1FF0628D1FF0628CFFE041A
8AD000020D410000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
8AD000020D410000000000000000000000004735279BC28D66FFBF8A64FFBD87
62FFBA845FFFB8825DFFB57E5CFFB37C5AFFB17A58FFB07956FFAD7755FFAC74
54FFAA7352FFA87151FFA86F4FFF3B281D9B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000206072D4AD0F7FF82DE
F9FF78D9F9FF2AC0F4FF0005072D000000000000000000000004020F4F9D010D
42910000000003115AA70628D1FF0628D1FF0628D1FF0628D1FF0628D1FF0628
D1FF0626C5F80107246B00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
D1FF0626C5F80107246B0000000000000000C8916AFF505050FF515151FF5252
52FF535353FF545454FF555555FF555555FF565656FF575757FF585858FF5959
59FF5A5A5AFF5A5A5AFF5B5B5BFFA8704FFF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000003266577B172DAF8FF8BE0
FAFF82DDF9FF52D0F6FF0D5975B10000000300000000020A35810628D1FF010D
43920000000003115AA7051C93D603115AA7031362AF0521AAE60628D1FF0628
D1FF0628D1FF0627C9FA00031048000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
D1FF0628D1FF0627C9FA0003104800000000CA936CFF4C4C4CFF3B3B3BFF3B3B
3BFF3C3C3CFF3D3D3DFF3F3F3FFF404040FF414141FF424242FF434343FF4444
44FF444444FF464646FF585858FFA97151FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000224E599968D8F9FF71DAF8FF8AE0
FAFF81DDF9FF4FCEF7FF30C2F4FF094157990001062C0625C1F50628D1FF010D
4392000000000000052A0000000600000000000000000000000E010C3E8C0628
CDFD0628D1FF0628D1FF051C93D60000000A0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
CDFD0628D1FF0628D1FF051C93D60000000ACC966DFF494949FF363636FF3737
37FF383838FF3A3A3AFF3B3B3BFF3D3D3DFF3D3D3DFF3F3F3FFF404040FF4040
40FF424242FF434343FF555555FFAB7352FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000009050D0F3F1538428464D7
F8FF57D2F8FF0A364587010B0E3F00000009020D43910628D1FF0628D1FF010D
4392000000000000000004171D5816647FB7135970AC020A0D3C00000002020D
47950628D1FF0628D1FF0628D1FF000416530000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
47950628D1FF0628D1FF0628D1FF00041653CF9970FF454545FF313131FF3232
32FF343434FF353535FF373737FF383838FF393939FF3A3A3AFF3C3C3CFF3D3D
3DFF3E3E3EFF3F3F3FFF535353FFAC7654FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000002F81
99C9267F99C9000000000000000000000000051D96D80628D1FF0628D1FF010D
43920000000004151A5429BEF2FC2AC3F8FF2AC3F8FF26B1E0F3010406280000
01170627CAFB0628D1FF0628D1FF020E48960000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
01170627CAFB0628D1FF0628D1FF020E4896D19B71FF404040FF2D2D2DFF2E2E
2EFF2F2F2FFF313131FF323232FF343434FF343434FF363636FF383838FF3939
39FF3B3B3BFF3B3B3BFF505050FFAF7856FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000050D
1042040D10420000000000000000000000000628C9FA0629D1FF0629D1FF020D
449200000000135C75B02AC3F8FF2AC3F8FF2AC3F8FF2AC3F8FF092D397B0000
0000041D92D50629D1FF0629D1FF03156BB70000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000041D92D50629D1FF0629D1FF03156BB7D49D73FF3B3B3BFF272727FFD1D1
D1FFACACACFF2C2C2CFF2D2D2DFF2F2F2FFF303030FF323232FF343434FF3535
35FF363636FF383838FF4C4C4CFFB17A58FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000934CDFA0A37D5FF0A37D5FF0313
4A970000000011526CA92AC3F8FF2AC3F8FF2AC3F8FF2AC3F8FF082732740000
0000062694D50A37D5FF0A37D5FF051B6EB70000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000062694D50A37D5FF0A37D5FF051B6EB7D59F74FF373737FF232323FF2424
24FFDEDEDEFF727272FF282828FF2A2A2AFF2B2B2BFF2D2D2DFF2F2F2FFF3030
30FF323232FF333333FF494949FFB47C5AFF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000A349CD80E4ADAFF0E4ADAFF0932
91D00000000102090C3B26AFE1F42AC3F8FF2AC3F8FF2096C3E3000101170000
01150E48D1FA0E4ADAFF0E4ADAFF04194C970000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
01150E48D1FA0E4ADAFF0E4ADAFF04194C97D8A177FF323232FF1E1E1EFFCFCF
CFFFA7A7A7FF222222FF232323FF242424FF262626FF282828FF2A2A2AFF2B2B
2BFF2D2D2DFF2F2F2FFF444444FFB6805CFF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000051D4892125DDEFF125DDEFF125D
DEFF020B195600000000010608300A314385092A387B0002031D00000002061E
4892125DDEFF125DDEFF125DDEFF010917540000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
4892125DDEFF125DDEFF125DDEFF01091754D9A277FF323232FF1E1E1EFF1F1F
1FFF202020FF222222FF232323FF242424FF262626FF282828FF2A2A2AFF2B2B
2BFF2D2D2DFF2F2F2FFF444444FFB9845EFF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000003072E1666D3F61770E3FF1770
E3FF1564CBF1030E1C5B0000000500000000000000000000000D06214189176E
DDFC1770E3FF1770E3FF104EA2D80000000B0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
DDFC1770E3FF1770E3FF104EA2D80000000BDBA378FF2F2F2FFF303030FF3131
31FF323232FF333333FF343434FF353535FF373737FF393939FF3A3A3AFF3B3B
3BFF3D3D3DFF3F3F3FFF414141FFBC8661FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000006213D841B84E8FF1B84
E8FF1B84E8FF1B84E8FF135BA0D40C3861A50D3D69AC1669B9E41B84E8FF1B84
E8FF1B84E8FF1B7FE0FB020A134A000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
E8FF1B84E8FF1B7FE0FB020A134A00000000DCA679FFDBA378FFDAA277FFD8A1
77FFD7A076FFD59E74FFD39D72FFD19B71FFCF9970FFCD966EFFCB946CFFC993
6AFFC79069FFC38E67FFC28C65FFBF8A64FF0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000050B375CA02094
EBFE2097EDFF2097EDFF2097EDFF2097EDFF2097EDFF2097EDFF2097EDFF2097
EDFF1E8EE0F905192B6E00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
EDFF1E8EE0F905192B6E0000000000000000D9A882FDF1DCCEFFEAC09FFFE8B8
91FFE8B891FFE8B891FFE8B891FFE8B891FFE8B891FFCDC8C4FFE8B891FFCDC8
C4FFE8B891FF4262FFFFE8C3A6FFBC8D6BFD0000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000003051B
296B1D88C6E824AAF2FF24AAF2FF24AAF2FF24AAF2FF24AAF2FF24A7F0FE186F
A3D2020A10440000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
A3D2020A104400000000000000000000000080634CC2CAA180F4DCA679FFDCA5
78FFDAA378FFD8A177FFD8A077FFD59F74FFD49D73FFD29C71FFCF9970FFCE98
6EFFCB956DFFC9936AFFB38C6EF4705440C20000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000

View File

@@ -535,6 +535,8 @@ type
Synchronizedatabase2: TMenuItem;
QF20: TMenuItem;
DataDefaultValue: TMenuItem;
actLaunchCommandline: TAction;
Launchcommandline1: TMenuItem;
procedure actCreateDBObjectExecute(Sender: TObject);
procedure menuConnectionsPopup(Sender: TObject);
procedure actExitApplicationExecute(Sender: TObject);
@@ -847,6 +849,7 @@ type
procedure DBtreeBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect;
var ContentRect: TRect);
procedure actLaunchCommandlineExecute(Sender: TObject);
private
FLastHintMousepos: TPoint;
FLastHintControlIndex: Integer;
@@ -2737,6 +2740,29 @@ begin
end;
procedure TMainForm.actLaunchCommandlineExecute(Sender: TObject);
var
path, p: String;
Params: TConnectionParameters;
begin
// Launch mysql.exe
path := GetRegValue(REGNAME_MYSQLBINARIES, DEFAULT_MYSQLBINARIES);
if (path = DEFAULT_MYSQLBINARIES) or (not FileExists(path+'\mysql.exe', true)) then
ErrorDialog('You need to tell '+APPNAME+' where your MySQL binaries reside, in Tools > Preferences > Miscellaneous')
else begin
Params := ActiveConnection.Parameters;
p := ' --host="'+Params.Hostname+'" --user="'+Params.Username+'" --port='+IntToStr(Params.Port);
if Params.Password <> '' then
p := p + ' --password="'+Params.Password+'"';
if Params.Compressed then
p := p + ' --compress';
if ActiveDatabase <> '' then
p := p + ' --database="' + ActiveDatabase + '"';
ShellExec('mysql.exe', path, p);
end;
end;
// Load SQL-file, make sure that SheetQuery is activated
procedure TMainForm.actLoadSQLExecute(Sender: TObject);
var

View File

@@ -33,6 +33,14 @@ object optionsform: Toptionsform
OnChanging = pagecontrolMainChanging
object tabMisc: TTabSheet
Caption = 'Miscellaneous'
object lblMySQLBinaries: TLabel
Left = 8
Top = 224
Width = 129
Height = 33
Caption = 'Location of MySQL command line binaries:'
WordWrap = True
end
object chkAutoReconnect: TCheckBox
Left = 8
Top = 31
@@ -131,22 +139,39 @@ object optionsform: Toptionsform
object chkColorBars: TCheckBox
Left = 8
Top = 188
Width = 201
Height = 17
Width = 129
Height = 30
Caption = 'Display bars in various list columns'
TabOrder = 8
WordWrap = True
OnClick = chkColorBarsClick
end
object cboxColorBars: TColorBox
Left = 249
Top = 186
Width = 184
Left = 150
Top = 188
Width = 123
Height = 22
Style = [cbStandardColors, cbExtendedColors, cbCustomColor, cbPrettyNames, cbCustomColors]
Anchors = [akTop, akRight]
TabOrder = 9
OnClick = Modified
end
object editMySQLBinaries: TButtonedEdit
Left = 152
Top = 221
Width = 281
Height = 21
Anchors = [akLeft, akTop, akRight]
Images = MainForm.ImageListMain
RightButton.ImageIndex = 51
RightButton.Visible = True
TabOrder = 10
Text = 'editMySQLBinaries'
TextHint = 'Required to launch mysql.exe shell'
OnChange = Modified
OnDblClick = editMySQLBinariesRightButtonClick
OnRightButtonClick = editMySQLBinariesRightButtonClick
end
end
object tabLogging: TTabSheet
Caption = 'Logging'

View File

@@ -114,6 +114,8 @@ type
chkEditorEnum: TCheckBox;
chkEditorSet: TCheckBox;
chkPrefillDateTime: TCheckBox;
lblMySQLBinaries: TLabel;
editMySQLBinaries: TButtonedEdit;
procedure FormShow(Sender: TObject);
procedure Modified(Sender: TObject);
procedure Apply(Sender: TObject);
@@ -149,6 +151,7 @@ type
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure comboGridTextColorsSelect(Sender: TObject);
procedure colorBoxGridTextColorsSelect(Sender: TObject);
procedure editMySQLBinariesRightButtonClick(Sender: TObject);
private
{ Private declarations }
FWasModified: Boolean;
@@ -243,6 +246,7 @@ begin
MainReg.WriteBool(REGNAME_DO_STATISTICS, chkDoStatistics.Checked);
MainReg.WriteBool(REGNAME_DISPLAYBARS, chkColorBars.Checked);
MainReg.WriteInteger(REGNAME_BARCOLOR, cboxColorBars.Selected);
MainReg.WriteString(REGNAME_MYSQLBINARIES, editMySQLBinaries.Text);
MainReg.WriteInteger(REGNAME_MAXQUERYRESULTS, updownMaxQueryResults.Position);
// Save color settings
MainReg.WriteInteger(REGNAME_FIELDCOLOR_INTEGER, FGridTextColors[dtcInteger]);
@@ -420,6 +424,7 @@ begin
chkDoStatistics.Checked := GetRegValue(REGNAME_DO_STATISTICS, DEFAULT_DO_STATISTICS);
chkColorBars.Checked := GetRegValue(REGNAME_DISPLAYBARS, DEFAULT_DISPLAYBARS);
cboxColorBars.Selected := GetRegValue(REGNAME_BARCOLOR, DEFAULT_BARCOLOR);
editMySQLBinaries.Text := GetRegValue(REGNAME_MYSQLBINARIES, DEFAULT_MYSQLBINARIES);
chkAskFileSave.Checked := GetRegValue(REGNAME_PROMPTFILESAVE, DEFAULT_PROMPTFILESAVE);
// Logging
@@ -538,6 +543,24 @@ begin
Browse.Free;
end;
procedure Toptionsform.editMySQLBinariesRightButtonClick(Sender: TObject);
var
Browse: TBrowseForFolder;
begin
// Select folder where MySQL binaries reside
Browse := TBrowseForFolder.Create(Self);
Browse.Folder := (Sender as TButtonedEdit).Text;
Browse.DialogCaption := 'Find mysql.exe directory';
Browse.BrowseOptions := Browse.BrowseOptions + [bifNewDialogStyle];
if Browse.Execute then begin
(Sender as TButtonedEdit).Text := Browse.Folder;
Modified(Sender);
end;
Browse.Free;
end;
{**
Updatecheck checkbox was clicked
}