Digamos que usted tiene el siguiente código:¿Cómo saber si la conexión o el cursor de la base de datos Python SQLite está cerrado?
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
Si trato de utilizar los conn
o cur
objetos más adelante, ¿cómo podría decir que están cerradas? No puedo encontrar un método .isclosed()
ni nada parecido.
El método es sensato, pero evite hacer un 'SELECT * FROM mytable' mientras que usted puede hacer mucho más ligero' SELECT one_column FROM mytable LIMIT 1'. El primero es terriblemente ineficiente si tiene una base de datos no pequeña. –
gracias @pitrou, actualizado para tomar eso en consideración. – bernie
@AntoineP. está confundiendo SQLite con otras bases de datos. No hay diferencia en la cantidad de trabajo realizado por SQLite. No calcula todos los resultados para una consulta por adelantado, sino que realiza la menor cantidad de trabajo posible para dar la primera fila de resultados. La segunda fila de resultados solo se resuelve cuando la solicite. En consecuencia, el límite no tiene ningún efecto. En cualquier caso, una consulta mejor es aquella que no depende del esquema, por ejemplo, PRAGMA user_version. –