Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Serious Bug in REQUERY()
Message
From
31/07/2003 23:12:09
 
 
To
31/07/2003 22:24:26
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00815680
Message ID:
00815726
Views:
14
I have had some strange results on views when the connection is set to Asynchronous execution. I never use asyncronous execution because I just couldn't figure out how to get it to work consistently (or at least what I expected).

I found another issue/bug with the VFP ODBC driver not returning correct query results with SPT when the DSN is set to "Fetch data in background". This really surprised me and remains unresolved. It will sporatically put duplicate records in the cursor when "select *" is exectuted even though no duplicate records exist in the source table.

Just a SWAG, but I would check the settings for ConnectTimeOut, IdleTimeOut, QueryTimeOut, FetchAsNeeded, and FetchSize. I would guess that if incorrectly set or set to too low values that it might result in incorrect or unexpected query or requery results.

Unfortunately that does not explain the differences in =requery(), lresults = requery() , etc.


>Garrett,
>
>I find it interesting that using the "=" seems most corrosive and that any of the variations actually make a difference (not doubting the submission, just see it as odd).
>In the back of my mind I recollect one bug report that was bypassed by inserting the "=" in the method call and yet another that was bypassed by coding the parens. at the end of a method call, so these things obviously *can* have some impact on execution.
>
>Do you have any considerations on that aspect of the report?
>
>cheers
>
>>I'm not seeing the error: can you provide better repro code? I set up a remote view to SQL's Northwind..Customers database, and ran the following code repeatedly, with no errors.
>>
>>
CLOSE DATABASES all
>>OPEN DATABASE reqtest
>>USE reqTest!viewCust NODATA IN 0
>>USE HOME(1) + "labels" IN 0
>>
>>SELECT labels
>>
>>FOR i = 1 TO 200
>>	lcCust1 = "A"
>>	lcCust2 = "B"
>>
>>	lcCustomer = "ALFKI"
>>	=REQUERY("viewCust")
>>	lcCust1 = viewCust.customerid
>>
>>	IF lcCust1 != lcCustomer
>>		?? "FAIL"
>>	ENDif
>>
>>	lcCustomer = "ANATR"
>>	=REQUERY("viewCust")
>>	lcCust2 = viewCust.customerID
>>
>>	IF lcCust2 != lcCustomer
>>		?? "FAIL"
>>	ENDIF
>>
>>	IF lcCust1 == lcCust2
>>		?? "Fail"
>>	ELSE
>>		?? "Pass"
>>	ENDIF
>>ENDfor
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform