Estoy trabajando en una máquina con Windows Vista en Python 3.1.1. Estoy tratando de insertar una gran cantidad de filas en un SQLite3 db. El archivo existe, y mi programa inserta correctamente algunas filas en el db. Sin embargo, en algún momento en el proceso de inserción, el programa muere con este mensaje: sqlite3.OperationalError: no se puede abrir archivo de base dePython sqlite3 "no se puede abrir el archivo de base de datos" en Windows
Sin embargo, antes de que muera, hay varias filas que se agregan a la base de datos correctamente.
Este es el código que se ocupa específicamente de la inserción:
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')
Este código inserta entre 10 y 400 filas, entonces muere con el mensaje de error
conn.executemany(ins_sql, lst_to_ins)
sqlite3.OperationalError: unable to open database file
¿Cómo es posible que yo puede insertar algunas filas, pero luego obtiene este error?
Estoy bastante desconcertado y no puedo decir si es un error con sqlite de 3.1, ventanas en general, vista en particular, o qué, no puedo reproducirlo. ¿Podría publicar la forma más sencilla de reproducir su problema ...? Tanques! –
Tengo un problema similar con Vista y Python2.6/Django. Una forma de simular puede ser ir a la carpeta db con el explorador de Windows y forzar una actualización – luc