Hi, I updated trunk version, but error still happens

this the track

Traceback (most recent call last):
  File "/home/drayco/web2py/gluon/restricted.py", line 188, in
restricted
    exec ccode in environment
  File "/home/drayco/web2py/applications/opticaluz/controllers/
gerencia.py", line 1417, in <module>
  File "/home/drayco/web2py/gluon/globals.py", line 95, in <lambda>
    self._caller = lambda f: f()
  File "/home/drayco/web2py/gluon/tools.py", line 2315, in f
    return action(*a, **b)
  File "/home/drayco/web2py/applications/opticaluz/controllers/
gerencia.py", line 278, in ventas
    if form.accepts(request.vars,session):
  File "/home/drayco/web2py/gluon/sqlhtml.py", line 1159, in accepts
    self.vars.id = self.table.insert(**fields)
  File "/home/drayco/web2py/gluon/sql.py", line 3735, in insert
    return self._db._adapter.insert(self,self._listify(fields))
  File "/home/drayco/web2py/gluon/sql.py", line 690, in insert
    raise e
AttributeError: 'BaseAdapter' object has no attribute 'cursor'

On Dec 8, 9:07 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> I think this is now fixed. Please give it a try.
>
> On Dec 8, 6:42 pm, drayco <antrod...@gmail.com> wrote:
>
> > Hi this the code in the controller:
>
> > def form_factory(*a):
> >     return SQLFORM(SQLDB(None).define_table(*a))
>
> > def ventas():
> >     form=form_factory('myform',
>
> > SQLField('inicio','date',default=request.now.date(),requires=IS_NOT_EMPTY()),
> >         SQLField('fin','date',default=request.now.date()))
> >     total=''
> >     regs=''
> >     totalcorte=''
> >     cortesias=''
> >     totalc=''
> >     cancel=''
> >     totalgaran=''
> >     garantias=''
> >     totalcero=''
> >     cero=''
> >     inicio = ''
> >     fin = ''
> >     if form.accepts(request.vars,session):
> >         response.flash='Formulario aceptado'
> >         from datetime import datetime
> >         inicio = datetime.strptime(str(form.vars.inicio) + "
> > 00:00:00", "%Y-%m-%d %H:%M:%S")
> >         if form.vars.fin==None:
> >             fin = inicio
> >             fin = fin.replace(hour=23,minute=59,second=59)
> >         else:
> >             fin = datetime.strptime(str(form.vars.fin) + " 23:59:59",
> > "%Y-%m-%d %H:%M:%S")
> >         Gerente = db.auth_user(user_id)
> >         total =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia==None)&(db.notas.vale==None)).
> > \
>
> > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/
> > db.notas.id.count()),\
> >             headers={'COUNT(notas.id)':'Num.Notas',
> > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo',
> > 'SUM(notas.pagos)':'Pagos',
> > 'SUM(notas.saldo)':'Saldo','SUM(notas.total)/
> > COUNT(notas.id)':'Promedio'})
> >         regs =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id
> > ==
> > Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia==None)&(db.notas.vale==None)).
> > \
>
> > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/
> > db.notas.id.count(),\
> >             orderby=~(db.notas.total.sum()/
> > db.notas.id.count()),groupby=db.notas.vendedor),\
>
> > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Num.Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo','SUM(notas.total)/
> > COUNT(notas.id)':'Promedio'})
> >         totalc =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==False)).
> > \
>
> > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()),
> > \
> >             headers={'COUNT(notas.id)':'Num.Notas',
> > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo',
> > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'})
> >         cancel =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id
> > == Gerente.store_id)&(db.notas.active==False)).\
>
> > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),
> > \
> >             orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\
>
> > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'})
> >         totalcorte =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.vale!
> > =None)).\
>
> > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()),
> > \
> >             headers={'COUNT(notas.id)':'Num.Notas',
> > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo',
> > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'})
> >         cortesias =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id
> > == Gerente.store_id)&(db.notas.active==True)&(db.notas.vale!=None)).\
>
> > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),
> > \
> >             orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\
>
> > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'})
> >         totalgaran =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia!
> > =None)).\
>
> > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/
> > db.notas.id.count()),\
> >             headers={'COUNT(notas.id)':'Num.Notas',
> > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo',
> > 'SUM(notas.pagos)':'Pagos',
> > 'SUM(notas.saldo)':'Saldo','SUM(notas.total)/
> > COUNT(notas.id)':'Promedio'})
> >         garantias =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id
> > == Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia!
> > =None)).\
>
> > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/
> > db.notas.id.count(),\
> >             orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\
>
> > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo','SUM(notas.total)/
> > COUNT(notas.id)':'Promedio'})
> >         totalcero =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.total==0)).
> > \
>
> > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()),
> > \
> >             headers={'COUNT(notas.id)':'Notas',
> > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo',
> > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'})
> >         cero =
> > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id
> > == Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia!
> > =None)&(db.notas.vale!=None)&(db.notas.total==0)).\
>
> > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),
> > \
> >             orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\
>
> > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'})
> >     elif form.errors:
> >         response.flash='Error en el formulario'
> >     else:
> >         response.flash='Por favor conteste el formulario'
> >     return dict(form=form,total=total, regs=regs,
> > totalcorte=totalcorte,cortesias=cortesias,
> > totalc=totalc,cancel=cancel,
> > totalgaran=totalgaran,garantias=garantias,inicio=inicio,fin=fin,totalcero=totalcero,cero=cero)
>
> > It work in web2py 1.89.5, however after update trunk version it didn't
> > work, it give me this error:
>
> > Traceback (most recent call last):
> >   File "/home/drayco/web2py/gluon/restricted.py", line 188, in
> > restricted
> >     exec ccode in environment
> >   File "/home/drayco/web2py/applications/opticaluz/controllers/
> > gerencia.py", line 1417, in <module>
> >   File "/home/drayco/web2py/gluon/globals.py", line 95, in <lambda>
> >     self._caller = lambda f: f()
> >   File "/home/drayco/web2py/gluon/tools.py", line 2315, in f
> >     return action(*a, **b)
> >   File "/home/drayco/web2py/applications/opticaluz/controllers/
> > gerencia.py", line 265, in ventas
> >     SQLField('fin','date',default=request.now.date()))
> >   File "/home/drayco/web2py/gluon/tools.py", line 2315, in f
> >     return action(*a, **b)
> >   File "/home/drayco/web2py/applications/opticaluz/controllers/
> > gerencia.py", line 259, in form_factory
> >     return SQLFORM(SQLDB(None).define_table(*a))
> >   File "/home/drayco/web2py/gluon/sql.py", line 3204, in __init__
> >     raise RuntimeError, "Adapter not supported"
> > RuntimeError: Adapter not supported
>
> > Can any have some advice to avoid that issue?
>
>

Reply via email to