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
-~----------~----~----~----~------~----~------~--~---

Reply via email to