python 数据库操作 yeild from_Python数据库连接关闭
連接具有PEP-249(Python數(shù)據(jù)庫(kù)API規(guī)范v2.0)中指定的csr.close()方法:
import pyodbc
conn = pyodbc.connect('DRIVER=MySQL ODBC 5.1 driver;SERVER=localhost;DATABASE=spt;UID=who;PWD=testest')
csr = conn.cursor()
csr.close()
conn.close() #
由于csr.close()連接和游標(biāo)都是上下文管理器,因此,如今將其編寫(xiě)為:
import pyodbc
conn = pyodbc.connect('DRIVER=MySQL ODBC 5.1 driver;SERVER=localhost;DATABASE=spt;UID=who;PWD=testest')
with conn:
crs = conn.cursor()
do_stuff
# conn.commit() will automatically be called when Python leaves the outer `with` statement
# Neither crs.close() nor conn.close() will be called upon leaving the the `with` statement!!
有關(guān)為什么不調(diào)用conn.close()的說(shuō)明,請(qǐng)參見(jiàn)[https://github.com/mkleehammer/pyodbc/issues/43]。
請(qǐng)注意,與原始代碼不同,這將導(dǎo)致調(diào)用csr.close()。 使用外部with語(yǔ)句控制何時(shí)要調(diào)用commit。
另請(qǐng)注意,根據(jù)文檔,無(wú)論您是否使用csr.close()語(yǔ)句,
刪除連接后(通常是超出范圍時(shí)),連接會(huì)自動(dòng)關(guān)閉,因此通常不需要調(diào)用[csr.close()],但可以根據(jù)需要顯式關(guān)閉連接。
和類(lèi)似的光標(biāo)(我的重點(diǎn)):
刪除游標(biāo)時(shí)(通常是超出范圍時(shí)),游標(biāo)會(huì)自動(dòng)關(guān)閉,因此通常不需要調(diào)用[csr.close()]。
總結(jié)
以上是生活随笔為你收集整理的python 数据库操作 yeild from_Python数据库连接关闭的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 美国哈弗康健有限公司的能量源在哪能买到?
- 下一篇: 持久层是什么意思_软件项目实训及课程设计