Das ist mir schon klar.
Der Fehler, kommt aber auch, wenn ich ohne Debugger ausführe, da ja ein Fehler vorhanden ist. Ich muss ja realisieren, wodurch der Fehler kommt, um diesen dann auszuschliessen. Nur wenn ich im Debugger auf Anhalten klicke, um an die Stelle im Code zu gelangen, wo der Fehler passiert, lande ich irgendwo im Quellcode der ZEOS Kompo und wieß jetzt nicht, wie ich anfangen kann diesen Abzufangen.
Hier nochmal die Fehlermeldungen und der Code in dem ich bei Anhalten lande.
Delphi-Quellcode:
procedure CheckInterbase6Error(PlainDriver: IZInterbasePlainDriver;
StatusVector: TARRAY_ISC_STATUS; LoggingCategory: TZLoggingCategory = lcOther;
SQL:
string = '
');
var
Msg:
array[0..1024]
of Char;
PStatusVector: PISC_STATUS;
ErrorMessage, ErrorSqlMessage:
string;
ErrorCode: LongInt;
begin
if (StatusVector[0] = 1)
and (StatusVector[1] > 0)
then
begin
ErrorMessage:='
';
PStatusVector := @StatusVector;
while PlainDriver.isc_interprete(Msg, @PStatusVector) > 0
do
ErrorMessage := ErrorMessage + '
' + StrPas(Msg);
ErrorCode := PlainDriver.isc_sqlcode(@StatusVector);
PlainDriver.isc_sql_interprete(ErrorCode, Msg, 1024);
ErrorSqlMessage := StrPas(Msg);
{$IFDEF INTERBASE_EXTENDED_MESSAGES}
if SQL <> '
'
then
SQL := Format('
The SQL: %s; ', [
SQL]);
{$ENDIF}
if ErrorMessage <> '
'
then
begin
DriverManager.LogError(LoggingCategory, PlainDriver.GetProtocol,
ErrorMessage, ErrorCode, ErrorSqlMessage +
SQL);
{$IFDEF INTERBASE_EXTENDED_MESSAGES}
raise EZSQLException.CreateWithCode(ErrorCode,
Format('
SQL Error: %s. Error Code: %d. %s',
[ErrorMessage, ErrorCode, ErrorSqlMessage]) +
SQL);

Zitat von
jaenicke:
Auf TryStrToDate stattdessen habe ich ja schon hingewiesen, das wäre noch besser...
Und das versteh ich noch nicht so ganz.
MFG
jens