我使用web2py来为我的网站供电。我决定将web2py DAL用于在网站后面运行的长时间运行的程序。 该程序似乎没有更新其数据或数据库(有时)。DAL without web2py
from gluon.sql import *
from gluon.sql import SQLDB
from locdb import *
# contains
# db = SQLDB("mysql://user/[email protected]/mydb", pool_size=10)
# db.define_table('orders', Field('status', 'integer'), Field('item', 'string'),
# migrate='orders.table')
orderid = 20 # there is row with id == 20 in table orders
#when I do
db(db.orders.id==orderid).update(status=6703)
db.commit()
它不会更新数据库,并且对具有此ID的订单进行选择时显示正确的数据。在某些情况下,提交后的“db.rollback()”似乎有所帮助。
很奇怪的是,至少可以说。你见过这个吗?更重要的是你知道解决方案吗?
UPDATE:
更正: 有问题的选择是在程序中完成的,而不是外面。
有时候,当进行一系列更新时,有些更新会有效并且可以在外部使用,有些则不可用。即使从原始查询开始,数据在数据库中发生变化,一些查询也会返回最初返回的数据。
我很想转储这种方法,并转移到另一种方法,有什么建议吗?
记住,数据库对象不能在线程间共享。 – mdipierro 2010-01-25 14:00:28