Thanks Niphlod!

Richard


On Thu, Oct 11, 2012 at 3:23 PM, Niphlod <niph...@gmail.com> wrote:

> 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> 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.**ta**ble.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.**minr**ows),int(request.vars.**maxrows)
>>>>> else:
>>>>>     limitby=int(request.vars.**minro**ws)
>>>>>
>>>>> 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