Hi Larry,
I'm very new to vfp, but I think I have a clue as to why you would be able to index on a memo field if you wrap it in a function.
The index is generated on the key that the function returns. Obviously, something like upper() will return a string. So as far as vfp is concerned the keys are all strings.
That's pretty much the reason why you can combine dates, numbers and text for index generation (i.e. index on dtos(order_date) + lower( client_name) + str( order_amt, 6,2) to someindex).
Now, I'm not sure about foxpro, but clipper will make the assumption that all the keys in the table are as long as the first one. So if your first record has a memo that's 4 characters long I think it will assume that ALL your keys are 4 chars long.
There, my first post in the UT.
Hope this helps!
Alex
Low-carb diet not working? Try the Low-food diet instead!