This is the logic in sqlhtml.py SQLFORM.grid

    if paginate and paginate<nrows:
            ....
            limitby = (paginate*page,paginate*(page+1))
    rows = 
dbset.select(left=left,orderby=orderby,limitby=limitby,*table_fields)
as you can see it does not fetch all rows when paginating, unless there is 
a bug I am now aware of. If there is it should be fixed but need to see the 
code that is causing the bug.

Massimo


On Sunday, 22 April 2012 11:37:14 UTC-5, Bruce Wade wrote:
>
> The grid is limiting the amount on the page being displayed. however it is 
> still querying all the records then creating the pages so you can page 
> between them. The query still queries all of the data instead of using 
> limits and or ajax. for 50,000 records it takes almost 3-8 seconds to load 
> the page.
>
> db.dailyadviews.id.readable = db.dailyadviews.ad_id.readable = 
> db.dailyadviews.viewer_id.readable = db.dailyadviews.accepted.readable = 
> False
>     grid = SQLFORM.grid(db.dailyadviews.ad_id == ad_id,
>         create=False, editable=False, deletable=False, details=False, 
> args=[ad_id]
>     )
>
> On Sun, Apr 22, 2012 at 9:26 AM, Massimo Di Pierro <
> massimo.dipie...@gmail.com> wrote:
>
>> This is what I do not understand. If the query is done by the grid, it 
>> should limit the number of records to the number of records displayed.
>> If that now happening? Are you calling the query outside of the grid?
>>
>>
>> On Sunday, 22 April 2012 11:22:32 UTC-5, Bruce Wade wrote:
>>>
>>> Yes it has built in pagination, however some of my grids will return 
>>> over 500,000+ records which causes query's to be very very very slow. I 
>>> would rather limit the returned data because the average person is not 
>>> going to go through all them records or care about them. For example 
>>> currently there has been around 19 million adviews each of these records 
>>> contains a rating, however there is no way SQLFORM.grid can handle loading 
>>> that much data.
>>>
>>> For some data I can use a date range however other tables we are not 
>>> storing a date field so I can not use that process to limit the results.
>>>
>>> On Sun, Apr 22, 2012 at 9:13 AM, Massimo Di Pierro <
>>> massimo.dipie...@gmail.com> wrote:
>>>
>>>> grid has built-in pagination. Perhaps I do not understand the question. 
>>>> Can you show us your code?
>>>>
>>>>
>>>> On Sunday, 22 April 2012 10:40:37 UTC-5, Bruce Wade wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Is there a way to limit the returned results for the grid? I am 
>>>>> finding that my site has so much data already that most areas where I am 
>>>>> using grid are failing  <class 'psycopg2.InternalError'> current 
>>>>> transaction is aborted, commands ignored until end of transaction block
>>>>>
>>>>> If there is no way to limit the results is there a specific reason why 
>>>>> this was never included?
>>>>>
>>>>> -- 
>>>>> -- 
>>>>> Regards,
>>>>> Bruce Wade
>>>>> http://ca.linkedin.com/in/**bruc**elwade<http://ca.linkedin.com/in/brucelwade>
>>>>> http://www.wadecybertech.com
>>>>> http://www.fittraineronline.**co**m <http://www.fittraineronline.com>- 
>>>>> Fitness Personal Trainers Online
>>>>> http://www.warplydesigned.com
>>>>>
>>>>>  
>>>
>>>
>>> -- 
>>> -- 
>>> Regards,
>>> Bruce Wade
>>> http://ca.linkedin.com/in/**brucelwade<http://ca.linkedin.com/in/brucelwade>
>>> http://www.wadecybertech.com
>>> http://www.fittraineronline.**com <http://www.fittraineronline.com> - 
>>> Fitness Personal Trainers Online
>>> http://www.warplydesigned.com
>>>
>>>  
>
>
> -- 
> -- 
> Regards,
> Bruce Wade
> http://ca.linkedin.com/in/brucelwade
> http://www.wadecybertech.com
> http://www.fittraineronline.com - Fitness Personal Trainers Online
> http://www.warplydesigned.com
>
>  

Reply via email to