I am a bit flummoxed over dbs that insist on using an "id" field as their primary key. Specifically I would like to be able to access records via a more "btrieve" or old-style "ordered set" mode of GetFirst, Get Prev, GetNext, GetLast. The web2py manual gives a neat trick to paginate records which, unfortunately, depends upon the orderby of the access being the same as the "id" primary key sorting of the records.
That is, you can divide up the records into pages (of say, 20 records per page) and then select a page using the limitby(record-id-offset, record-count) argument of the 'select' SQLSet function. I could use this trick to make my GetFirst, GetPrev, GetNext, GetLast record accesses ***if*** my record order were the same as the id-order, which would not be true after the first record-delete then record-insert. Because these two orders are not the same I need to first create a record set which is ordered according to my primary key (e.g. 'name' field) and then apply the above trick. However, in the DAL, the way that orderby is effected is in the 'select' - thus I would need to select the entire table of records, order them correctly in this select, then (somehow) do a pagination on this record set. Obviously if I have 50000 records and I want the next record, it makes no sense to load 50k records to get that next one. Can anyone help me understand this better? What am I missing? Is there a trick to keep my table ordered according to my key fieldS (I often need more than one field in my key) in sync with the record's id ? (so that I can just use the above noted trick to get the next record). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

