This API is not defined:

db.contadores._count()

What do expect it to do? You can do:

db(db.contadores).count()
db(db.contadores)._count()

On Friday, 9 March 2012 11:25:14 UTC-6, Fabiano Faver wrote:
>
> Same thing...
>
> print db(db.contadores.id>0)._count()   -  it respond a sql (with or 
> without argument)
> print db.contadores._count()  - it does not work
>
> Traceback (most recent call last):
>   File "C:\web2py\gluon\restricted.py", line 205, in restricted
>     exec ccode in environment
>   File "C:/web2py/applications/OPM/controllers/default.py" 
> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, line 
> 614, in <module>
>   File "C:\web2py\gluon\globals.py", line 173, in <lambda>
>     self._caller = lambda f: f()
>   File "C:\web2py\gluon\tools.py", line 2575, in f
>     return action(*a, **b)
>   File "C:\web2py\gluon\tools.py", line 2575, in f
>     return action(*a, **b)
>   File "C:/web2py/applications/OPM/controllers/default.py" 
> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, line 
> 529, in timeline_opm
>     count = db.contadores._count()
>   File "C:\web2py\gluon\dal.py", line 6774, in __getattr__
>     return self[key]
>   File "C:\web2py\gluon\dal.py", line 6714, in __getitem__
>     return dict.__getitem__(self, str(key))
> KeyError: '_count'
>
>
> Em sexta-feira, 9 de março de 2012 12h31min01s UTC-3, Fabiano Faver 
> escreveu:
>>
>> I'm using version 1.99.4.
>> I will test it in 1.99.7 to see if it stop giving this error
>>
>> Em sexta-feira, 9 de março de 2012 12h21min22s UTC-3, Niphlod escreveu:
>>>
>>> last version is working ok (1.99.7), what web2py version are you using ?
>>>
>>> if db.contadores is a table, then it definitely has a "_count" method...
>>>
>>>
>>>
>>> Il giorno venerdì 9 marzo 2012 15:55:42 UTC+1, Fabiano Faver ha scritto:
>>>>
>>>> Niphlod, this is what i got, using distinct argument or not:
>>>>
>>>> Traceback (most recent call last):
>>>>   File "C:\web2py\gluon\restricted.py", line 204, in restricted
>>>>     exec ccode in environment
>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, 
>>>> line 613, in <module>
>>>>   File "C:\web2py\gluon\globals.py", line 172, in <lambda>
>>>>     self._caller = lambda f: f()
>>>>   File "C:\web2py\gluon\tools.py", line 2533, in f
>>>>     return action(*a, **b)
>>>>   File "C:\web2py\gluon\tools.py", line 2533, in f
>>>>     return action(*a, **b)
>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, 
>>>> line 528, in timeline_opm
>>>>     print db.contadores._count(distinct=db.contadores.id_impressora)
>>>>   File "C:\web2py\gluon\dal.py", line 5542, in __getattr__
>>>>     return self[key]
>>>>   File "C:\web2py\gluon\dal.py", line 5482, in __getitem__
>>>>     return dict.__getitem__(self, str(key))
>>>> KeyError: '_count'
>>>>
>>>>
>>>>
>>>> @Bruno
>>>> While I can`t get all grouped records at once I am query them 
>>>> individually one by one using argument distinct
>>>>
>>>> for dias in range(loop_back):
>>>>         d = timedelta(days=dias)
>>>>         dias_passado = dia_hoje - d
>>>>         header.append(TH(dias_passado.strftime("%d/%m"),_width='60px'))
>>>>         contador_no_dia     = db((db.contadores.id
>>>> >0)&(db.contadores.data==dias_passado)).count(distinct=db.contadores.id_impressora)
>>>>
>>>> Em sexta-feira, 9 de março de 2012 10h54min59s UTC-3, Niphlod escreveu:
>>>>>
>>>>> ooops, sorry, the _count method is on the table, not the field
>>>>> try with
>>>>>
>>>>> db.contadores._count(distinct=db.contadores.id_impressora)
>>>>>
>>>>>
>>>>>
>>>>> Il giorno venerdì 9 marzo 2012 13:37:16 UTC+1, Fabiano Faver ha 
>>>>> scritto:
>>>>>>
>>>>>> I have phpmyadmin to test it but I didn`t manage to get the generated 
>>>>>> sql using underline.
>>>>>>
>>>>>> with or without distinct argument it gives 
>>>>>>
>>>>>> Traceback (most recent call last):
>>>>>>   File "C:\web2py\gluon\restricted.py", line 204, in restricted
>>>>>>     exec ccode in environment
>>>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, 
>>>>>> line 610, in <module>
>>>>>>   File "C:\web2py\gluon\globals.py", line 172, in <lambda>
>>>>>>     self._caller = lambda f: f()
>>>>>>   File "C:\web2py\gluon\tools.py", line 2533, in f
>>>>>>     return action(*a, **b)
>>>>>>   File "C:\web2py\gluon\tools.py", line 2533, in f
>>>>>>     return action(*a, **b)
>>>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>, 
>>>>>> line 529, in timeline_opm
>>>>>>     print 
>>>>>> db.contadores.id_impressora._count(distinct=db.contadores.id_impressora)
>>>>>> AttributeError: 'Field' object has no attribute '_count'
>>>>>>
>>>>>>
>>>>>> Em sexta-feira, 9 de março de 2012 09h13min01s UTC-3, Niphlod 
>>>>>> escreveu:
>>>>>>>
>>>>>>> ok, can you print here what is the result of :
>>>>>>>
>>>>>>>
>>>>>>> db.contadores.id_impressora._count(distinct=db.contadores.id_impressora)
>>>>>>>
>>>>>>> (mind the _ before count.)
>>>>>>>
>>>>>>> If you can fire off queries on your db using another tool than 
>>>>>>> web2py (let's say, phpmyadmin), try to copy the resulting string into 
>>>>>>> that 
>>>>>>> and watch if the query raises an error.
>>>>>>>
>>>>>>> Il giorno venerdì 9 marzo 2012 13:02:49 UTC+1, Fabiano Faver ha 
>>>>>>> scritto:
>>>>>>>>
>>>>>>>> MySQL
>>>>>>>>
>>>>>>>> Em sexta-feira, 9 de março de 2012 08h59min46s UTC-3, Niphlod 
>>>>>>>> escreveu:
>>>>>>>>>
>>>>>>>>> what db are you using ?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Il giorno giovedì 8 marzo 2012 15:20:17 UTC+1, Fabiano Faver ha 
>>>>>>>>> scritto:
>>>>>>>>>>
>>>>>>>>>> I`m trying to select distinct printers used in each day but i`m 
>>>>>>>>>> not managing to use the distinct argument
>>>>>>>>>>
>>>>>>>>>> count = db.contadores.id_impressora.count()
>>>>>>>>>> for row in db((db.contadores.id
>>>>>>>>>> >0)&(db.contadores.data<=today)).select(db.contadores.data,count,groupby=db.contadores.data):
>>>>>>>>>>         print row.contadores.data, row[count]
>>>>>>>>>>
>>>>>>>>>> if I use something like
>>>>>>>>>>     
>>>>>>>>>>   
>>>>>>>>>> db.contadores.id_impressora.count(distinct=db.contadores.id_impressora)
>>>>>>>>>>
>>>>>>>>>> it gives:
>>>>>>>>>>
>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>   File "C:\web2py\gluon\restricted.py", line 204, in restricted
>>>>>>>>>>     exec ccode in environment
>>>>>>>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>>>>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>,
>>>>>>>>>>  line 581, in <module>
>>>>>>>>>>   File "C:\web2py\gluon\globals.py", line 172, in <lambda>
>>>>>>>>>>     self._caller = lambda f: f()
>>>>>>>>>>   File "C:/web2py/applications/OPM/controllers/default.py" 
>>>>>>>>>> <http://127.0.0.1:8000/admin/default/edit/OPM/controllers/default.py>,
>>>>>>>>>>  line 516, in timeline_opm
>>>>>>>>>>     count = 
>>>>>>>>>> db.contadores.id_impressora.count(distinct=('id_impressora'))
>>>>>>>>>> TypeError: count() got an unexpected keyword argument 'distinct' 
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> How can I use distinct count here?
>>>>>>>>>>
>>>>>>>>>

Reply via email to