Я работаю на машине Windows Vista в Python 3.1.1. Я пытаюсь вставить большое количество строк в базу данных SQLite3. Файл существует, и моя программа правильно вставляет некоторые строки в базу данных. Однако в какой-то момент процесса вставки программа умирает с этим сообщением:
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
Как это возможно, что я могу вставить несколько строк, но затем получить эту ошибку?