В чем разница между объектом базы данных и объектом курсора в pysqlite2? - PullRequest
2 голосов
/ 03 февраля 2011

В Python можно взаимодействовать с базой данных sqlite, используя класс pysqlite2.

from pysqlite2 import dbapi2 as sqlite

Один из способов отправки команд в базу данных - через объект базы данных:

db = sqlite.connect('mydb.sqlite')
db.execute('CREATE TABLE IF NOT EXISTS t1(a, b, c)')

другой путь - через курсор:

cur = db.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS t2(x, y, z)')

Оба способа работают и выполняют свою работу, однако я подозреваю, что есть случаи, когда один путь передается другому.Каковы эти случаи?

1 Ответ

3 голосов
/ 03 февраля 2011

Метод connection.execute является расширением API SQLite;он не указан DB-API: http://www.python.org/dev/peps/pep-0249/. Это просто сокращение для создания курсора и вызова на нем execute, возвращая курсор.

Вы не должны использовать его, если хотитеубедитесь, что ваш код будет работать с другими библиотеками баз данных на основе DB-API.

...