Zitat:
Kannst du die entsprechende Funktion, die Zeile darin, wo der Fehler auftritt, und die Zeilen, wo die in exportKData aufgerufen wird, mal zeigen?
Kann ich machen. Ich habe hier gerade schon wieder einen anderen Fall, vergiss also bitte exportKData().
Die Funktion exportMedikament(...) ruft TSTDUtils.LittleEndianDateStringToDate(aValue: string): TDateTime auf. Letztgenannte Funktion soll einen speziellen Datumsstring parsen, schlägt aber fehl, da der String dem Datumsformat nicht entspricht. Da die Funtkion exportMedikament(...) sehr umfassend ist, möchte ich nur den Ausschnitt hier zeigen:
Hier die aufrufende Funktion:
Delphi-Quellcode:
if m_LicenseManager.License.IsLicensed('Patientendaten/Patient/Medikamente/Medikament/Absetzdatum') then
begin
if ((i = 10) and not l_Zusatz.IsEmpty) then l_Medikament.Absetzdatum := TSTDUtils.LittleEndianDateStringToDate(l_Zusatz); // Hier wird die Funktion aufgerufen und genau hier hält der Debugger
end;
Und hier die Funktion, in der die
Exception kommt, in einer anderen
Unit, wohlbemerkt:
Delphi-Quellcode:
class function TSTDUtils.LittleEndianDateStringToDate(aValue:
string): TDateTime;
var
l_CirculatedDateTime:
string;
begin
l_CirculatedDateTime := Copy(aValue, 7, 2) + FormatSettings.DateSeparator + Copy(aValue, 5, 2)
+ FormatSettings.DateSeparator + Copy(aValue, 1, 4);
if (Copy(l_CirculatedDateTime, 1, 5) = '
00.00')
then l_CirculatedDateTime := '
01.01.' + Copy(l_CirculatedDateTime, 7, 4);
result := StrToDate(l_CirculatedDateTime);
// Hier tritt vermutlich die Exception auf
end;
Die
Exception lautet:
".04.2014" ist kein gültiges Datum.
Und hier nochmals der Aufrufstack:
:7654c42d KERNELBASE.RaiseException + 0x58
:00426dca ConvertErrorFmt + $1E
uSTDExport.TSTDExport.exportMedikament(...)
...