From 07bdeea79ffaa8f14337986bfb9140c38a58b664 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Sat, 26 Jul 2014 14:14:38 +0000 Subject: [PATCH] Catch date/time conversion errors in GetDateTimeValue, which happen e.g. when passing an empty date. --- source/dbconnection.pas | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/source/dbconnection.pas b/source/dbconnection.pas index e659bca3..58f4703d 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -3597,16 +3597,21 @@ begin // Return date/time string value as expected by server case Parameters.NetTypeGroup of ngMSSQL: begin - dt := StrToDateTime(Input); - case Datatype of - dtDate: - Result := SysUtils.FormatDateTime('dd"/"mm"/"yyyy', dt); - dtTime: - Result := SysUtils.FormatDateTime('hh":"nn":"ss', dt); - dtYear: - Result := SysUtils.FormatDateTime('yyyy', dt); - dtDatetime: - Result := SysUtils.FormatDateTime('dd"/"mm"/"yyyy hh":"nn":"ss', dt); + try + dt := StrToDateTime(Input); + case Datatype of + dtDate: + Result := SysUtils.FormatDateTime('dd"/"mm"/"yyyy', dt); + dtTime: + Result := SysUtils.FormatDateTime('hh":"nn":"ss', dt); + dtYear: + Result := SysUtils.FormatDateTime('yyyy', dt); + dtDatetime: + Result := SysUtils.FormatDateTime('dd"/"mm"/"yyyy hh":"nn":"ss', dt); + end; + except + on E:EConvertError do + Result := Input; end; end; else