mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Issue #2130: add table tools dialog
This commit is contained in:
@ -314,6 +314,13 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Frame"/>
|
||||
</Unit>
|
||||
<Unit>
|
||||
<Filename Value="source\tabletools.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="frmTableTools"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
</Unit>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -21,7 +21,7 @@ uses
|
||||
exportgrid, usermanager, selectdbobject, reformatter, searchreplace,
|
||||
connections, jsonregistry, sqlhelp, updatecheck, insertfiles, texteditor,
|
||||
customize_highlighter, preferences, table_editor, view, routine_editor,
|
||||
trigger_editor, event_editor;
|
||||
trigger_editor, event_editor, tabletools;
|
||||
|
||||
{$R *.res}
|
||||
{.$R resources.rc}
|
||||
|
@ -164,9 +164,9 @@ type
|
||||
procedure LogFromThread(Msg: String; Category: TDBLogCategory);
|
||||
end;
|
||||
|
||||
{TSqlTranspiler = class(TObject)
|
||||
TSqlTranspiler = class(TObject)
|
||||
class function CreateTable(SQL: String; SourceDb, TargetDb: TDBConnection): String;
|
||||
end;}
|
||||
end;
|
||||
|
||||
TClipboardHelper = class helper for TClipboard
|
||||
private
|
||||
@ -434,7 +434,7 @@ type
|
||||
function GetExecutableBits: Byte;
|
||||
procedure Help(Sender: TObject; Anchor: String);
|
||||
//function PortOpen(Port: Word): Boolean;
|
||||
//function IsValidFilePath(FilePath: String): Boolean;
|
||||
function IsValidFilePath(FilePath: String): Boolean;
|
||||
//function FileIsWritable(FilePath: String): Boolean;
|
||||
//function GetProductInfo(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion: DWORD; out pdwReturnedProductType: DWORD): BOOL stdcall; external kernel32 delayed;
|
||||
//function GetCurrentPackageFullName(out Len: Cardinal; Name: PWideChar): Integer; stdcall; external kernel32 delayed;
|
||||
@ -2739,7 +2739,7 @@ begin
|
||||
end;}
|
||||
|
||||
|
||||
{function IsValidFilePath(FilePath: String): Boolean;
|
||||
function IsValidFilePath(FilePath: String): Boolean;
|
||||
var
|
||||
Pieces: TStringList;
|
||||
i: Integer;
|
||||
@ -2748,11 +2748,12 @@ begin
|
||||
Result := True;
|
||||
Pieces := TStringList.Create;
|
||||
SplitRegExpr('[\\\/]', FilePath, Pieces);
|
||||
for i:=1 to Pieces.Count-1 do begin
|
||||
// Todo: implement cross platformic
|
||||
{for i:=1 to Pieces.Count-1 do begin
|
||||
Result := Result and TPath.HasValidFileNameChars(Pieces[i], False);
|
||||
end;
|
||||
end;}
|
||||
Pieces.Free;
|
||||
end;}
|
||||
end;
|
||||
|
||||
|
||||
{function FileIsWritable(FilePath: String): Boolean;
|
||||
@ -3398,7 +3399,7 @@ end;
|
||||
|
||||
{ TSqlTranspiler }
|
||||
|
||||
{class function TSqlTranspiler.CreateTable(SQL: String; SourceDb, TargetDb: TDBConnection): String;
|
||||
class function TSqlTranspiler.CreateTable(SQL: String; SourceDb, TargetDb: TDBConnection): String;
|
||||
begin
|
||||
Result := SQL;
|
||||
|
||||
@ -3408,7 +3409,7 @@ begin
|
||||
Result := ReplaceRegExpr('\sCOLLATE\s\w+(\s+GENERATED\s)', Result, '$1', [rroModifierI, rroUseSubstitution]);
|
||||
end;
|
||||
|
||||
end;}
|
||||
end;
|
||||
|
||||
|
||||
{ TClipboardHelper }
|
||||
|
@ -14,7 +14,7 @@ uses
|
||||
Generics.Defaults, opensslsockets, StdActns, Clipbrd, Types, LCLType, EditBtn,
|
||||
FileUtil, LMessages, jsonconf, dbconnection, dbstructures, dbstructures.mysql,
|
||||
generic_types, apphelpers, extra_controls, createdatabase,
|
||||
SynEditMarkupSpecialLine, searchreplace, ImgList, IniFiles, LazFileUtils;
|
||||
SynEditMarkupSpecialLine, searchreplace, ImgList, IniFiles, LazFileUtils, tabletools;
|
||||
|
||||
|
||||
type
|
||||
@ -1236,7 +1236,7 @@ type
|
||||
FDBObjectsMaxRows: Int64;
|
||||
FSearchReplaceDialog: TfrmSearchReplace;
|
||||
FCreateDatabaseDialog: TCreateDatabaseForm;
|
||||
//FTableToolsDialog: TfrmTableTools;
|
||||
FTableToolsDialog: TfrmTableTools;
|
||||
FGridEditFunctionMode: Boolean;
|
||||
FClipboardHasNull: Boolean;
|
||||
FTimeZoneOffset: Integer;
|
||||
@ -2967,7 +2967,7 @@ var
|
||||
DBObj: PDBObject;
|
||||
begin
|
||||
// Show table tools dialog
|
||||
{FTableToolsDialog := TfrmTableTools.Create(Self);
|
||||
FTableToolsDialog := TfrmTableTools.Create(Self);
|
||||
FTableToolsDialog.PreSelectObjects.Clear;
|
||||
if DBTreeClicked(Sender) then
|
||||
FTableToolsDialog.PreSelectObjects.Add(ActiveDbObj)
|
||||
@ -2990,7 +2990,7 @@ begin
|
||||
else if Sender = actGenerateData then
|
||||
FTableToolsDialog.ToolMode := tmGenerateData;
|
||||
FTableToolsDialog.ShowModal;
|
||||
FreeAndNil(FTableToolsDialog);}
|
||||
FreeAndNil(FTableToolsDialog);
|
||||
end;
|
||||
|
||||
|
||||
@ -13323,8 +13323,8 @@ begin
|
||||
Editors.Add(SqlHelpDialog.memoDescription);
|
||||
Editors.Add(SqlHelpDialog.MemoExample);
|
||||
end;
|
||||
{if Assigned(FTableToolsDialog) then
|
||||
Editors.Add(FTableToolsDialog.SynMemoFindText);}
|
||||
if Assigned(FTableToolsDialog) then
|
||||
Editors.Add(FTableToolsDialog.SynMemoFindText);
|
||||
if Assigned(frmCsvDetector) then
|
||||
Editors.Add(frmCsvDetector.SynMemoCreateTable);
|
||||
|
||||
|
846
source/tabletools.lfm
Normal file
846
source/tabletools.lfm
Normal file
@ -0,0 +1,846 @@
|
||||
object frmTableTools: TfrmTableTools
|
||||
Left = 734
|
||||
Height = 479
|
||||
Top = 126
|
||||
Width = 955
|
||||
BorderIcons = [biSystemMenu, biHelp]
|
||||
Caption = 'Table tools'
|
||||
ClientHeight = 479
|
||||
ClientWidth = 955
|
||||
Color = clBtnFace
|
||||
DesignTimePPI = 120
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
object lblCheckedSize: TLabel
|
||||
Left = 10
|
||||
Height = 20
|
||||
Top = 441
|
||||
Width = 100
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'lblCheckedSize'
|
||||
end
|
||||
object btnCloseOrCancel: TButton
|
||||
Left = 826
|
||||
Height = 31
|
||||
Top = 438
|
||||
Width = 119
|
||||
Anchors = [akRight, akBottom]
|
||||
Caption = 'Close'
|
||||
ModalResult = 2
|
||||
TabOrder = 3
|
||||
OnClick = btnCloseOrCancelClick
|
||||
end
|
||||
object pnlTop: TPanel
|
||||
Left = 0
|
||||
Height = 440
|
||||
Top = 0
|
||||
Width = 955
|
||||
Align = alTop
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 440
|
||||
ClientWidth = 955
|
||||
ParentBackground = False
|
||||
TabOrder = 0
|
||||
object spltHorizontally: TSplitter
|
||||
Cursor = crSizeWE
|
||||
Left = 231
|
||||
Height = 440
|
||||
Top = 0
|
||||
Width = 5
|
||||
OnMoved = spltHorizontallyMoved
|
||||
end
|
||||
object pnlRight: TPanel
|
||||
Left = 236
|
||||
Height = 440
|
||||
Top = 0
|
||||
Width = 719
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 440
|
||||
ClientWidth = 719
|
||||
ParentBackground = False
|
||||
TabOrder = 0
|
||||
object ResultGrid: TLazVirtualStringTree
|
||||
Left = 0
|
||||
Height = 199
|
||||
Top = 241
|
||||
Width = 719
|
||||
Align = alClient
|
||||
Header.AutoSizeIndex = -1
|
||||
Header.Columns = <>
|
||||
Header.Height = 25
|
||||
Header.MainColumn = -1
|
||||
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible, hoDisableAnimatedResize]
|
||||
Header.PopupMenu = MainForm.popupListHeader
|
||||
IncrementalSearch = isAll
|
||||
TabOrder = 0
|
||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toGridExtensions, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
||||
TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowHorzGridLines, toShowTreeLines, toShowVertGridLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme]
|
||||
TreeOptions.SelectionOptions = [toExtendedFocus, toFullRowSelect]
|
||||
OnCompareNodes = ResultGridCompareNodes
|
||||
OnGetText = ResultGridGetText
|
||||
OnPaintText = ResultGridPaintText
|
||||
OnGetNodeDataSize = ResultGridGetNodeDataSize
|
||||
OnHeaderClick = ResultGridHeaderClick
|
||||
OnInitNode = ResultGridInitNode
|
||||
end
|
||||
object tabsTools: TPageControl
|
||||
Left = 0
|
||||
Height = 241
|
||||
Top = 0
|
||||
Width = 719
|
||||
ActivePage = tabSQLexport
|
||||
Align = alTop
|
||||
TabIndex = 2
|
||||
TabOrder = 1
|
||||
OnChange = ValidateControls
|
||||
object tabMaintenance: TTabSheet
|
||||
Caption = 'Maintenance'
|
||||
ClientHeight = 208
|
||||
ClientWidth = 711
|
||||
ImageIndex = 39
|
||||
object lblOperation: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 18
|
||||
Width = 70
|
||||
Caption = 'Operation:'
|
||||
end
|
||||
object lblOptions: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 49
|
||||
Width = 55
|
||||
Caption = 'Options:'
|
||||
end
|
||||
object comboOperation: TComboBox
|
||||
Left = 100
|
||||
Height = 28
|
||||
Top = 14
|
||||
Width = 584
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
OnChange = ValidateControls
|
||||
end
|
||||
object chkQuick: TCheckBox
|
||||
Left = 101
|
||||
Height = 24
|
||||
Top = 48
|
||||
Width = 58
|
||||
Caption = 'Quick'
|
||||
TabOrder = 1
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkFast: TCheckBox
|
||||
Left = 101
|
||||
Height = 24
|
||||
Top = 71
|
||||
Width = 47
|
||||
Caption = 'Fast'
|
||||
TabOrder = 2
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkMedium: TCheckBox
|
||||
Left = 101
|
||||
Height = 24
|
||||
Top = 95
|
||||
Width = 76
|
||||
Caption = 'Medium'
|
||||
TabOrder = 3
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkExtended: TCheckBox
|
||||
Left = 230
|
||||
Height = 24
|
||||
Top = 48
|
||||
Width = 83
|
||||
Caption = 'Extended'
|
||||
TabOrder = 4
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkChanged: TCheckBox
|
||||
Left = 230
|
||||
Height = 24
|
||||
Top = 71
|
||||
Width = 80
|
||||
Caption = 'Changed'
|
||||
TabOrder = 5
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkUseFrm: TCheckBox
|
||||
Left = 230
|
||||
Height = 24
|
||||
Top = 95
|
||||
Width = 103
|
||||
Caption = 'Use FRM file'
|
||||
TabOrder = 6
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object btnHelpMaintenance: TButton
|
||||
Left = 591
|
||||
Height = 31
|
||||
Top = 48
|
||||
Width = 94
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Help'
|
||||
TabOrder = 7
|
||||
OnClick = btnHelpMaintenanceClick
|
||||
end
|
||||
object chkForUpgrade: TCheckBox
|
||||
Left = 101
|
||||
Height = 24
|
||||
Top = 120
|
||||
Width = 104
|
||||
Caption = 'For Upgrade'
|
||||
TabOrder = 8
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
end
|
||||
object tabFind: TTabSheet
|
||||
Caption = 'Find text'
|
||||
ClientHeight = 208
|
||||
ClientWidth = 711
|
||||
ImageIndex = 30
|
||||
object lblFindText: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 34
|
||||
Width = 78
|
||||
Caption = 'Text to find:'
|
||||
end
|
||||
object lblDataTypes: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 110
|
||||
Width = 155
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Search in column types:'
|
||||
end
|
||||
object lblMatchType: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 172
|
||||
Width = 77
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Match type:'
|
||||
end
|
||||
object comboDataTypes: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 108
|
||||
Width = 425
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
object chkCaseSensitive: TCheckBox
|
||||
Left = 260
|
||||
Height = 24
|
||||
Top = 140
|
||||
Width = 425
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
Caption = 'Case sensitive'
|
||||
TabOrder = 1
|
||||
end
|
||||
object comboMatchType: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 171
|
||||
Width = 425
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
ItemHeight = 20
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'Left and right wildcard'
|
||||
'Exact match'
|
||||
'Left wildcard'
|
||||
'Right wildcard'
|
||||
'Regular expression'
|
||||
)
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
Text = 'Left and right wildcard'
|
||||
end
|
||||
object tabsTextType: TPageControl
|
||||
Left = 260
|
||||
Height = 97
|
||||
Top = 4
|
||||
Width = 425
|
||||
ActivePage = tabSimpleText
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
TabIndex = 0
|
||||
TabOrder = 3
|
||||
OnChange = ValidateControls
|
||||
object tabSimpleText: TTabSheet
|
||||
Caption = 'Simple text'
|
||||
ClientHeight = 64
|
||||
ClientWidth = 417
|
||||
object memoFindText: TMemo
|
||||
Left = 0
|
||||
Height = 64
|
||||
Top = 0
|
||||
Width = 417
|
||||
Align = alClient
|
||||
ScrollBars = ssVertical
|
||||
TabOrder = 0
|
||||
OnChange = ValidateControls
|
||||
end
|
||||
end
|
||||
object tabSQL: TTabSheet
|
||||
Caption = 'SQL'
|
||||
ClientHeight = 64
|
||||
ClientWidth = 417
|
||||
ImageIndex = 1
|
||||
inline SynMemoFindText: TSynEdit
|
||||
Left = 0
|
||||
Height = 64
|
||||
Top = 0
|
||||
Width = 417
|
||||
Align = alClient
|
||||
Font.Height = -16
|
||||
Font.Name = 'Courier New'
|
||||
Font.Pitch = fpFixed
|
||||
Font.Quality = fqNonAntialiased
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
Gutter.Width = 72
|
||||
Gutter.MouseActions = <>
|
||||
RightGutter.Width = 0
|
||||
RightGutter.MouseActions = <>
|
||||
Highlighter = MainForm.SynSQLSynUsed
|
||||
Keystrokes = <>
|
||||
MouseActions = <>
|
||||
MouseTextActions = <>
|
||||
MouseSelActions = <>
|
||||
Lines.Strings = (
|
||||
'> NOW()'
|
||||
)
|
||||
Options = [eoAutoIndent, eoGroupUndo, eoShowScrollHint, eoSmartTabs, eoTabsToSpaces, eoDragDropEditing]
|
||||
MouseOptions = [emDragDropEditing]
|
||||
VisibleSpecialChars = [vscSpace, vscTabAtLast]
|
||||
SelectedColor.BackPriority = 50
|
||||
SelectedColor.ForePriority = 50
|
||||
SelectedColor.FramePriority = 50
|
||||
SelectedColor.BoldPriority = 50
|
||||
SelectedColor.ItalicPriority = 50
|
||||
SelectedColor.UnderlinePriority = 50
|
||||
SelectedColor.StrikeOutPriority = 50
|
||||
BracketHighlightStyle = sbhsBoth
|
||||
BracketMatchColor.Background = clNone
|
||||
BracketMatchColor.Foreground = clNone
|
||||
BracketMatchColor.Style = [fsBold]
|
||||
FoldedCodeColor.Background = clNone
|
||||
FoldedCodeColor.Foreground = clGray
|
||||
FoldedCodeColor.FrameColor = clGray
|
||||
MouseLinkColor.Background = clNone
|
||||
MouseLinkColor.Foreground = clBlue
|
||||
LineHighlightColor.Background = clNone
|
||||
LineHighlightColor.Foreground = clNone
|
||||
inline SynLeftGutterPartList1: TSynGutterPartList
|
||||
object SynGutterMarks1: TSynGutterMarks
|
||||
Width = 30
|
||||
MouseActions = <>
|
||||
end
|
||||
object SynGutterLineNumber1: TSynGutterLineNumber
|
||||
Width = 21
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clBtnFace
|
||||
MarkupInfo.Foreground = clNone
|
||||
DigitCount = 2
|
||||
ShowOnlyLineNumbersMultiplesOf = 1
|
||||
ZeroStart = False
|
||||
LeadingZeros = False
|
||||
end
|
||||
object SynGutterChanges1: TSynGutterChanges
|
||||
Width = 5
|
||||
MouseActions = <>
|
||||
ModifiedColor = 59900
|
||||
SavedColor = clGreen
|
||||
end
|
||||
object SynGutterSeparator1: TSynGutterSeparator
|
||||
Width = 3
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clWhite
|
||||
MarkupInfo.Foreground = clGray
|
||||
end
|
||||
object SynGutterCodeFolding1: TSynGutterCodeFolding
|
||||
Width = 13
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clNone
|
||||
MarkupInfo.Foreground = clGray
|
||||
MouseActionsExpanded = <>
|
||||
MouseActionsCollapsed = <>
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object tabSQLexport: TTabSheet
|
||||
Caption = 'SQL export'
|
||||
ClientHeight = 208
|
||||
ClientWidth = 711
|
||||
ImageIndex = 9
|
||||
object lblExportData: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 62
|
||||
Width = 35
|
||||
Caption = 'Data:'
|
||||
end
|
||||
object lblExportOutputType: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 130
|
||||
Width = 49
|
||||
Caption = 'Output:'
|
||||
end
|
||||
object lblExportDatabases: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 5
|
||||
Width = 82
|
||||
Caption = 'Database(s):'
|
||||
end
|
||||
object lblExportTables: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 31
|
||||
Width = 54
|
||||
Caption = 'Table(s):'
|
||||
end
|
||||
object lblExportOutputTarget: TLabel
|
||||
Left = 2
|
||||
Height = 20
|
||||
Top = 162
|
||||
Width = 63
|
||||
Caption = 'Filename:'
|
||||
end
|
||||
object lblInsertSize: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 96
|
||||
Width = 111
|
||||
Caption = 'Max INSERT size:'
|
||||
end
|
||||
object lblInsertSizeUnit: TLabel
|
||||
Left = 302
|
||||
Height = 20
|
||||
Top = 96
|
||||
Width = 155
|
||||
Caption = 'KB (0 = Single INSERTs)'
|
||||
end
|
||||
object btnExportOutputTargetSelect: TSpeedButton
|
||||
Left = 656
|
||||
Height = 26
|
||||
Hint = 'Browse filesystem'
|
||||
Top = 159
|
||||
Width = 29
|
||||
Anchors = [akTop, akRight]
|
||||
ImageIndex = 51
|
||||
OnClick = btnExportOutputTargetSelectClick
|
||||
end
|
||||
object chkExportDatabasesCreate: TCheckBox
|
||||
Left = 240
|
||||
Height = 24
|
||||
Top = 4
|
||||
Width = 64
|
||||
Caption = 'Create'
|
||||
TabOrder = 0
|
||||
OnClick = chkExportOptionClick
|
||||
end
|
||||
object chkExportDatabasesDrop: TCheckBox
|
||||
Left = 125
|
||||
Height = 24
|
||||
Top = 4
|
||||
Width = 55
|
||||
Caption = 'Drop'
|
||||
TabOrder = 1
|
||||
OnClick = chkExportOptionClick
|
||||
end
|
||||
object chkExportTablesDrop: TCheckBox
|
||||
Left = 125
|
||||
Height = 24
|
||||
Top = 30
|
||||
Width = 55
|
||||
Caption = 'Drop'
|
||||
TabOrder = 2
|
||||
OnClick = chkExportOptionClick
|
||||
end
|
||||
object chkExportTablesCreate: TCheckBox
|
||||
Left = 240
|
||||
Height = 24
|
||||
Top = 30
|
||||
Width = 64
|
||||
Caption = 'Create'
|
||||
TabOrder = 3
|
||||
OnClick = chkExportOptionClick
|
||||
end
|
||||
object comboExportData: TComboBox
|
||||
Left = 125
|
||||
Height = 28
|
||||
Top = 59
|
||||
Width = 560
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
OnChange = ValidateControls
|
||||
end
|
||||
object comboExportOutputType: TComboBox
|
||||
Left = 125
|
||||
Height = 28
|
||||
Top = 126
|
||||
Width = 560
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
DropDownCount = 16
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
OnChange = comboExportOutputTypeChange
|
||||
end
|
||||
object comboExportOutputTarget: TComboBox
|
||||
Left = 125
|
||||
Height = 28
|
||||
Top = 159
|
||||
Width = 527
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
DropDownCount = 16
|
||||
ItemHeight = 20
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 8
|
||||
Text = 'comboExportOutputTarget'
|
||||
OnChange = comboExportOutputTargetChange
|
||||
end
|
||||
object editInsertSize: TEdit
|
||||
Left = 125
|
||||
Height = 28
|
||||
Top = 92
|
||||
Width = 150
|
||||
NumbersOnly = True
|
||||
TabOrder = 5
|
||||
Text = '0'
|
||||
end
|
||||
object btnExportOptions: TButton
|
||||
Left = 529
|
||||
Height = 31
|
||||
Top = 90
|
||||
Width = 156
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Options'
|
||||
TabOrder = 7
|
||||
OnClick = btnExportOptionsClick
|
||||
end
|
||||
end
|
||||
object tabBulkTableEdit: TTabSheet
|
||||
Caption = 'Bulk table editor'
|
||||
ClientHeight = 208
|
||||
ClientWidth = 711
|
||||
ImageIndex = 19
|
||||
object chkBulkTableEditDatabase: TCheckBox
|
||||
Left = 4
|
||||
Height = 24
|
||||
Top = 6
|
||||
Width = 144
|
||||
Caption = 'Move to database:'
|
||||
TabOrder = 0
|
||||
OnClick = chkBulkTableEditCheckComboClick
|
||||
end
|
||||
object comboBulkTableEditDatabase: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 4
|
||||
Width = 424
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Enabled = False
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
end
|
||||
object chkBulkTableEditResetAutoinc: TCheckBox
|
||||
Left = 4
|
||||
Height = 24
|
||||
Top = 121
|
||||
Width = 200
|
||||
Caption = 'Reset auto increment value'
|
||||
TabOrder = 2
|
||||
OnClick = ValidateControls
|
||||
end
|
||||
object chkBulkTableEditCollation: TCheckBox
|
||||
Left = 4
|
||||
Height = 24
|
||||
Top = 64
|
||||
Width = 187
|
||||
Caption = 'Change default collation:'
|
||||
TabOrder = 3
|
||||
OnClick = chkBulkTableEditCheckComboClick
|
||||
end
|
||||
object comboBulkTableEditCollation: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 61
|
||||
Width = 424
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
DropDownCount = 16
|
||||
Enabled = False
|
||||
ItemHeight = 20
|
||||
Sorted = True
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
end
|
||||
object chkBulkTableEditEngine: TCheckBox
|
||||
Left = 4
|
||||
Height = 24
|
||||
Top = 35
|
||||
Width = 161
|
||||
Caption = 'Change table engine:'
|
||||
TabOrder = 5
|
||||
OnClick = chkBulkTableEditCheckComboClick
|
||||
end
|
||||
object comboBulkTableEditEngine: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 32
|
||||
Width = 424
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Enabled = False
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
end
|
||||
object chkBulkTableEditCharset: TCheckBox
|
||||
Left = 4
|
||||
Height = 24
|
||||
Top = 92
|
||||
Width = 144
|
||||
Caption = 'Convert to charset:'
|
||||
TabOrder = 7
|
||||
OnClick = chkBulkTableEditCheckComboClick
|
||||
end
|
||||
object comboBulkTableEditCharset: TComboBox
|
||||
Left = 260
|
||||
Height = 28
|
||||
Top = 90
|
||||
Width = 424
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
DropDownCount = 16
|
||||
Enabled = False
|
||||
ItemHeight = 20
|
||||
Style = csDropDownList
|
||||
TabOrder = 8
|
||||
end
|
||||
end
|
||||
object tabGenerateData: TTabSheet
|
||||
Caption = 'Generate data'
|
||||
ClientHeight = 208
|
||||
ClientWidth = 711
|
||||
ImageIndex = 130
|
||||
object lblGenerateDataNumRows: TLabel
|
||||
Left = 4
|
||||
Height = 20
|
||||
Top = 8
|
||||
Width = 110
|
||||
Caption = 'Number of rows:'
|
||||
end
|
||||
object lblGenerateDataNullAmount: TLabel
|
||||
Left = 2
|
||||
Height = 20
|
||||
Top = 42
|
||||
Width = 183
|
||||
Caption = 'Amount of NULLs [percent]:'
|
||||
end
|
||||
object editGenerateDataNumRows: TEdit
|
||||
Left = 250
|
||||
Height = 28
|
||||
Top = 4
|
||||
Width = 151
|
||||
NumbersOnly = True
|
||||
TabOrder = 0
|
||||
Text = '1.000'
|
||||
end
|
||||
object editGenerateDataNullAmount: TEdit
|
||||
Left = 250
|
||||
Height = 28
|
||||
Top = 39
|
||||
Width = 151
|
||||
NumbersOnly = True
|
||||
TabOrder = 1
|
||||
Text = '10'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object pnlLeft: TPanel
|
||||
Left = 0
|
||||
Height = 440
|
||||
Top = 0
|
||||
Width = 231
|
||||
Align = alLeft
|
||||
BevelOuter = bvNone
|
||||
Caption = 'pnlLeft'
|
||||
ClientHeight = 440
|
||||
ClientWidth = 231
|
||||
ParentBackground = False
|
||||
TabOrder = 1
|
||||
object pnlLeftTop: TPanel
|
||||
Left = 0
|
||||
Height = 36
|
||||
Top = 0
|
||||
Width = 231
|
||||
Align = alTop
|
||||
BevelOuter = bvNone
|
||||
Caption = 'pnlLeftTop'
|
||||
ClientHeight = 36
|
||||
ClientWidth = 231
|
||||
ParentBackground = False
|
||||
TabOrder = 0
|
||||
object editDatabaseFilter: TEditButton
|
||||
Left = 5
|
||||
Height = 28
|
||||
Hint = 'Database filter|A list of databases, separated by semicolon. Can contain regular expressions, e.g. "mydb;test.*;project\d+".'
|
||||
Top = 0
|
||||
Width = 61
|
||||
ButtonWidth = 29
|
||||
ImageIndex = 193
|
||||
MaxLength = 0
|
||||
NumGlyphs = 1
|
||||
OnButtonClick = editDatabaseTableFilterRightButtonClick
|
||||
OnChange = editDatabaseTableFilterChange
|
||||
OnKeyPress = editDatabaseTableFilterKeyPress
|
||||
PasswordChar = #0
|
||||
TabOrder = 0
|
||||
Text = 'editDatabaseFilter'
|
||||
TextHint = 'Database filter'
|
||||
end
|
||||
object editTableFilter: TEditButton
|
||||
Left = 74
|
||||
Height = 28
|
||||
Hint = 'Table filter|Can contain regular expressions, e.g. "phpbb_\d"'
|
||||
Top = 0
|
||||
Width = 85
|
||||
ButtonWidth = 29
|
||||
ImageIndex = 193
|
||||
MaxLength = 0
|
||||
NumGlyphs = 1
|
||||
OnButtonClick = editDatabaseTableFilterRightButtonClick
|
||||
OnChange = editDatabaseTableFilterChange
|
||||
OnKeyPress = editDatabaseTableFilterKeyPress
|
||||
PasswordChar = #0
|
||||
TabOrder = 1
|
||||
Text = 'editTableFilter'
|
||||
TextHint = 'Table filter'
|
||||
end
|
||||
end
|
||||
object TreeObjects: TLazVirtualStringTree
|
||||
Left = 0
|
||||
Height = 404
|
||||
Top = 36
|
||||
Width = 231
|
||||
Align = alClient
|
||||
Header.AutoSizeIndex = 0
|
||||
Header.Columns = <
|
||||
item
|
||||
Position = 0
|
||||
Text = 'Dummy, keeps compatibility to mainform.dbtree'
|
||||
Width = 164
|
||||
end
|
||||
item
|
||||
Alignment = taRightJustify
|
||||
Position = 1
|
||||
Text = 'Size'
|
||||
end>
|
||||
Header.Height = 32
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoShowSortGlyphs]
|
||||
IncrementalSearch = isInitializedOnly
|
||||
PopupMenu = popupTree
|
||||
TabOrder = 1
|
||||
TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toEditOnClick]
|
||||
TreeOptions.PaintOptions = [toHotTrack, toShowButtons, toShowDropmark, toShowRoot, toShowTreeLines, toThemeAware, toUseBlendedImages, toGhostedIfUnfocused, toUseExplorerTheme, toHideTreeLinesIfThemed]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect, toRightClickSelect]
|
||||
OnBeforeCellPaint = TreeObjectsBeforeCellPaint
|
||||
OnChange = TreeObjectsChange
|
||||
OnChecked = TreeObjectsChecked
|
||||
OnChecking = TreeObjectsChecking
|
||||
OnExpanded = TreeObjectsExpanded
|
||||
OnGetText = TreeObjectsGetText
|
||||
OnPaintText = TreeObjectsPaintText
|
||||
OnGetImageIndex = TreeObjectsGetImageIndex
|
||||
OnGetNodeDataSize = TreeObjectsGetNodeDataSize
|
||||
OnInitChildren = TreeObjectsInitChildren
|
||||
OnInitNode = TreeObjectsInitNode
|
||||
end
|
||||
end
|
||||
end
|
||||
object btnExecute: TButton
|
||||
Left = 700
|
||||
Height = 31
|
||||
Top = 438
|
||||
Width = 119
|
||||
Anchors = [akRight, akBottom]
|
||||
Caption = 'Execute'
|
||||
TabOrder = 2
|
||||
OnClick = Execute
|
||||
end
|
||||
object btnSeeResults: TButton
|
||||
Left = 545
|
||||
Height = 31
|
||||
Top = 438
|
||||
Width = 148
|
||||
Anchors = [akRight, akBottom]
|
||||
Caption = 'See results'
|
||||
ModalResult = 1
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
OnClick = btnSeeResultsClick
|
||||
end
|
||||
object popupTree: TPopupMenu
|
||||
Left = 180
|
||||
Top = 440
|
||||
object menuCheckNone: TMenuItem
|
||||
Caption = 'Check none'
|
||||
OnClick = CheckAllClick
|
||||
end
|
||||
object menuCheckAll: TMenuItem
|
||||
Caption = 'Check all'
|
||||
OnClick = CheckAllClick
|
||||
end
|
||||
object menuCheckByType: TMenuItem
|
||||
Caption = 'Check ...'
|
||||
end
|
||||
end
|
||||
object popupExportOptions: TPopupMenu
|
||||
Left = 220
|
||||
Top = 440
|
||||
object menuExportAddComments: TMenuItem
|
||||
AutoCheck = True
|
||||
Caption = 'Add comments'
|
||||
end
|
||||
object menuExportRemoveAutoIncrement: TMenuItem
|
||||
AutoCheck = True
|
||||
Caption = 'Remove AUTO_INCREMENT clauses'
|
||||
end
|
||||
object menuExportRemoveDefiner: TMenuItem
|
||||
AutoCheck = True
|
||||
Caption = 'Remove DEFINER clauses'
|
||||
end
|
||||
object menuCopyMysqldumpCommand: TMenuItem
|
||||
Caption = 'Copy mysqldump command'
|
||||
OnClick = menuCopyMysqldumpCommandClick
|
||||
end
|
||||
end
|
||||
object timerCalcSize: TTimer
|
||||
Enabled = False
|
||||
Interval = 200
|
||||
OnTimer = timerCalcSizeTimer
|
||||
Left = 330
|
||||
Top = 440
|
||||
end
|
||||
end
|
2439
source/tabletools.pas
Normal file
2439
source/tabletools.pas
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user