Sto lavorando su una macchina Windows Vista in Python 3.1.1. Sto cercando di inserire un numero elevato di righe in un db SQLite3. Il file esiste e il mio programma inserisce correttamente alcune righe nel db. Tuttavia, a un certo punto del processo di inserimento, il programma muore con questo messaggio: sqlite3.OperationalError: impossibile aprire il file di databasePython sqlite3 "impossibile aprire il file di database" su windows
Tuttavia, prima che muoia, ci sono diverse righe che vengono correttamente aggiunte al database.
Ecco il codice che gestisce in particolare l'inserimento:
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')
Questo codice inserisce ovunque da 10 a 400 righe, poi muore con il messaggio di errore
conn.executemany(ins_sql, lst_to_ins)
sqlite3.OperationalError: unable to open database file
Come è possibile che io puoi inserire alcune righe, ma poi ottieni questo errore?
Sono abbastanza perplesso e non riesco a capire se si tratta di un bug con sqlite di 3.1, windows in generale, vista in particolare, o cosa - non riesco a riprodurlo. Potresti pubblicare il modo più semplice che trovi per riprodurre il tuo problema ...? Carri armati! –
Ho un problema simile con Vista e Python2.6/Django. Un modo per simulare può essere quello di andare alla cartella db con Windows Explorer e quindi forzare un aggiornamento – luc