Oops. I made a small mistake. Isn't it true that I could get the Next record (of a table having the 'name' field as its primary key) using
rows = db(db.table.name > current_value).select(db.table.ALL, orderby=db.table.name, limitby=(0,1)) Then my next record would be found in rows[0] ? And to get the last record could I use: rows = db().select(db.table.ALL, orderby=~db.table.name, limitby= (0,1)) with the last record being in rows[0] ? On Jul 20, 11:57 am, rb <[email protected]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---

