mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 11:39:09 +02:00
* Scroll result display to the end
This commit is contained in:
parent
57fe53bd0d
commit
2a1a2a68a5
@ -112,14 +112,506 @@ object QueryFrame: TQueryFrame
|
|||||||
Caption = 'Result'
|
Caption = 'Result'
|
||||||
ClientHeight = 214
|
ClientHeight = 214
|
||||||
ClientWidth = 630
|
ClientWidth = 630
|
||||||
object MResult: TMemo
|
inline MResult: TSynEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 214
|
Height = 214
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 630
|
Width = 630
|
||||||
Align = alClient
|
Align = alClient
|
||||||
ScrollBars = ssAutoBoth
|
Font.Height = 13
|
||||||
|
Font.Name = 'DejaVu Sans Mono'
|
||||||
|
Font.Pitch = fpFixed
|
||||||
|
Font.Quality = fqNonAntialiased
|
||||||
|
ParentColor = False
|
||||||
|
ParentFont = False
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
Gutter.Visible = False
|
||||||
|
Gutter.Width = 57
|
||||||
|
Gutter.MouseActions = <>
|
||||||
|
RightGutter.Width = 0
|
||||||
|
RightGutter.MouseActions = <>
|
||||||
|
Keystrokes = <
|
||||||
|
item
|
||||||
|
Command = ecUp
|
||||||
|
ShortCut = 38
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelUp
|
||||||
|
ShortCut = 8230
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecScrollUp
|
||||||
|
ShortCut = 16422
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDown
|
||||||
|
ShortCut = 40
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelDown
|
||||||
|
ShortCut = 8232
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecScrollDown
|
||||||
|
ShortCut = 16424
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLeft
|
||||||
|
ShortCut = 37
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelLeft
|
||||||
|
ShortCut = 8229
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecWordLeft
|
||||||
|
ShortCut = 16421
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelWordLeft
|
||||||
|
ShortCut = 24613
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecRight
|
||||||
|
ShortCut = 39
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelRight
|
||||||
|
ShortCut = 8231
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecWordRight
|
||||||
|
ShortCut = 16423
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelWordRight
|
||||||
|
ShortCut = 24615
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPageDown
|
||||||
|
ShortCut = 34
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelPageDown
|
||||||
|
ShortCut = 8226
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPageBottom
|
||||||
|
ShortCut = 16418
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelPageBottom
|
||||||
|
ShortCut = 24610
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPageUp
|
||||||
|
ShortCut = 33
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelPageUp
|
||||||
|
ShortCut = 8225
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPageTop
|
||||||
|
ShortCut = 16417
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelPageTop
|
||||||
|
ShortCut = 24609
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLineStart
|
||||||
|
ShortCut = 36
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelLineStart
|
||||||
|
ShortCut = 8228
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecEditorTop
|
||||||
|
ShortCut = 16420
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelEditorTop
|
||||||
|
ShortCut = 24612
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLineEnd
|
||||||
|
ShortCut = 35
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelLineEnd
|
||||||
|
ShortCut = 8227
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecEditorBottom
|
||||||
|
ShortCut = 16419
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelEditorBottom
|
||||||
|
ShortCut = 24611
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecToggleMode
|
||||||
|
ShortCut = 45
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecCopy
|
||||||
|
ShortCut = 16429
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPaste
|
||||||
|
ShortCut = 8237
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteChar
|
||||||
|
ShortCut = 46
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecCut
|
||||||
|
ShortCut = 8238
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteLastChar
|
||||||
|
ShortCut = 8
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteLastChar
|
||||||
|
ShortCut = 8200
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteLastWord
|
||||||
|
ShortCut = 16392
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecUndo
|
||||||
|
ShortCut = 32776
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecRedo
|
||||||
|
ShortCut = 40968
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLineBreak
|
||||||
|
ShortCut = 13
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSelectAll
|
||||||
|
ShortCut = 16449
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecCopy
|
||||||
|
ShortCut = 16451
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecBlockIndent
|
||||||
|
ShortCut = 24649
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLineBreak
|
||||||
|
ShortCut = 16461
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecInsertLine
|
||||||
|
ShortCut = 16462
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteWord
|
||||||
|
ShortCut = 16468
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecBlockUnindent
|
||||||
|
ShortCut = 24661
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecPaste
|
||||||
|
ShortCut = 16470
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecCut
|
||||||
|
ShortCut = 16472
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteLine
|
||||||
|
ShortCut = 16473
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecDeleteEOL
|
||||||
|
ShortCut = 24665
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecUndo
|
||||||
|
ShortCut = 16474
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecRedo
|
||||||
|
ShortCut = 24666
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker0
|
||||||
|
ShortCut = 16432
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker1
|
||||||
|
ShortCut = 16433
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker2
|
||||||
|
ShortCut = 16434
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker3
|
||||||
|
ShortCut = 16435
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker4
|
||||||
|
ShortCut = 16436
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker5
|
||||||
|
ShortCut = 16437
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker6
|
||||||
|
ShortCut = 16438
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker7
|
||||||
|
ShortCut = 16439
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker8
|
||||||
|
ShortCut = 16440
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecGotoMarker9
|
||||||
|
ShortCut = 16441
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker0
|
||||||
|
ShortCut = 24624
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker1
|
||||||
|
ShortCut = 24625
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker2
|
||||||
|
ShortCut = 24626
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker3
|
||||||
|
ShortCut = 24627
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker4
|
||||||
|
ShortCut = 24628
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker5
|
||||||
|
ShortCut = 24629
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker6
|
||||||
|
ShortCut = 24630
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker7
|
||||||
|
ShortCut = 24631
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker8
|
||||||
|
ShortCut = 24632
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecSetMarker9
|
||||||
|
ShortCut = 24633
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel1
|
||||||
|
ShortCut = 41009
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel2
|
||||||
|
ShortCut = 41010
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel3
|
||||||
|
ShortCut = 41011
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel4
|
||||||
|
ShortCut = 41012
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel5
|
||||||
|
ShortCut = 41013
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel6
|
||||||
|
ShortCut = 41014
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel7
|
||||||
|
ShortCut = 41015
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel8
|
||||||
|
ShortCut = 41016
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel9
|
||||||
|
ShortCut = 41017
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldLevel0
|
||||||
|
ShortCut = 41008
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcFoldCurrent
|
||||||
|
ShortCut = 41005
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcUnFoldCurrent
|
||||||
|
ShortCut = 41003
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = EcToggleMarkupWord
|
||||||
|
ShortCut = 32845
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecNormalSelect
|
||||||
|
ShortCut = 24654
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColumnSelect
|
||||||
|
ShortCut = 24643
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecLineSelect
|
||||||
|
ShortCut = 24652
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecTab
|
||||||
|
ShortCut = 9
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecShiftTab
|
||||||
|
ShortCut = 8201
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecMatchBracket
|
||||||
|
ShortCut = 24642
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelUp
|
||||||
|
ShortCut = 40998
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelDown
|
||||||
|
ShortCut = 41000
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelLeft
|
||||||
|
ShortCut = 40997
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelRight
|
||||||
|
ShortCut = 40999
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelPageDown
|
||||||
|
ShortCut = 40994
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelPageBottom
|
||||||
|
ShortCut = 57378
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelPageUp
|
||||||
|
ShortCut = 40993
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelPageTop
|
||||||
|
ShortCut = 57377
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelLineStart
|
||||||
|
ShortCut = 40996
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelLineEnd
|
||||||
|
ShortCut = 40995
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelEditorTop
|
||||||
|
ShortCut = 57380
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Command = ecColSelEditorBottom
|
||||||
|
ShortCut = 57379
|
||||||
|
end>
|
||||||
|
MouseActions = <>
|
||||||
|
MouseTextActions = <>
|
||||||
|
MouseSelActions = <>
|
||||||
|
Lines.Strings = (
|
||||||
|
'MResult'
|
||||||
|
)
|
||||||
|
VisibleSpecialChars = [vscSpace, vscTabAtLast]
|
||||||
|
ReadOnly = True
|
||||||
|
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 = 24
|
||||||
|
MouseActions = <>
|
||||||
|
end
|
||||||
|
object SynGutterLineNumber1: TSynGutterLineNumber
|
||||||
|
Width = 17
|
||||||
|
MouseActions = <>
|
||||||
|
MarkupInfo.Background = clBtnFace
|
||||||
|
MarkupInfo.Foreground = clNone
|
||||||
|
DigitCount = 2
|
||||||
|
ShowOnlyLineNumbersMultiplesOf = 1
|
||||||
|
ZeroStart = False
|
||||||
|
LeadingZeros = False
|
||||||
|
end
|
||||||
|
object SynGutterChanges1: TSynGutterChanges
|
||||||
|
Width = 4
|
||||||
|
MouseActions = <>
|
||||||
|
ModifiedColor = 59900
|
||||||
|
SavedColor = clGreen
|
||||||
|
end
|
||||||
|
object SynGutterSeparator1: TSynGutterSeparator
|
||||||
|
Width = 2
|
||||||
|
MouseActions = <>
|
||||||
|
MarkupInfo.Background = clWhite
|
||||||
|
MarkupInfo.Foreground = clGray
|
||||||
|
end
|
||||||
|
object SynGutterCodeFolding1: TSynGutterCodeFolding
|
||||||
|
MouseActions = <>
|
||||||
|
MarkupInfo.Background = clNone
|
||||||
|
MarkupInfo.Foreground = clGray
|
||||||
|
MouseActionsExpanded = <>
|
||||||
|
MouseActionsCollapsed = <>
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object TSData: TTabSheet
|
object TSData: TTabSheet
|
||||||
|
@ -56,7 +56,6 @@ type
|
|||||||
MIExecuteScript: TMenuItem;
|
MIExecuteScript: TMenuItem;
|
||||||
MIExecuteSelection: TMenuItem;
|
MIExecuteSelection: TMenuItem;
|
||||||
MIExecuteSingle: TMenuItem;
|
MIExecuteSingle: TMenuItem;
|
||||||
MResult: TMemo;
|
|
||||||
ODSQL: TOpenDialog;
|
ODSQL: TOpenDialog;
|
||||||
PCResult: TPageControl;
|
PCResult: TPageControl;
|
||||||
FMSQL: TSynEdit;
|
FMSQL: TSynEdit;
|
||||||
@ -65,6 +64,7 @@ type
|
|||||||
SDSQL: TSaveDialog;
|
SDSQL: TSaveDialog;
|
||||||
SQuery: TSplitter;
|
SQuery: TSplitter;
|
||||||
SQLSyn: TSynSQLSyn;
|
SQLSyn: TSynSQLSyn;
|
||||||
|
MResult: TSynEdit;
|
||||||
TBExecute: TToolButton;
|
TBExecute: TToolButton;
|
||||||
TBSep1: TToolButton;
|
TBSep1: TToolButton;
|
||||||
TBPrevious: TToolButton;
|
TBPrevious: TToolButton;
|
||||||
@ -121,6 +121,7 @@ type
|
|||||||
FSQLConstName: String;
|
FSQLConstName: String;
|
||||||
FSQLQuoteOptions: TQuoteOptions;
|
FSQLQuoteOptions: TQuoteOptions;
|
||||||
FAbortScript : Boolean;
|
FAbortScript : Boolean;
|
||||||
|
procedure AddToResult(const Msg: String; SetCursorPos : Boolean = false);
|
||||||
procedure ClearResults;
|
procedure ClearResults;
|
||||||
function CountStatements(const S: String): Integer;
|
function CountStatements(const S: String): Integer;
|
||||||
function DetermineExecuteMode: TExecuteMode;
|
function DetermineExecuteMode: TExecuteMode;
|
||||||
@ -129,7 +130,7 @@ type
|
|||||||
procedure DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
procedure DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
||||||
procedure DoSQLStatement(Sender: TObject; Statement: TStrings; var StopExecution: Boolean);
|
procedure DoSQLStatement(Sender: TObject; Statement: TStrings; var StopExecution: Boolean);
|
||||||
// Execute SQL
|
// Execute SQL
|
||||||
procedure DoExecuteQuery(Const Qry: String; ACount : Integer = 0);
|
procedure DoExecuteQuery(const Qry: TStrings; ACount: Integer);
|
||||||
function GetTransaction: TSQLTransaction;
|
function GetTransaction: TSQLTransaction;
|
||||||
procedure LocalizeFrame;
|
procedure LocalizeFrame;
|
||||||
function SelectionHint: Boolean;
|
function SelectionHint: Boolean;
|
||||||
@ -145,7 +146,7 @@ type
|
|||||||
Public
|
Public
|
||||||
Constructor Create(AOwner : TComponent); override;
|
Constructor Create(AOwner : TComponent); override;
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
Function ExecuteQuery(Const Qry: String; ACount : Integer = 0) : Boolean;
|
function ExecuteQuery(const Qry: TStrings; ACount: Integer = 0): Boolean;
|
||||||
procedure ExecuteScript(AScript: String);
|
procedure ExecuteScript(AScript: String);
|
||||||
procedure SaveQuery(AFileName: String);
|
procedure SaveQuery(AFileName: String);
|
||||||
procedure LoadQuery(AFileName: String);
|
procedure LoadQuery(AFileName: String);
|
||||||
@ -393,7 +394,7 @@ begin
|
|||||||
RetryStatement:=False;
|
RetryStatement:=False;
|
||||||
Inc(FStatementCount);
|
Inc(FStatementCount);
|
||||||
Repeat
|
Repeat
|
||||||
If not ExecuteQuery(Statement.Text,FStatementCount) then
|
If not ExecuteQuery(Statement,FStatementCount) then
|
||||||
begin
|
begin
|
||||||
If not RetryStatement then
|
If not RetryStatement then
|
||||||
Inc(FErrorCount);
|
Inc(FErrorCount);
|
||||||
@ -419,7 +420,10 @@ end;
|
|||||||
|
|
||||||
procedure TQueryFrame.DoCommit(Sender: TObject);
|
procedure TQueryFrame.DoCommit(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
MResult.Append(SErrCommitNotSupported);
|
if not HaveTransaction then
|
||||||
|
AddToResult(SErrCommitNotSupported)
|
||||||
|
else
|
||||||
|
Transaction.Commit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQueryFrame.DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
procedure TQueryFrame.DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
||||||
@ -465,7 +469,6 @@ begin
|
|||||||
FMSQL.Lines:=Dest
|
FMSQL.Lines:=Dest
|
||||||
else
|
else
|
||||||
FMSQL.SelText:=Dest.Text
|
FMSQL.SelText:=Dest.Text
|
||||||
|
|
||||||
finally
|
finally
|
||||||
Dest.Free;
|
Dest.Free;
|
||||||
Src.Free;
|
Src.Free;
|
||||||
@ -530,9 +533,19 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQueryFrame.AExecuteSelectionExecute(Sender: TObject);
|
procedure TQueryFrame.AExecuteSelectionExecute(Sender: TObject);
|
||||||
|
|
||||||
|
Var
|
||||||
|
SQL : TStrings;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
ClearResults;
|
ClearResults;
|
||||||
ExecuteQuery(Trim(FMSQL.SelText));
|
SQL:=TStringList.Create;
|
||||||
|
try
|
||||||
|
SQL.Text:=FMSQL.SelText;
|
||||||
|
ExecuteQuery(SQL);
|
||||||
|
finally
|
||||||
|
SQL.Free;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQueryFrame.AExecuteSelectionScriptExecute(Sender: TObject);
|
procedure TQueryFrame.AExecuteSelectionScriptExecute(Sender: TObject);
|
||||||
@ -544,7 +557,7 @@ end;
|
|||||||
procedure TQueryFrame.AExecuteSingleExecute(Sender: TObject);
|
procedure TQueryFrame.AExecuteSingleExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
ClearResults;
|
ClearResults;
|
||||||
ExecuteQuery(Trim(FMSQL.Lines.Text));
|
ExecuteQuery(FMSQL.Lines);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQueryFrame.aRollBackExecute(Sender: TObject);
|
procedure TQueryFrame.aRollBackExecute(Sender: TObject);
|
||||||
@ -694,11 +707,11 @@ begin
|
|||||||
FMSQL.Lines.SaveToFile(AFileName);
|
FMSQL.Lines.SaveToFile(AFileName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQueryFrame.DoExecuteQuery(const Qry: String; ACount: Integer);
|
procedure TQueryFrame.DoExecuteQuery(const Qry: TStrings; ACount: Integer);
|
||||||
|
|
||||||
Var
|
Var
|
||||||
DS : TDataset;
|
DS : TDataset;
|
||||||
S,RowsAff : String;
|
SQL,S,RowsAff : String;
|
||||||
N : Integer;
|
N : Integer;
|
||||||
TS,TE : TDateTime;
|
TS,TE : TDateTime;
|
||||||
|
|
||||||
@ -706,16 +719,18 @@ begin
|
|||||||
RowsAff:='';
|
RowsAff:='';
|
||||||
TS:=Now;
|
TS:=Now;
|
||||||
if ACount<>0 then
|
if ACount<>0 then
|
||||||
MResult.Append(Format(SExecutingSQLStatementCount,[DateTimeToStr(TS),ACount]))
|
AddToResult(Format(SExecutingSQLStatementCount,[DateTimeToStr(TS),ACount]))
|
||||||
else
|
else
|
||||||
MResult.Append(Format(SExecutingSQLStatement,[DateTimeToStr(TS)]));
|
AddToResult(Format(SExecutingSQLStatement,[DateTimeToStr(TS)]));
|
||||||
MResult.Append(Qry);
|
For S in Qry do
|
||||||
|
AddToResult(S,False);
|
||||||
If Not assigned(FEngine) then
|
If Not assigned(FEngine) then
|
||||||
Raise Exception.Create(SErrNoEngine);
|
Raise Exception.Create(SErrNoEngine);
|
||||||
S:=ExtractDelimited(1,Trim(Qry),[' ',#9,#13,#10]);
|
SQL:=Qry.Text;
|
||||||
|
S:=ExtractDelimited(1,Trim(SQL),[' ',#9,#13,#10]);
|
||||||
If (IndexText(S,['With','SELECT'])=-1) then
|
If (IndexText(S,['With','SELECT'])=-1) then
|
||||||
begin
|
begin
|
||||||
N:=FEngine.RunQuery(Qry);
|
N:=FEngine.RunQuery(SQL);
|
||||||
TE:=Now;
|
TE:=Now;
|
||||||
If ecRowsAffected in FEngine.EngineCapabilities then
|
If ecRowsAffected in FEngine.EngineCapabilities then
|
||||||
RowsAff:=Format(SRowsAffected,[N]);
|
RowsAff:=Format(SRowsAffected,[N]);
|
||||||
@ -726,10 +741,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
DS:=Dataset;
|
DS:=Dataset;
|
||||||
If Assigned(DS) then
|
If Assigned(DS) then
|
||||||
FEngine.SetQueryStatement(Qry,DS)
|
FEngine.SetQueryStatement(SQL,DS)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
DS:=FEngine.CreateQuery(Qry,Self);
|
DS:=FEngine.CreateQuery(SQL,Self);
|
||||||
FData.Dataset:=DS;
|
FData.Dataset:=DS;
|
||||||
end;
|
end;
|
||||||
TSData.TabVisible:=true;
|
TSData.TabVisible:=true;
|
||||||
@ -739,15 +754,11 @@ begin
|
|||||||
TE:=Now;
|
TE:=Now;
|
||||||
RowsAff:=Format(SRecordsFetched,[DS.RecordCount]);
|
RowsAff:=Format(SRecordsFetched,[DS.RecordCount]);
|
||||||
end;
|
end;
|
||||||
MResult.Append(Format(SSQLExecutedOK,[DateTimeToStr(TE)]));
|
AddToResult(Format(SSQLExecutedOK,[DateTimeToStr(TE)]));
|
||||||
{$IFDEF VER2_6}
|
AddToResult(Format(SExecutionTime,[FormatDateTime('hh:nn:ss.zzz',TE-TS,[fdoInterval])]),RowsAff='');
|
||||||
MResult.Append(Format(SExecutionTime,[FormatDateTime('hh:nn:ss.zzz',TE-TS)]));
|
|
||||||
{$ELSE}
|
|
||||||
MResult.Append(Format(SExecutionTime,[FormatDateTime('hh:nn:ss.zzz',TE-TS,[fdoInterval])]));
|
|
||||||
{$ENDIF}
|
|
||||||
if (RowsAff<>'') then
|
if (RowsAff<>'') then
|
||||||
MResult.Append(RowsAff);
|
AddToResult(RowsAff,True);
|
||||||
AddToHistory(Qry);
|
AddToHistory(SQL);
|
||||||
ACloseQuery.Update;
|
ACloseQuery.Update;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -761,8 +772,27 @@ begin
|
|||||||
Result:=TSQLDBDDEngine(FEngine).Transaction;
|
Result:=TSQLDBDDEngine(FEngine).Transaction;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure TQueryFrame.AddToResult(const Msg : String; SetCursorPos : Boolean = false);
|
||||||
|
|
||||||
function TQueryFrame.ExecuteQuery(const Qry: String; ACount: Integer): Boolean;
|
var
|
||||||
|
MsgLines : TStringList;
|
||||||
|
|
||||||
|
begin
|
||||||
|
MsgLines:=TStringList.Create;
|
||||||
|
try
|
||||||
|
MsgLines.Text:=Msg;
|
||||||
|
MResult.Lines.AddStrings(MsgLines);
|
||||||
|
if SetCursorPos then
|
||||||
|
begin
|
||||||
|
MResult.SelStart:=Length(MResult.Text);
|
||||||
|
MResult.EnsureCursorPosVisible;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
MsgLines.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TQueryFrame.ExecuteQuery(const Qry: TStrings; ACount: Integer): Boolean;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
Msg : String;
|
Msg : String;
|
||||||
@ -796,8 +826,7 @@ begin
|
|||||||
if (Msg<>'') then
|
if (Msg<>'') then
|
||||||
begin
|
begin
|
||||||
PCResult.ActivePage:=TSResult;
|
PCResult.ActivePage:=TSResult;
|
||||||
MResult.Append(SErrorExecutingSQL);
|
AddToResult(Msg,True);
|
||||||
MResult.Append(Msg);
|
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
if ACount<=0 then
|
if ACount<=0 then
|
||||||
|
Loading…
Reference in New Issue
Block a user