2011-02-03 48 views
2

在Python中,可以使用pysqlite2類與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)') 

這兩個方面的工作,做這個工作,但是我懷疑有些情況下,一種方式被推薦給另一種方式。那些情況是什麼?

回答

3

connection.execute方法是一個SQLite API擴展;它不是由DB-API指定的:http://www.python.org/dev/peps/pep-0249/。這只是創建一個光標並在其上調用execute的簡寫,返回光標。

如果您想確保您的代碼可以與其他基於DB-API的數據庫庫一起工作,則不應該使用它。

相關問題