2013-03-31 49 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