>>>First of all, you should not have an index on alltrim(something), since this will give you a variable expression length. VFP doesn't support this, and it will put an almost arbitrary length (actually based on the first record it finds, I think).
>>
>>Hilmar,
>>This is not true for indexes on normal fields. Because VFP has fixed length fields, the index key will be stored as if a PADR(< alltrim(field value) >,< field width >) was executed on it. Alltrim() has detrimental effects when dealing with memo fields because they are variable length. The first record will determine how long the index key expression will be. Everything after that will be padded or truncated as needed.
>
>Isn't there also an issue with concatenated field indices with alltrims. So, indexing on something like "alltrim(lastname) + alltrim(firstname)" will result in a variable length index, right? I'm almost certain that that was the case a few years ago...
Vin,
If that was a problem in the past (don't remember), it's been fixed since VFP 7. The length of the index expression will be the sum of the lengths of the fixed-length fields plus any other characters added.
When building index expressions on variable-length fields (memos), VFP will use the current record to determine index key length. One reason not to build index expressions on memo fields.
Larry Miller
MCSD
LWMiller3@verizon.netAccumulate learning by study, understand what you learn by questioning. -- Mingjiao