From e686ea171b627fb8c2abba873c64a15c6092ded6 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Mon, 27 Aug 2012 15:33:18 +0000 Subject: [PATCH] Silence conversion errors while reading query history from registry. See pm from Thomas Hauck. --- source/main.pas | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/source/main.pas b/source/main.pas index da9fb38a..801c7e4c 100644 --- a/source/main.pas +++ b/source/main.pas @@ -11057,19 +11057,27 @@ begin // Prevent from running into serious errors when registry has some non-numeric value if j<>-1 then begin Item := TQueryHistoryItem.Create; - Item.RegValue := j; - Raw := AppSettings.ReadString(ValueNames[i]); - p := Pos(DELIM, Raw); - Item.Time := StrToDateTime(Copy(Raw, 1, p-1)); - System.Delete(Raw, 1, p); - p := Pos(DELIM, Raw); - Item.Database := Copy(Raw, 1, p-1); - System.Delete(Raw, 1, p); - p := Pos(DELIM, Raw); - Item.Duration := StrToIntDef(Copy(Raw, 1, p-1), 0); - FMaxDuration := Max(FMaxDuration, Item.Duration); - Item.SQL := Copy(Raw, p+1, Length(Raw)); - Add(Item); + try + Item.RegValue := j; + Raw := AppSettings.ReadString(ValueNames[i]); + p := Pos(DELIM, Raw); + Item.Time := StrToDateTime(Copy(Raw, 1, p-1)); + System.Delete(Raw, 1, p); + p := Pos(DELIM, Raw); + Item.Database := Copy(Raw, 1, p-1); + System.Delete(Raw, 1, p); + p := Pos(DELIM, Raw); + Item.Duration := StrToIntDef(Copy(Raw, 1, p-1), 0); + FMaxDuration := Max(FMaxDuration, Item.Duration); + Item.SQL := Copy(Raw, p+1, Length(Raw)); + Add(Item); + except + on E:Exception do begin + MainForm.LogSQL(E.ClassName+': '+E.Message, lcError); + Item.Free; + Continue; + end; + end; end; end; // Sort by date