Alaska Software Inc. - Re: Problems with compatibility between cdx indexes created with Clipper 5.2e and XBase++ 1.9
Username: Password:
AuthorTopic: Re: Problems with compatibility between cdx indexes created with Clipper 5.2e and XBase++ 1.9
Andreas Gehrs-Pahl

View the complete thread for this message in:

Re: Problems with compatibility between cdx indexes created with Clipper 5.2e and XBase++ 1.9
on Sat, 27 Jun 2015 00:44:30 -0400
Richard,

>I can create FOXCDX indexes with a clipper 5.2 program and they work fine 
>for that program and the converted xbase++ 1.9 program.

>Below is my foxcdx setup for xbase++.  No problem with 
>DBESETDEFAULT("FOXCDX").  The collation is set to AMERICAN.

>This does not work.
>//dbeInfo( COMPONENT_ORDER, CDXDBE_MODE, CDXDBE_COMIX )

But this should work. Using either of the following (identical) options:
* CDXDBE_FOXPRO2X (FoxPro 2.x compatiblity)
* CDXDBE_COMIX    (Comix for Clipper RDD)
* CDXDBE_SIX      (Six for Clipper RDD)
should make it work Clipper (5.3) compatible. All three constants have the 
(same) value of 2. The only other available setting, which is the default
and which you are therefore using is:
* CDXDBE_VFOXPRO  (Visual FoxPro 5.x and higher)
which has a value of 1 and will not work with Clipper.

If you create FOXCDX indexes with Clipper 5.2, you must be using an add-on 
program, which should create FoxPro 2.x compatible index files. Those CDX 
files don't store the Collation Table within each Tag, but use the Clipper 
collation table, so it is important to use the same collation setting in 
both applications when using those index files in Clipper and Xbase++ 
concurrently. That means that you should use Set Collation to ASCII, 
especially if you don't use (m)any special characters, like Umplaute or 
Accented characters.

Also, the Xbase++ docs mention under the "Specifications for CDX files" and 
SET CHARSET that the "Index is based on the ANSI character set". As Clipper 
uses the OEM character set, maybe the issue lies with that.

Try to also add SET CHARSET OEM in your Xbase++ program and see if that 
fixes the indexing issue. If it does, you might have to change some other 
display issues you might encounter with non-ASCII characters.

Additionally, PDR 109-3717 is still listed as open. It basically states: 
"A database created with Clipper can't be used with Xbase++ FOXCDX (or 
CDXDBE) because the first character of the first field is cut. This means 
FILENO is changed to ILENO and it can't be used."

Another PDR: 109-4264 is also still listed as open. It basically states: 
"When searching on a database with index created by clipper, some records 
can't be found."

Another PDR: 109-4397 that is listed as open. It basically states: 
"When searching on a database with index created by clipper, some records 
can't be found."

There might be other relevant PDRs that might help to narrow down the issue.

As I haven't used Clipper for a long time, and only use NTX if I really need 
compatibility, all of this are just educated guesses based on the Xbase++ 
documentation, PDRs and posts in these NewsGroups.

But if you figure it out, you might want to post your results here, in case 
someone else runs into the same problems. And maybe Alaska can update the 
documentation if there is something missing there.

Hope this helps anyway,

Andreas

Andreas Gehrs-Pahl
Absolute Software, LLC

phone: (989) 723-9927
email: Andreas.GP@Charter.net
web:   http://www.Aerospace-History.net