mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-26 11:17:57 +08:00
Fix remembering delimiter string after detecting one with parsesql()
This commit is contained in:
@ -2434,9 +2434,9 @@ var
|
||||
recordcount : Integer;
|
||||
ds : TDataSet;
|
||||
begin
|
||||
if CurrentLine then SQL := parseSQL(SynMemoQuery.LineText, Mainform.Delimiter)
|
||||
else if Selection then SQL := parseSQL(SynMemoQuery.SelText, Mainform.Delimiter)
|
||||
else SQL := parseSQL(SynMemoQuery.Text, Mainform.Delimiter);
|
||||
if CurrentLine then SQL := parseSQL(SynMemoQuery.LineText)
|
||||
else if Selection then SQL := parseSQL(SynMemoQuery.SelText)
|
||||
else SQL := parseSQL(SynMemoQuery.Text);
|
||||
|
||||
if ( SQL.Count = 0 ) then
|
||||
begin
|
||||
|
@ -44,7 +44,7 @@ type
|
||||
function explode(separator, a: String) :TStringList;
|
||||
procedure ensureValidIdentifier(name: String);
|
||||
function getEnumValues(str: WideString): WideString;
|
||||
function parsesql(sql: WideString; delimiter: WideString) : TWideStringList;
|
||||
function parsesql(sql: WideString) : TWideStringList;
|
||||
function sstr(str: WideString; len: Integer) : WideString;
|
||||
function encrypt(str: String): String;
|
||||
function decrypt(str: String): String;
|
||||
@ -424,7 +424,7 @@ end;
|
||||
@param String SQL start delimiter
|
||||
@return TStringList Separated statements
|
||||
}
|
||||
function parsesql(sql: WideString; delimiter: WideString) : TWideStringList;
|
||||
function parsesql(sql: WideString) : TWideStringList;
|
||||
var
|
||||
i, j, start, len : Integer;
|
||||
tmp : WideString;
|
||||
@ -529,7 +529,7 @@ begin
|
||||
if indelimiter then begin
|
||||
if (sql[i] in [WideChar(#13), WideChar(#10)]) or (i = len) then begin
|
||||
if (i = len) then j := 1 else j := 0;
|
||||
delimiter := copy(sql, start + 10, i + j - (start + 10));
|
||||
Mainform.Delimiter := copy(sql, start + 10, i + j - (start + 10));
|
||||
indelimiter := false;
|
||||
start := i + 1;
|
||||
end;
|
||||
@ -581,11 +581,11 @@ begin
|
||||
end;
|
||||
|
||||
// Add sql sentence.
|
||||
delimiter_length := Length(delimiter);
|
||||
if ((not instring) and (scanReverse(sql, i, delimiter, delimiter_length, false)) or (i = len)) then begin
|
||||
delimiter_length := Length(Mainform.Delimiter);
|
||||
if ((not instring) and (scanReverse(sql, i, Mainform.Delimiter, delimiter_length, false)) or (i = len)) then begin
|
||||
if (i < len) then j := delimiter_length else begin
|
||||
// end of string, add sql sentence but only remove delimiter if it's there
|
||||
if scanReverse(sql, i, delimiter, delimiter_length, false) then j := delimiter_length else j := 0;
|
||||
if scanReverse(sql, i, Mainform.Delimiter, delimiter_length, false) then j := delimiter_length else j := 0;
|
||||
end;
|
||||
if inconditional then begin
|
||||
addResult(result, copy(sql, start, i - start - j + 1), '%s */');
|
||||
|
@ -117,7 +117,7 @@ begin
|
||||
Repaint;
|
||||
|
||||
// Split buffer into single queries
|
||||
SQL := parseSQL( lines_remaining + lines, ';' );
|
||||
SQL := parseSQL( lines_remaining + lines );
|
||||
lines := '';
|
||||
lines_remaining := '';
|
||||
|
||||
|
Reference in New Issue
Block a user