私は、Windows Vistaマシンのpython 3.1.1で作業しています。私はSQLite3のDBに多数の行を挿入しようとしています。ファイルが存在し、私のプログラムは行をdbに正しく挿入します。ただし、挿入プロセスのある時点で、次のメッセージが表示されてプログラムが終了します。 sqlite3.OperationalError:データベースファイルを開くことができません。Python sqlite3 "windowsでデータベースファイルを開くことができません"
ただし、終了する前にデータベースに正しく追加されている行がいくつかあります。ここ
は、具体的には、挿入を処理するコードは、次のとおり
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')
このコードは、エラーメッセージI、それが可能である方法
conn.executemany(ins_sql, lst_to_ins)
sqlite3.OperationalError: unable to open database file
とダイ次いで、10〜400行のどこにでも挿入しますいくつかの行を挿入できますが、このエラーが発生しますか?
私はかなり不安定で、3.1のsqlite、一般的なウィンドウ、特にVistaのバグかどうかはわかりません。何か - 私はそれを再現できません。問題を再現するための最も簡単な方法を投稿できますか?タンク! –
私はVistaとPython2.6/Djangoで同様の問題を抱えています。シミュレートする1つの方法は、Windowsエクスプローラでdbフォルダに移動してから、強制的に更新することです。 – luc