Disons que vous avez le code suivant:Comment savoir si la connexion à la base de données Python SQLite ou le curseur est fermé?
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
Si je tente d'utiliser les objets plus tard conn
ou cur
, comment pourrais-je dire qu'ils sont fermés? Je ne peux pas trouver une méthode .isclosed()
ou quelque chose comme ça.
La méthode est saine, mais évitez de faire 'SELECT * FROM mytable' alors que vous pouvez faire beaucoup plus léger' SELECT one_column FROM mytable LIMIT 1'. Le premier est horriblement inefficace si vous avez une base de données non-petite. –
merci @pitrou, mis à jour pour en tenir compte. – bernie
@AntoineP. vous confondez SQLite avec d'autres bases de données. Il n'y a pas de différence dans la quantité de travail effectué par SQLite. Il ne calcule pas tous les résultats d'une requête à l'avance - à la place, il fait le moins de travail possible pour donner la première ligne de résultats. La deuxième rangée de résultats est seulement élaborée quand vous le demandez. Par conséquent, la limite n'a aucun effet. Dans tous les cas, une meilleure requête ne dépend pas du schéma, par exemple PRAGMA user_version. –