folgende Fehlermeldung:
UPDATE:EXECUTE(467):------------------------------------------------------------------------------
oError:args :
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Parameter hat falschen Typ
oError:filename :
oError:genCode : 2
oError:operation :
oError:osCode : 0
oError:severity : 2
oError:subCode : 2311
oError:subSystem : BASE
oError:thread : 3
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von COMPARE:GETERRORSTRING(596)
Aufgerufen von UPDATE:EXECUTE(467)
Code: Alles auswählen
oLog:log("Fehler : " + ::oCompare:getErrorString() )
Code: Alles auswählen
METHOD Compare:getErrorString()
local cError := " "
DO CASE
CASE ::nError == C_ERR_STRUCT
cError := "Keine Übereinstimmung der Datenbankstruktur"
ENDCASE
RETURN cError
Code: Alles auswählen
CASE ::nError == C_ERR_STRUCT
Der Fehler tritt beim Kunden sporadisch auf, ich selbst kann ihn nicht reproduzieren, noch kann ich nachvollziehen, was falsch gelaufen sein könnte.
::nError wird bei Objekterzeugung mit 0 initiiert, hat also jederzeit einen numerischen Wert. Die Methode getErrorString() liefert auch immer einen String.
Hat jemand noch eine Idee?
*edit*
Neben dem Hauptthread, starte ich 2 weitere Threads, wobei die Methode getErrorString nur in einem Thread aufgerufen wird.
Die Methode log ist eine Sync Methode.
Kann es sein, dass das Programm zwar in der Methode getErrorString war, der Fehler "Parameter hat falschen Typ" sich aber auch auf einen anderen Thread bezogen haben könnte?