Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Will this expression use Rushmore?
Message
From
28/01/2003 18:59:48
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00746321
Message ID:
00746486
Views:
22
Nadya,

Thanks.

Yes, I can. I ended up doing this, since it is probably slightly faster than doing the locate with macro substitution. I was hoping to avoid it though, so that the class didn't have to necessarily know what the index order was.
But, the main thing I found out here is that indeed, when I use eval() that the expression is no longer Rushmore optimizable. (see Sergey's reply)

Lately, I have been trying to use eval() or name expressions in places where previously, out of force of habit, I used macro substitution in the past. But I am finding that it doesn't always work as I expect, and sometimes I end up breaking my code, or, having the opposite effect that I intended. For example in this case, I thought the eval() would execute faster than the &, but it turned out that the opposite was true.





>Can you use seek?
>
>
if seek(uPrimaryKeyValueToLookUp, lcAlias, lcForeigKeyName)
>
>otherwise try:
>
>lcTest = lcAlias+"."+ lcForeigKeyName
>
>locate for &lcTest = uPrimaryKeyValueToLookUp
>
>
>>I have a data access class with the following line of code:
>>
>>locate for eval(lcalias + '.' + lcForeignKeyName) = uPrimaryKeyValueToLookUp
>>
>>lcAlias is 'p1', lcForeignkeyName is 'stock_id'
>>there is an index on stock_id (alone)
>>
>>There are 14K rows in the table. Sometimes this locate executes in an instant, and other times takes 7 or 8 seconds. I don't understand why it won't always use Rushmore/find the record immediately, and I have yet to determine what is different in the case where it doesn't execute in an instant.
>>
>>Does the eval() play any role/hinder Rushmore ?
>>
>>TIA
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform