mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 18:18:02 +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'
|
||||
ClientHeight = 214
|
||||
ClientWidth = 630
|
||||
object MResult: TMemo
|
||||
inline MResult: TSynEdit
|
||||
Left = 0
|
||||
Height = 214
|
||||
Top = 0
|
||||
Width = 630
|
||||
Align = alClient
|
||||
ScrollBars = ssAutoBoth
|
||||
Font.Height = 13
|
||||
Font.Name = 'DejaVu Sans Mono'
|
||||
Font.Pitch = fpFixed
|
||||
Font.Quality = fqNonAntialiased
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
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
|
||||
object TSData: TTabSheet
|
||||
|
@ -56,7 +56,6 @@ type
|
||||
MIExecuteScript: TMenuItem;
|
||||
MIExecuteSelection: TMenuItem;
|
||||
MIExecuteSingle: TMenuItem;
|
||||
MResult: TMemo;
|
||||
ODSQL: TOpenDialog;
|
||||
PCResult: TPageControl;
|
||||
FMSQL: TSynEdit;
|
||||
@ -65,6 +64,7 @@ type
|
||||
SDSQL: TSaveDialog;
|
||||
SQuery: TSplitter;
|
||||
SQLSyn: TSynSQLSyn;
|
||||
MResult: TSynEdit;
|
||||
TBExecute: TToolButton;
|
||||
TBSep1: TToolButton;
|
||||
TBPrevious: TToolButton;
|
||||
@ -121,6 +121,7 @@ type
|
||||
FSQLConstName: String;
|
||||
FSQLQuoteOptions: TQuoteOptions;
|
||||
FAbortScript : Boolean;
|
||||
procedure AddToResult(const Msg: String; SetCursorPos : Boolean = false);
|
||||
procedure ClearResults;
|
||||
function CountStatements(const S: String): Integer;
|
||||
function DetermineExecuteMode: TExecuteMode;
|
||||
@ -129,7 +130,7 @@ type
|
||||
procedure DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
||||
procedure DoSQLStatement(Sender: TObject; Statement: TStrings; var StopExecution: Boolean);
|
||||
// Execute SQL
|
||||
procedure DoExecuteQuery(Const Qry: String; ACount : Integer = 0);
|
||||
procedure DoExecuteQuery(const Qry: TStrings; ACount: Integer);
|
||||
function GetTransaction: TSQLTransaction;
|
||||
procedure LocalizeFrame;
|
||||
function SelectionHint: Boolean;
|
||||
@ -145,7 +146,7 @@ type
|
||||
Public
|
||||
Constructor Create(AOwner : TComponent); 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 SaveQuery(AFileName: String);
|
||||
procedure LoadQuery(AFileName: String);
|
||||
@ -393,7 +394,7 @@ begin
|
||||
RetryStatement:=False;
|
||||
Inc(FStatementCount);
|
||||
Repeat
|
||||
If not ExecuteQuery(Statement.Text,FStatementCount) then
|
||||
If not ExecuteQuery(Statement,FStatementCount) then
|
||||
begin
|
||||
If not RetryStatement then
|
||||
Inc(FErrorCount);
|
||||
@ -419,7 +420,10 @@ end;
|
||||
|
||||
procedure TQueryFrame.DoCommit(Sender: TObject);
|
||||
begin
|
||||
MResult.Append(SErrCommitNotSupported);
|
||||
if not HaveTransaction then
|
||||
AddToResult(SErrCommitNotSupported)
|
||||
else
|
||||
Transaction.Commit;
|
||||
end;
|
||||
|
||||
procedure TQueryFrame.DoDirective(Sender: TObject; Directive, Argument: AnsiString; var StopExecution: Boolean);
|
||||
@ -465,7 +469,6 @@ begin
|
||||
FMSQL.Lines:=Dest
|
||||
else
|
||||
FMSQL.SelText:=Dest.Text
|
||||
|
||||
finally
|
||||
Dest.Free;
|
||||
Src.Free;
|
||||
@ -530,9 +533,19 @@ begin
|
||||
end;
|
||||
|
||||
procedure TQueryFrame.AExecuteSelectionExecute(Sender: TObject);
|
||||
|
||||
Var
|
||||
SQL : TStrings;
|
||||
|
||||
begin
|
||||
ClearResults;
|
||||
ExecuteQuery(Trim(FMSQL.SelText));
|
||||
SQL:=TStringList.Create;
|
||||
try
|
||||
SQL.Text:=FMSQL.SelText;
|
||||
ExecuteQuery(SQL);
|
||||
finally
|
||||
SQL.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TQueryFrame.AExecuteSelectionScriptExecute(Sender: TObject);
|
||||
@ -544,7 +557,7 @@ end;
|
||||
procedure TQueryFrame.AExecuteSingleExecute(Sender: TObject);
|
||||
begin
|
||||
ClearResults;
|
||||
ExecuteQuery(Trim(FMSQL.Lines.Text));
|
||||
ExecuteQuery(FMSQL.Lines);
|
||||
end;
|
||||
|
||||
procedure TQueryFrame.aRollBackExecute(Sender: TObject);
|
||||
@ -694,11 +707,11 @@ begin
|
||||
FMSQL.Lines.SaveToFile(AFileName);
|
||||
end;
|
||||
|
||||
procedure TQueryFrame.DoExecuteQuery(const Qry: String; ACount: Integer);
|
||||
procedure TQueryFrame.DoExecuteQuery(const Qry: TStrings; ACount: Integer);
|
||||
|
||||
Var
|
||||
DS : TDataset;
|
||||
S,RowsAff : String;
|
||||
SQL,S,RowsAff : String;
|
||||
N : Integer;
|
||||
TS,TE : TDateTime;
|
||||
|
||||
@ -706,16 +719,18 @@ begin
|
||||
RowsAff:='';
|
||||
TS:=Now;
|
||||
if ACount<>0 then
|
||||
MResult.Append(Format(SExecutingSQLStatementCount,[DateTimeToStr(TS),ACount]))
|
||||
AddToResult(Format(SExecutingSQLStatementCount,[DateTimeToStr(TS),ACount]))
|
||||
else
|
||||
MResult.Append(Format(SExecutingSQLStatement,[DateTimeToStr(TS)]));
|
||||
MResult.Append(Qry);
|
||||
AddToResult(Format(SExecutingSQLStatement,[DateTimeToStr(TS)]));
|
||||
For S in Qry do
|
||||
AddToResult(S,False);
|
||||
If Not assigned(FEngine) then
|
||||
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
|
||||
begin
|
||||
N:=FEngine.RunQuery(Qry);
|
||||
N:=FEngine.RunQuery(SQL);
|
||||
TE:=Now;
|
||||
If ecRowsAffected in FEngine.EngineCapabilities then
|
||||
RowsAff:=Format(SRowsAffected,[N]);
|
||||
@ -726,10 +741,10 @@ begin
|
||||
begin
|
||||
DS:=Dataset;
|
||||
If Assigned(DS) then
|
||||
FEngine.SetQueryStatement(Qry,DS)
|
||||
FEngine.SetQueryStatement(SQL,DS)
|
||||
else
|
||||
begin
|
||||
DS:=FEngine.CreateQuery(Qry,Self);
|
||||
DS:=FEngine.CreateQuery(SQL,Self);
|
||||
FData.Dataset:=DS;
|
||||
end;
|
||||
TSData.TabVisible:=true;
|
||||
@ -739,15 +754,11 @@ begin
|
||||
TE:=Now;
|
||||
RowsAff:=Format(SRecordsFetched,[DS.RecordCount]);
|
||||
end;
|
||||
MResult.Append(Format(SSQLExecutedOK,[DateTimeToStr(TE)]));
|
||||
{$IFDEF VER2_6}
|
||||
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}
|
||||
AddToResult(Format(SSQLExecutedOK,[DateTimeToStr(TE)]));
|
||||
AddToResult(Format(SExecutionTime,[FormatDateTime('hh:nn:ss.zzz',TE-TS,[fdoInterval])]),RowsAff='');
|
||||
if (RowsAff<>'') then
|
||||
MResult.Append(RowsAff);
|
||||
AddToHistory(Qry);
|
||||
AddToResult(RowsAff,True);
|
||||
AddToHistory(SQL);
|
||||
ACloseQuery.Update;
|
||||
end;
|
||||
|
||||
@ -761,8 +772,27 @@ begin
|
||||
Result:=TSQLDBDDEngine(FEngine).Transaction;
|
||||
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
|
||||
Msg : String;
|
||||
@ -796,8 +826,7 @@ begin
|
||||
if (Msg<>'') then
|
||||
begin
|
||||
PCResult.ActivePage:=TSResult;
|
||||
MResult.Append(SErrorExecutingSQL);
|
||||
MResult.Append(Msg);
|
||||
AddToResult(Msg,True);
|
||||
end;
|
||||
Finally
|
||||
if ACount<=0 then
|
||||
|
Loading…
Reference in New Issue
Block a user