Daniel hat geschrieben:Allerdings bei diesem Errorlog frage ich mich, wie ich das erweitern kann, damit es Genaueres aussagt:
Code: Alles auswählen
XBase Ver. 1.90.331 , Windows XP SP3
oError: args : // - leer !
oError: canDefault : N
oError: canRetry : N
oError: canSubstitute: N
oError: cargo : NIL
oError: description : Fehler beim Lesen
oError: filename :
oError: gencode : 73
oError: operation : // - leer !
oError: subcode : 8999
oError: subsystem : BASE
oError: thread : 1
oError: tries : 0
Anhand des Callstack kann ich zwar in etwa feststellen,
wo der Fehler auftritt, doch finde ich es seltsam, dass weder 'args' noch 'operation' einen Inhalt haben. Auch 'filename' ist in fast allen Fällen leer, auch wenn es - wie hier - um DB-Operationen geht. - wieso eigentlich?
- Ermittelt werden die Angaben ja aus dem Error-Object, in diesem Fall 'oError:fileName'.
Die Beschreibung 'Fehler beim Lesen' führt ja sofort zur Frage
lesen wovon?.
du solltest den Callstack mitliefern ... und ein wenig Code ist immer nützlich.
das oError:args und oError:filename "leer" sind ist nicht unbedingt ungewöhnlich.
der oError:subcode 8999 mit dem oError:gencode 73
Associated with: "73:Error while reading a file"
Caused by: "DbUseArea()", "OrdListAdd()", "DbSkip()", "DbSeek()"
Frage : was für ein OS() hat der "Server" ?
ist in dem XP PC eine "on-Board" Lösung ? wenn als Steckplatz dann mal prüfen ob die noch richtig drin sitzt.
ansonsten wohl ein Netzwerk Problem von XP Sp3 Redirector wenn der "Server" ein Windows 7 PC ist ... er hat die Connection "verloren"
p.s. wenn ich mich recht erinnere sind in der v1.90.331 sind die Netzwerk "Timeout" Werte "anders" als in der 1.9.355. überprüfe doch mal die Werte
Code: Alles auswählen
// ohne 3rd Parameter
? DbeInfo( COMPONENT_DATA, DBFDBE_LOCKRETRY)
? DbeInfo( COMPONENT_ORDER, NTXDBE_LOCKRETRY)
nachdem du eine DBF / NTX geöffnet hast
Daniel hat geschrieben:Vielleicht kriege ich das so raus?
Code: Alles auswählen
if ValType( ALIAS() ) <> "U"
cErrLog += "aktuelle Datei : " +ALIAS()
endif
Dann ev. noch die RECNO() ermitteln.
ich habe in meiner ErrorSys das "vor" dem oError Object noch stehen
Code: Alles auswählen
? "Alias() :", IF( USED(), ALIAS(), "leer" )
? "Select() :", LTRIM( STR( SELECT() ) )
? "Recno() :", IF( USED(), LTRIM( STR( RECNO() ) ), "leer" )
? "Found() :", IF( FOUND(), "YES", "NO" )
? "NetError() :", IF( NETERR(), "YES !!!", "NO" )
? "IndexOrd() :", LTRIM( STR( ORDNUMBER() ) )
IF ORDNUMBER() > 0
? "Indexfocus() :", ORDSETFOCUS()
? "Indexname() :", ORDNAME()
? "Indexkey() :", ORDKEY()
ENDIF
IF USED()
? "DBO_ALIAS :", DbInfo( DBO_ALIAS )
? "DBO_FILENAME :", DbInfo( DBO_FILENAME )
? "DBO_ORDERS :", LTRIM( STR( DbInfo( DBO_ORDERS ) ) )
? "DBO_RELATIONS :", LTRIM( STR( DbInfo( DBO_RELATIONS ) ) )
? "DBO_SHARED :", IF( DbInfo( DBO_SHARED ), "YES", "NO" )
? "DBO_REMOTE :", IF( DbInfo( DBO_REMOTE ), "YES", "NO" )
? "DBO_SERVER :", IF( DbInfo( DBO_SERVER ), "YES", "NO" )
? "DBO_DBENAME :", DbInfo( DBO_DBENAME )
? "BOF() :", IF( BOF(), "YES", "NO" )
? "EOF() :", IF( EOF(), "YES", "NO" )
ENDIF
aWSL := WorkSpaceList()
nWSL := LEN( aWSL )
? "WorkSpaceList :", ""
FOR j = 1 TO nWSL
? aWSL[ j ]
aLock := ( aWSL[ j ] )->( DBRLOCKLIST() )
nLock := LEN( aLock )
IF nLock > 0
FOR k = 1 TO nLock
IF k = 1
?? " : Record No. " + LTRIM( STR( aLock[ k ] ) )
ELSE
?? "," + LTRIM( STR( aLock[ k ] ) )
ENDIF
NEXT
?? " locked"
ELSE
?? " : NO Record locked"
ENDIF
NEXT
? REPLICATE( "-", 78 )
? ""
// welche DLL Version von wo geladen
DLLLIST()
? ""
? REPLICATE( "-", 78 )
? "oError:args :"
// hier geht es weiter mit den original oError