Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Error : 1548: non-structural indexes open
Message
De
27/01/2005 17:28:14
 
 
À
27/01/2005 03:23:50
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Allemagne
Information générale
Forum:
Visual FoxPro
Catégorie:
Problèmes
Versions des environnements
Visual FoxPro:
VFP 6 SP5
Database:
Visual FoxPro
Divers
Thread ID:
00980871
Message ID:
00981538
Vues:
32
Hi Agnes,

Thanks for the response. I'll need to chew on this and experiment a little bit.

Bruce

>Bruce,
>
>you are right at the fact that the
>
>SELECT ListView
>INDEX ON SomeField TAG SomeField
>
>will create structural indexes on views.
>
>But only if you issue it before REQUERY(ListView)
>
>This is a problem with the file that holds the view, i.e. DBF('ListView')
>Try the following:
>
>USE ListView
>?DBF('ListView')
>requery()
>?DBF('ListView')
>
>
>
>You see the dbf changing?
>
>So what does that to the INDEX .. TAG stuff?
>
>It's simple INDEX .. TAG creates an CDX File with the same name as the DBF
>
>If you REQUERY() you alter the DBF and INDEX .. TAG has no idea about the CDX file to use, so it generates non-structural indexes, even if you issue TAG.
>
>So what you need to do is add the new index to the original CDX file.
>see following snippet how to determine if the view is after REQUERY and how to add to CDX file
>
>
>SELECT SomeView
>IF !EMPTY(CDX(1));
>  AND !JUSTSTEM(CDX(1))==JUSTSTEM(DBF()) THEN
> INDEX ON ;
>  cExpression ;
>  TAG cTag OF CDX(1) ADDITIVE
>ELSE &&!EMPTY(CDX(1)) ...
> INDEX ON ;
>  cExpression ;
>  TAG cTag
>ENDIF &&!EMPTY(CDX(1)) ...
>
>
>I use that for dynamic sorting grids. In all other cases I recommend to create all indexes right after USE.
>
>HTH
>
>Agnes.
>>The actual error message is:
>>
>>Error : 1548: Table listview has one or more non-structural indexes open....
>>
>>This error is not reproducible by the user or in our test environment, but the error occurs randomly a couple of times a week at some (again, random) of our 600+ installations. Appears to happen on most OSs.
>>
>>ListView is a non-updateable local view used to populate a grid which is used as a pick-list. A couple of indexes are created on this view using the
>>
>>SELECT ListView
>>INDEX ON SomeField TAG SomeField
>>
>>syntax. It is my understanding that this should create structural indexes even on local views. Many of our sites process hundreds of transactions/day w/o problems, then error. We see the error at both single user sites where the app is installed locally and at larger sites where the app is installed on a network.
>>
>>I've run text searches over the code base looking for code that might create non-structural indexes and cannot find anything. This feels like a bogus error message, and I am at a loss as to how to proceed except to drop the indexes before any transaction, then recreate the indexes after the END TRANSACTION. But this feels like a lot of overhead for what should be a non-issue.
>>
>>Anyone have any thoughts on this?
>>
>>Thanks
>>
>>Bruce
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform