Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Problem with SCAN...ENDSCAN
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00153935
Message ID:
00154014
Vues:
44
>I have a cursor called cpayment with 3 records. The cpay_flag is .t. and cpay_schdate has a date in all 3 records. When I run the following code it only loops through one record, not all 3. If I comment out the replace cpay_schdate with {} and replace cpay_flag with .f. the SCAN will loop through all records. Now I know whats causing the problem but I don't understand why.
>
>
>select cpayment
>SCAN FOR ((cpay_flag = .t.) and (!empty(cpay_schdate)))
>	replace cpay_schdate with {}
>	replace cpay_flag with .f.
>	if !cpay_update = 'D' then
>		replace cpay_update with "C"
>	endif
>	replace cpay_amt with 0.00
>ENDSCAN
>
I would guess you have an index on CPAY_FLAG or on EMPTY(CPAY_SCHDATE) and you are causing something I found in the VFP help for SET OPTIMIZE:

"In rare cases, you should disable Rushmore optimization. If a command that benefits from Rushmore optimization modifies a query’s index keys, the Rushmore record set may become outdated. You can disable Rushmore optimization to ensure that you have the most current information from the table."
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform