From 63a69de637f0c823028f44caeb84ce6e2361767a Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Thu, 1 Jul 2010 19:45:23 +0000 Subject: [PATCH] Adjust offset stuff in SQL splitter routine, DELIMITER department. Fixes issue #2053. --- source/helpers.pas | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/helpers.pas b/source/helpers.pas index 1bf1c3a8..714c76f9 100644 --- a/source/helpers.pas +++ b/source/helpers.pas @@ -379,9 +379,9 @@ begin DelimLen := Length(Delim); Result := TSQLBatch.Create; rx := TRegExpr.Create; - rx.Expression := '^\s*DELIMITER\s+(\S+)\s*$'; + rx.Expression := '^\s*DELIMITER\s+(\S+)\s*'; rx.ModifierI := True; - rx.ModifierM := True; + rx.ModifierM := False; while i < AllLen do begin Inc(i); // Current and next char @@ -405,10 +405,10 @@ begin if (CharInSet(c, NewLines) and (not CharInSet(n, NewLines))) or (i = 1) then begin if i > 1 then InComment := False; - if (not InString) and (not InBigComment) and rx.Exec(copy(SQL, LastLeftOffset, 100)) then begin + if (not InString) and (not InBigComment) and rx.Exec(copy(SQL, i, 100)) then begin Delim := rx.Match[1]; - DelimLen := Length(Delim); - Inc(i, rx.MatchLen[0]+1); + DelimLen := rx.MatchLen[1]; + Inc(i, rx.MatchLen[0]); LastLeftOffset := i; continue; end;