Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problem with SCAN...ENDSCAN
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00153935
Message ID:
00154014
Views:
42
>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."
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform