as you wish. the point is assigning a limitby=False if you don't want to 
use limitby at all. 
The code on dal.py sets limitby = False by default, so select() and 
select(limitby=False) have the exact same output. 

On Thursday, October 11, 2012 6:59:52 PM UTC+2, Richard wrote:
>
> Must test also nmaxrecords :
>
>     if nmaxrecords is None or nmaxrecords == '-1':
>         limitby=0
>     elif nminrecords:
>         limitby=(int(nminrecords), int(nmaxrecords))
>     else:
>         limitby=(0, int(nmaxrecords))
>
> On Thu, Oct 11, 2012 at 12:52 PM, Richard <ml.richa...@gmail.com<javascript:>
> > wrote:
>
>> Ok,
>>
>> In this case, I would test the startrecord :
>>
>>     if nmaxrecords == '-1':
>>         limitby=0
>>     elif nminrecords:
>>         limitby=(int(nminrecords), int(nmaxrecords))
>>     else:
>>         limitby=(0, int(nmaxrecords))
>>
>> Since if it is not passed the vars will be empty and raise nonetype error.
>>
>> :)
>>
>> My eval(request.vars.limitby) was a pretty bad idea, because someone 
>> could have pass arbitrary web2py command by the url...
>>
>> Richard
>>
>> Le jeudi 11 octobre 2012 12:26:54 UTC-4, Niphlod a écrit :
>>
>>> I'd go for checking for howmanyrecord = -1 and in your controller
>>>
>>> if howmanyrecord == '-1':
>>>      limitby = False
>>> else:
>>>      limitby = (int(startrecord), int(howmanyrecord ))
>>>
>>> return db(yourquery).select(limitby=l**imitby)
>>>
>>>
>>>
>>> On Thursday, October 11, 2012 6:13:55 PM UTC+2, Richard wrote:
>>>>
>>>> Hello,
>>>>
>>>> I have component tools, they serve to show table build from a query 
>>>> with redirect link. I place them in differents places in my app and 
>>>> depending of the place I would like to be able to pass max number of rows 
>>>> to the underling query used to build the table showed in the component. So 
>>>> I could do :
>>>>
>>>> {{=LOAD(c='dashboard_tools', f='tool1', *vars=dict(minrows=0, 
>>>> maxrows=10)*, extension='load', ajax=True)}}
>>>>
>>>> But if I would like to have all the records... What is the proper way??
>>>>
>>>> My first thought was to pass maxrows=0 or -1 than query should 
>>>> return all the records. But limitby it is not working like that.
>>>>
>>>> Then I realize that passing only one parameter to the limitby 
>>>> (limitby=0) would lead to what I want. 
>>>>
>>>> Since 
>>>>
>>>> db(db.table.id>0).select(db.**table.ALL, limitby=(0))
>>>>
>>>> Return all the records
>>>>
>>>> So I could just do that : 
>>>>
>>>> {{=LOAD(c='dashboard_tools', f='tool1', *vars=dict(limitby=0)*, 
>>>> extension='load', ajax=True)}}
>>>>
>>>> or
>>>>
>>>> {{=LOAD(c='dashboard_tools', f='tool1', *vars=dict(limitby=(0,10))*, 
>>>> extension='load', ajax=True)}}
>>>>
>>>> But the later seems not working because request.vars.limitby is a 
>>>> string...
>>>>
>>>> This can easily be managed like this 
>>>>
>>>> {{=LOAD(c='dashboard_tools', f='tool1', *vars=dict(limitby='(0,10)')*, 
>>>> extension='load', ajax=True)}}
>>>>
>>>> eval(request.vars.limitby)
>>>>
>>>> *But I am concerned about the security, should I??*
>>>>
>>>> Other solution could be to stick with minrows, maxrows and :
>>>>
>>>> if minrows or maxrows:
>>>>     limitby=(int(request.vars.**minrows),int(request.vars.**maxrows)
>>>> else:
>>>>     limitby=int(request.vars.**minrows)
>>>>
>>>> Maybe the book should contain little more explanation about the use of 
>>>> limitby in context of URL and vars ?
>>>>
>>>> Thank you.
>>>>
>>>> Richard
>>>>
>>>  -- 
>>  
>>  
>>  
>>
>
>

-- 



Reply via email to