Hi Massimo, actually I do not know, it seems to be a very odd error; I've just restarted web2py and the problem has seemed gone but unfortunately, after a while it came back in a totally different fashion:
Traceback (most recent call last): File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 209, in restricted exec ccode in environment File "/home/paolo/Dropbox/git/web2py/applications/bikend/views/route/routesListWrapper.html", line 981, in <module> File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/routeDB.py", line 27, in get_route_a content = get_route_img(id=route.route.id) File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/routeDB.py", line 56, in get_route_img img = get_img(route.route.photo_id, True) File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/1_extra.py", line 94, in get_img if picture and picture.picture: File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 7273, in __getattr__ self.__allocate() File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 7266, in __allocate self._record = self._table[int(self)] File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 7551, in __getitem__ return self._db(self._id == key).select(limitby=(0,1)).first() File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 8682, in select return adapter.select(self.query,fields,attributes) File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 2022, in select return super(SQLiteAdapter, self).select(query, fields, attributes) File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1522, in select return self._select_aux(sql,fields,attributes) File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1495, in _select_aux self.execute(sql) File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1598, in execute return self.log_execute(*a, **b) File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1592, in log_execute ret = self.cursor.execute(*a, **b) ProgrammingError: Cannot operate on a closed database. I do not know, maybe there is something wrong with my application rather than with web2py Paolo 2012/8/30 Massimo Di Pierro <massimo.dipie...@gmail.com>: > I tried this (2.0.2) and I cannot reproduce the problem: > > db = DAL(lazy_tables=True) > > db.define_table('reviews_like', > Field('review_id', 'reference reviews'), > Field('helpful', 'boolean')) > > db.define_table('reviews', > Field('title')) > > db.reviews.pos = Field.Lazy(lambda row: db((db.reviews_like.review_id == ro\ > w.reviews.id) & (db.reviews_like.helpful == True)).count() ) > db.reviews.neg = Field.Lazy(lambda row: db((db.reviews_like.review_id == ro\ > w.reviews.id) & (db.reviews_like.helpful == False)).count() ) > id = db.reviews.insert(title='xxx') > db.reviews_like.insert(review_id=id, helpful=True) > print db(db.reviews_like.review_id==db.reviews.id).select() > > > > On Thursday, 30 August 2012 11:16:27 UTC-5, Paolo wrote: >> >> Dear all, >> I just updated web2py and after turning on the lazy_table I got: >> >> Traceback (most recent call last): >> File "/home/paolo/Dropbox/git/web2py/gluon/restricted.py", line 209, in >> restricted >> exec ccode in environment >> File >> "/home/paolo/Dropbox/git/web2py/applications/bikend/views/load/reviewsFilter.html", >> line 57, in <module> >> var str = '{{=T('Route ')}}<small>NAME </small><b class="caret"> >> </b>'.replace(/NAME/gi, $(this).text()); >> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 8810, in >> __call__ >> return self.method(self.row,*args,**kwargs) >> File "/home/paolo/Dropbox/git/web2py/applications/bikend/models/db.py", >> line 427, in <lambda> >> db.reviews.pos = Field.Lazy(lambda row: db((db.reviews_like.review_id >> == row.reviews.id) & (db.reviews_like.helpful == True)).count() ) >> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 8675, in count >> return db._adapter.count(self.query,distinct) >> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1542, in count >> self.execute(self._count(query, distinct)) >> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1598, in >> execute >> return self.log_execute(*a, **b) >> File "/home/paolo/Dropbox/git/web2py/gluon/dal.py", line 1592, in >> log_execute >> ret = self.cursor.execute(*a, **b) >> ProgrammingError: Cannot operate on a closed database. >> >> >> The table involved in the error is defined as follows: >> >> db.define_table('reviews_like', >> Field('review_id', 'reference reviews'), >> Field('helpful', 'boolean', >> widget = BuildRadioButtonWidget), >> Field('created_on', 'datetime', default=request.now, >> writable = False, readable = False), >> Field('user_id', db.auth_user, default=auth.user_id, >> writable = False, readable = False) >> ) >> >> db.define_table('reviews', >> Field('route_id', 'reference route', default=db.route.id), >> Field('rating', 'integer',requires=IS_IN_SET(range(1,6))), >> Field('title', 'string', >> requires=(IS_NOT_EMPTY(error_message=T('Enter a >> title')),IS_LENGTH(250,error_message=T('Warning, title too long')), >> IS_LENGTH(minsize=3, error_message=T('Warning, title too short')))), >> Field('description', 'text', >> requires=(IS_NOT_EMPTY(error_message=T('Please, enter a >> description')),IS_LENGTH(250,error_message=T('Warning, description too >> long')), IS_LENGTH(minsize=75, error_message=T('Warning, the description is >> too short, reviews must be at least 75 characters long.')))), >> auth.signature, >> >> ) >> db.reviews.route_id.readable = False >> db.reviews.route_id.writable = False >> db.reviews.rating.widget = starWidget >> db.reviews.pos = Field.Lazy(lambda row: db((db.reviews_like.review_id == >> row.reviews.id) & (db.reviews_like.helpful == True)).count() ) >> db.reviews.neg = Field.Lazy(lambda row: db((db.reviews_like.review_id == >> row.reviews.id) & (db.reviews_like.helpful == False)).count() ) >> >> what is wrong ? >> >> Cheers >> Paolo >> >> >> > -- > > > -- Paolo --