Seite 1 von 1

Indexkey-Länge für FOXCDX

Verfasst: Di, 09. Mär 2021 15:39
von Wolfgang Ciriack
Hallo,
könnte mir mal jemand sagen, wie die max. Indexkey-Länge unter Version 1.9 für FOXCDX ist ?

Re: Indexkey-Länge für FOXCDX

Verfasst: Di, 09. Mär 2021 16:00
von nightcrawler
müsste 240 Bytes sein
edit: von hier: https://devzone.advantagedatabase.com/d ... index.html
Advantage Concepts > Advantage File Formats > Xbase File Format Specifications

Re: Indexkey-Länge für FOXCDX

Verfasst: Di, 09. Mär 2021 19:58
von Wolfgang Ciriack
Ja, hätte ich auch gedacht.
Mit Benutzung des ADS kann ich den Indexschlüssel auch länger machen, ohne knallt es bei der Erzeugung des Indexes schon bei über ca. 120 Zch.

Re: Indexkey-Länge für FOXCDX

Verfasst: Di, 09. Mär 2021 21:23
von HaPe
Hallo Wolfgang !
... ohne knallt es bei der Erzeugung des Indexes schon bei über ca. 120 Zch.
Aus der VFP9-Hilfe zum INDEX-Befehl:
With some collating sequences, or when using double-byte character set (DBCS) characters, each character in the index expression uses two characters in the index key. In these cases, the length of the index expression is limited to 50 or 120 characters, respectively.

Re: Indexkey-Länge für FOXCDX

Verfasst: Di, 09. Mär 2021 23:16
von brandelh
Laut der Xbase++ Hilfe:
CDXDBE (ORDER Komponente)
Max. length for both
INDEX plus FOR expression 512 characters

Re: Indexkey-Länge für FOXCDX

Verfasst: Mi, 10. Mär 2021 8:06
von Wolfgang Ciriack
Hallo HaPe,
ja, das deckt sich mit meinen Erfahrungen, das bei ca. 120 Zch. die Fehlermeldung kommt.
Warum das aber bei meiner Konfiguration zutrifft, weiß ich nicht.

Code: Alles auswählen

   DbeSetDefault("FOXCDX")
IF DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
   DbeInfo(COMPONENT_DATA,FOXDBE_LOCKRETRY,1000000)
   DbeInfo(COMPONENT_DATA,FOXDBE_LOCKDELAY,10)
   DbeInfo(COMPONENT_DATA, FOXDBE_LIFETIME, 0)

   DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKRETRY,1000000)
   DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKDELAY,10)
   DbeInfo(COMPONENT_ORDER, FOXDBE_LOCKMODE, LOCKING_EXTENDED)
ENDIF
Hallo Hubert,
das habe ich auch gelesen, leider scheint es nicht zu stimmen.

Re: Indexkey-Länge für FOXCDX

Verfasst: Mi, 10. Mär 2021 11:01
von nightcrawler
Wolfgang Ciriack hat geschrieben: Di, 09. Mär 2021 19:58 120 Zch.
Bytes != Zeichen

Re: Indexkey-Länge für FOXCDX

Verfasst: Sa, 13. Mär 2021 21:09
von AUGE_OHR
PDR 4846
The following restrictions apply to the CDXDBE:

- maximum key-expression size plus for-expression size if 512 byte.
This means your key-expression can be at max. 512 bytes if no
for expession is given. Or in other words both expession share
the same storage location which has a maximum size of 512 bytes.

- maximum key-value length is 240 bytes. This implicates that if
you have a collation table active the size in characters of your
key-value is limited to 120 chars - this is bec. the CDXDBE
collation table transforms the key-value by expanding each
character into 2 bytes. If collation is ASCII or CDXDBE_MODE
is FOXPRO2X, no transformation occurs and the key-value size
is restricted to 240 characters.

Re: Indexkey-Länge für FOXCDX

Verfasst: So, 14. Mär 2021 19:43
von Wolfgang Ciriack
Danke Jimmy.
If collation is ASCII or CDXDBE_MODE
is FOXPRO2X, no transformation occurs and the key-value size
is restricted to 240 characters.
Hm, meine DBFs sind ASCII, also müssten doch 240 Zeichen möglich sein ?