FOXCDX seek problem

Xbase++ 2.0 Build 554 or later
Message
Author
Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#11 Post by Victorio »

also here is LAT_IBM function in 2 modification, one for CP852 DOS Latin2 ,and for Win1250 EE.
I tryed both
Attachments
LATIBM.ZIP
(2.24 KiB) Downloaded 634 times

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#12 Post by Victorio »

here is important example,
two databases, DBETYPE show same type
but RKU807WISKN do not work good in Alaska Xbase.
Attachments
typedbf.gif
typedbf.gif (12.65 KiB) Viewed 15870 times
OBIDVA.ZIP
(8.52 KiB) Downloaded 685 times

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#13 Post by Victorio »

one more info : from DBF header reader utility :
Attachments
DBFHEADER.ZIP
(1.68 KiB) Downloaded 645 times

User avatar
Auge_Ohr
Posts: 1407
Joined: Wed Feb 24, 2010 3:44 pm

Re: FOXCDX seek problem

#14 Post by Auge_Ohr »

Victorio wrote:PROCEDURE DbeSys()
_LoadDbes()
RETURN

STATIC FUNCTION _LoadDbes()
...
DbeSetDefault( "FOXCDX" )
RETURN .t.
as i thought : no DbInfo() to "configure" DBE :doh:
we can't talk about any Problem as long you did not have configure COMPONENT_DATA / COMPONENT_ORDER as you need for FoxPro v2.x / visual FoxPro.

the vl808997.dbf have HEX 03 and is "Cl*pper" OEM. your VL808997.CDX seem create by DBFCDX ... that is NOT Fox compatible.
DFBCDX.jpg
DFBCDX.jpg (37.65 KiB) Viewed 15860 times
i have to look into "new" Files ... will be continue ...
greetings by OHR
Jimmy

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#15 Post by Victorio »

I mean, if use CDX, it will be automatic compatible with FoxPro without need dbinfo configure more parameters.
Indexing by numbers was good if use Clipper programs and FoxPro or Visual Foxpro.Only if VFP application create database then Clipper cannot open file. For it I had miniutility to convert VFP database to Foxpro2.x(exe module inVFP from other developer)
But with character indexing it is now problem.
I am sure , you will find solution or problem :shock:
Some other problem can be, then databases can be Foxpro2x and also VFP, then I must include some test what type.

User avatar
Auge_Ohr
Posts: 1407
Joined: Wed Feb 24, 2010 3:44 pm

Re: FOXCDX seek problem

#16 Post by Auge_Ohr »

Victorio wrote:I mean, if use CDX, it will be automatic compatible with FoxPro without need dbinfo configure more parameters.
NO

have a look at FOXDBE (DATA-Komponente)
FOXDBE_CREATE_2X

DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .T. )
DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_2X )

DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .T. )
DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_CLIPPER )

DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .F. )
DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_VISUAL )
and CDXDBE (ORDER Komponente)
CDXDBE_MODE

CDXDBE_VFOXPRO Visual FoxPro 5.x und neuere Versionen
CDXDBE_COMIX Comix für Clipper RDD
CDXDBE_SIX Six für Clipper RDD
CDXDBE_FOXPRO2X FoxPro 2.x kompatibilität
so you NEED to configure with DbeInfo() depend on what Type of DBF you have else you will get Problem with locking and corrupt Index.
Victorio wrote:Indexing by numbers was good if use Clipper programs and FoxPro or Visual Foxpro.
Number do not have "special" Sign ...
Victorio wrote:Only if VFP application create database then Clipper cannot open file. For it I had miniutility to convert VFP database to Foxpro2.x(exe module inVFP from other developer)
your vl808997.dbf is OEM ( DOS 852 ) while Foxpro2.x use ANSI (Win1250)
you can open Foxpro2.x DBF with DBU.EXE if they don't have a Memo FPT
Victorio wrote:But with character indexing it is now problem.
Cl*pper does not have COLLATION but visual FoxPro need

Code: Select all

SET COLLATION TO  :?: 
if SET COLLATION TO SYSTEM read about (<, <=, =, >=, >, <>) / upper / lower

while i don't know DOS 852 / Win1250 i can't recognize where you have a Problem ... it is like to show my Chinese DBF ;)
Victorio wrote:Some other problem can be, then databases can be Foxpro2x and also VFP, then I must include some test what type.
if you get different DBF you must "test" it to get right DBE.
remember when using different DBE to use "VIA"
greetings by OHR
Jimmy

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#17 Post by Victorio »

Thank you very much Jimmy!
It is some new informations for me, which must analyze.....

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#18 Post by Victorio »

I looked into CDX file (binary) generated with Visual Foxpro application (not my) and with Alaska Xbase++
to searching some differencies.

I see here in VFP CDX file word "SLOVAK" and name of tag or field , but in Alaska CDS is "GENERAL" ...name of tag or field.

What is word "GENERAL" ???

Is this here , because Alaska Xbase have not SLOVAK localization ?

Maybe this is problem.

PS: who do not know Slovak = Slovakia = my country ;)

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: FOXCDX seek problem

#19 Post by Victorio »

Now I am near the cause of the problem !.

Roger write about it in this thread, about store collation in TAGs CDX, but I overlooked it. :oops:

After reindex existing CDX I saw, then CDX has two blocks (looked as binary file)
for example field CISKU, in CDX is SLOVAK ..... CISKU, and later GENERAL .... CISKU.
I am sure, if I want reindex file, and everytime change collation, CDX file will have own block for every collation and tag.

But what now ? Alaska Xbase does not have SLOVAK collation, I must include it, if it is possible by STD.CH, COLLAT.CH, and SetCollationTable... I work on it now...

Everything show to problem with collation, because record stay on first positon and cannot scoped .

User avatar
Auge_Ohr
Posts: 1407
Joined: Wed Feb 24, 2010 3:44 pm

Re: FOXCDX seek problem

#20 Post by Auge_Ohr »

Victorio wrote: Here are indexes used in database, so on sended database is more indexes, I used index 6

Code: Select all

index on KN_CLV tag KN_CLV        eval progress() every lastrec()/100
index on KN_CLV*10000+KN_PCS tag KN_CVL eval progress() every lastrec()/100
index on KN_ICO tag KN_ICO        eval progress() every lastrec()/100
index on KN_RCI tag KN_RCI        eval progress() every lastrec()/100
index on (LEFT(KN_VLA,30)) tag KN_VLA eval progress() every lastrec()/100
index on UPPER(LAT_IBM(LEFT(KN_VLA,30))) tag KN_AVL        eval progress() every lastrec()/100
index on OSC tag OSC eval progress() every lastrec()/100
index on UPPER((LEFT(KN_VLA,30)))+STR(KN_ICO)+STR(KN_RCI) tag KN_OSC eval progress() every lastrec()/100
... hm :think:
help file say EVAL and EVERY are not supported by NTXDBE / CDXDBE ?!

look at

Code: Select all

FOR <lForCondition>
this is what you can use to show a (green) Progressbar when use INDEX ON
http://bb.donnay-software.com/donnay/vi ... 46&start=3
inside DCPROGES.ZIP you find COPYFILE.PRG, look how it use FOR

when using REINDEX it will use Indexkey() only ... no Progressbar !

so try it again without EVAL / EVERY

p.s. did you use SET CHARSET ?
greetings by OHR
Jimmy

Post Reply