2013-03-31 205 views
0

打開SQLObject連接後,是否可以手動關閉它?我試圖在數據庫文件被使用後刪除數據庫文件,但似乎打開數據庫文件連接阻止我這樣做。關閉SQLObject連接

例如:

from sqlobject import * 
import os 

# Create and open connection to a database file. 
sqlhub.processConnection = connectionForURI('sqlite:path_to_db') 
SomeObject.createTable() 

# ... 

# Delete database when finished. 
os.remove('path_to_db') 

提供了以下錯誤:

WindowsError: [Error 32] The process cannot access the file because 
       it is being used by another process: 'path_to_db' 

回答

3

好像只是數據庫連接上調用.close()似乎這樣的伎倆:

from sqlobject import * 
import os 

# Create and open connection to a database file. 
sqlhub.processConnection = connectionForURI('sqlite:path_to_db') 

#do something with connection 
pass 

#close connection 
sqlhub.processConnection.close() 

#delete database 
os.remove(path_to_db) 

我只能在close方法上找到一點點,但可以公平地說,你可以像對待任何其他file對象那樣對待它。雖然我對sqlobject沒有太多的經驗,並且在解釋器中,您仍然可以在processConnection作業之後立即刪除db,而不關閉它,所以誰知道。

+0

這似乎對我的目的很好,所以我現在可以在圖書館的實施中應對一點模棱兩可的問題。非常感謝。 – JimmidyJoo

+0

@JimmidyJoo樂於幫忙! – TankorSmash