da kommt sogleich eine neue Frage eines XBASE-Anfängers.
Ich habe mal ein Testprogramm geschrieben, einmal in Clipper 5.2e + Comix RDD, das gleiche Programm auch mit XBASE++
Beide Programme schreiben in eine DBF-Datei ( testdatei ) diese hat Indexdateien und auch ein Memofeld
Die XBASE-App stürtzt sporadisch mit einem Lesefehler ab, die Kompatibilät sollte doch eigentlich zum Clipper gegeben sein.
Hat jemand von euch eine Idee, woran das liegen kann ?
Gruß Ecki
Hier mal der XBASE-Code:
Code: Alles auswählen
PROCEDURE Main
local cpath := "\\srvfs01\testdaten\"
local nrecs := 0
local ntotal := 100000
local ndummy := 0
SET COLLATION TO GERMAN
SET CHARSET TO OEM
clear screen
use ( cpath + "testdbf" ) new shared
dbsetorder(1)
for nrecs := 1 to ntotal
@ 10,10 say str( nrecs * 100 / ntotal ,6,2) + " %"
testdbf->(dbappend())
while !testdbf->(rlock())
enddo
replace testdbf->nummer with testdbf->(recno())
replace testdbf->name with "winxp89"
replace testdbf->datum with date()
replace testdbf->zeit with time()
replace testdbf->finfo with "Dies ist Datensatz Nummer " + ltrim(str(testdbf->nummer))
testdbf->(dbcommit())
testdbf->(dbunlock())
ndummy := inkey()
if lastkey() = 27 .or. nextkey() = 27
exit
endif
next nrecs
return
PROCEDURE DbeSys
#include "xbp.ch"
#include "dll.ch"
#include "appevent.ch"
#include 'common.ch'
#include 'std.ch'
#include 'set.ch'
#include "xbp.ch"
#include "foxdbe.ch"
#include "Dbfdbe.ch"
#include "cdxdbe.ch"
IF ! DbeLoad( "FOXDBE" , .T.)
? "nicht geladen"
else
? "Geladen"
ENDIF
IF ! DbeLoad( "CDXDBE" , .T.)
? "nicht geladen"
else
? "Geladen"
ENDIF
IF ! DbeBuild( "FOXCDX" , "FOXDBE" , "CDXDBE" )
? "nicht geladen"
else
? "Geladen"
ENDIF
DbeSetDefault("FOXCDX")
DbeInfo(COMPONENT_ORDER , CDXDBE_MODE , CDXDBE_COMIX )
DbeInfo(COMPONENT_ORDER , FOXDBE_MEMOBLOCKSIZE , 64 )
DbeInfo(COMPONENT_ORDER , DBE_LOCKMODE , LOCKING_STANDARD )
DbeInfo(COMPONENT_ORDER , FOXDBE_LOCKRETRY , 100000 )
DbeInfo(COMPONENT_ORDER , FOXDBE_LOCKDELAY , 15 )
DbeInfo(COMPONENT_ORDER , CDXDBE_LOCKRETRY, 100000 )
DbeInfo(COMPONENT_ORDER , CDXDBE_LOCKDELAY , 15 )
RETURN