Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Last 10 records based on a condition
Message
From
01/01/2002 06:49:05
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
 
To
31/12/2001 11:23:30
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00599284
Message ID:
00599559
Views:
16
>>>I need to get the last 10 records of a table based on a condition. However, that table is pretty big and I don't want to use the TOP 10 clause as it will take too long. What type of approach can I use which would be the best? I am looking for a SQL approach. If that is not possible then I'll consider using code.
>>
>>Michel,
>>IMHO with SQL approaches there would be some overhead whatever you do. I'd try traditional old xbas approach and I think it would be much faster :
>>
>>
>>select myTable
>>go bottom
>>afields(arrStruc)
>>create cursor crsResult from array arrStruc
>>select myTable
>>lnFound = 0
>>do while lnFound < 10 and !bof()
>>  if myCondition
>>    scatter memvar
>>    insert into crsResult from memvar
>>    lnFound = lnFound + 1
>>  endif
>>  skip -1
>>enddo
>>select crsResult
>>brow
Cetin
>
>Yes, but the problem with that is that some conditions will require several thousands of skip which will take longer for them.

Yes. However I tried it and it's at least two times faster in worst case (found recs need skip to first recs in table). It was 2-400 times faster compared to SQL.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform