ich möchte eines unserer xbase Programme unter ADS 9.0.0.7 laufen lassen. Es werden ganz normale dBase Datenbanken und NTX Indizes benutzt. Das Programm arbeitet seit einem Jahr als Clipper Programm und seit drei Wochen als xbase programm ohne ADS sehr gut und fehlerfrei. Sobald ich jedoch die Datenbanken mit dem ADS geöffnet habe, kommt es an bislang einer Programmstelle zu folgendem Fehler:
Im Forum nachgeschaut: Aha da möchte jemand 1000 in ein dreistelliges numerisches Feld reinschreiben, bei clipper gabs ***, bei xbase den oben genannten Fehler.FEHLERPROTOKOLL von "I:\LAGER\EIGEN\DATENFUNK\CHE_DFUE.EXE" Datum: 18.11.08 12:59:15
Xbase++ Version : Xbase++ (R) Version 1.90.331
Betriebssystem : Windows 2000 05.00 Build 02195 Service Pack 4
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: N VALUE: 1
-> VALTYPE: N VALUE: 1
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : {NIL, 4004, Error 4004: Advantage Expression Engine evaluator stack overflow.}
oError:description : L„nge des Datenbankfeldes wurde berschritten
oError:filename :
oError:genCode : 63
oError:operation : <1> + <1>
oError:osCode : 0
oError:severity : 2
oError:subCode : 8029
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von STATUS_3E(1062)
Aufgerufen von WE_AN_HTS(3806)
Aufgerufen von VON_FUNK(6547)
Aufgerufen von DFUE_MEN(592)
Aufgerufen von MAIN(335)
Code: Alles auswählen
In Zeile 1062 steht folgendes:
repl ACDAT->ACBEST1 with ACDAT->ACBEST1 + BZDAT->BZANZ1
ACBEST1 ist numerisch definiert und 9 stellig, BZANZ1 ebenfalls. Beide hatten zum Zeitpunkt des Geschehens den Wert 1. Das sagt die Zeile oError:operation: (1) + (1) und entspricht auch meiner Prüfung vorher und nachher.
Also 1 + 1 paßt nicht in ein neunstelliges numerisches Feld ? Ich habe es mehrfach überprüft, war auch mal 68 + 1. Es ist auch nicht so, daß das mal funktioniert und mal nicht. Es gibt immer den gleichen Fehler. Das Feld ACBEST1 ist nicht Bestandteil des Indexes. Das ganze funktioniert erst dann wieder, wenn ich die Datei ACDAT ohne ADS, also mit DBFNTX öffne. Dann paßt es wieder und funktioniert immer.
Jemand ne Idee, wonach ich suchen kann ? Besten Dank im vorraus.