I'm going to catch some heat for this, pehaps, but here goes:
I use indexes sparingly because for me, even in v4.5, they are unreliable. They get erased by some unknown process at times, get corrupted and are just plain cantankerous for me. There are some indexes I cannot avoid using for obvious reasons. So, I make extensive use of queries and eliminate the index problem for the most part. However, in one application, I use an index as part of an LQO. Problem: that index that the LQO is based up frequently needs to be rebuilt, but does not let me know it. If I ignore its integrity, I am likely to have missing records or records that should be missing that are not missing from a query. Is there a way to know if an index has integrity? Is there a way to rebuilt an index prior to its use in a networked situation where many users are accessing the same table, although not likely the same index? For me, this is a major hindrance that I can not overcome no matter what I have tried. I do nightly maintenance on my tables and indexes so they should be good to go each workday. Could there perhaps be pointers to temporary indexes that are causing the problem? Closing and reopening the database does not correct the problem. Rebuildng indexes seems to be the only practical fix that I have been able to perform.
Perhaps of some signifcance is that the indexes in question contain reference in the filter to logical fields. I have often wondered if a logical field value of "" = .F. on a very basic level. I've found it necessary to evaluate a logical field for the positive boolean only, with the negative boolean being assumed by default if the positve comparison fails. It isn't always necessary, but it does prevent problems from ever occuring when reading the value of a logical field. So, could an index filter also have trouble interpreting the value of a logical field at times?
Tom Lyon
I use indexes sparingly because for me, even in v4.5, they are unreliable. They get erased by some unknown process at times, get corrupted and are just plain cantankerous for me. There are some indexes I cannot avoid using for obvious reasons. So, I make extensive use of queries and eliminate the index problem for the most part. However, in one application, I use an index as part of an LQO. Problem: that index that the LQO is based up frequently needs to be rebuilt, but does not let me know it. If I ignore its integrity, I am likely to have missing records or records that should be missing that are not missing from a query. Is there a way to know if an index has integrity? Is there a way to rebuilt an index prior to its use in a networked situation where many users are accessing the same table, although not likely the same index? For me, this is a major hindrance that I can not overcome no matter what I have tried. I do nightly maintenance on my tables and indexes so they should be good to go each workday. Could there perhaps be pointers to temporary indexes that are causing the problem? Closing and reopening the database does not correct the problem. Rebuildng indexes seems to be the only practical fix that I have been able to perform.
Perhaps of some signifcance is that the indexes in question contain reference in the filter to logical fields. I have often wondered if a logical field value of "" = .F. on a very basic level. I've found it necessary to evaluate a logical field for the positive boolean only, with the negative boolean being assumed by default if the positve comparison fails. It isn't always necessary, but it does prevent problems from ever occuring when reading the value of a logical field. So, could an index filter also have trouble interpreting the value of a logical field at times?
Tom Lyon
Comment