【发布时间】:2009-10-07 04:50:37
【问题描述】:
我正在使用 python 3.1.1 开发 Windows vista 机器。我正在尝试将大量行插入 SQLite3 数据库。该文件存在,并且我的程序将 some 行正确插入到数据库中。但是,在插入过程的某个时刻,程序会因以下消息而终止: sqlite3.OperationalError: 无法打开数据库文件
但是,在它死亡之前,有几行已正确添加到数据库中。
这是专门处理插入的代码:
idx = 0
lst_to_ins = []
for addl_img in all_jpegs:
lst_to_ins.append((addl_img['col1'], addl_img['col2']))
idx = idx + 1
if idx % 10 == 0:
logging.debug('adding rows [%s]', lst_to_ins)
conn.executemany(ins_sql, lst_to_ins)
conn.commit()
lst_to_ins = []
logging.debug('added 10 rows [%d]', idx)
if len(lst_to_ins) > 0:
conn.executemany(ins_sql, lst_to_ins)
conn.commit()
logging.debug('adding the last few rows to the db')
此代码插入 10 到 400 行的任何位置,然后终止并显示错误消息
conn.executemany(ins_sql, lst_to_ins)
sqlite3.OperationalError: unable to open database file
我怎么可能插入一些行,然后得到这个错误?
【问题讨论】:
-
我很困惑,不知道这是否是 3.1 的 sqlite、一般的 windows、特别是 vista 的错误,或者是什么——我无法重现它。您能否发布您找到的重现问题的最简单方法...?坦克!
-
Vista 和 Python2.6/Django 有类似的问题。一种模拟方法可能是使用 Windows 资源管理器转到 db 文件夹,然后强制刷新
标签: python sqlite windows-vista