2013-03-31 4 views
0

SQLObject 연결이 열리면 수동으로 닫을 수 있습니까? 한 번 사용 된 데이터베이스 파일을 삭제하려면 노력하고 있지만 데이터베이스 파일에 대한 열린 연결이 나를 그렇게 막는 것 같습니다. 예를 들어SQLObject 연결 닫기

:

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) 

I :

그냥 데이터베이스 연결에 .close()를 호출하는 것 같아
WindowsError: [Error 32] The process cannot access the file because 
       it is being used by another process: 'path_to_db' 

답변

3

트릭을 할 것 같다 :

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') 

다음과 같은 오류를 제공 close 방법으로 조금만 찾을 수있었습니다 here이지만 다른 file 개체처럼 취급 할 수 있다고 말하는 것은 공평합니다. 나는 sqlobject에 대한 많은 경험이 없지만 인터프리터에서는 processConnection 과제가 끝난 후에도 db를 바로 제거 할 수 있습니다. 닫히지 않고 누가 알 수 있습니다.

+0

이것은 내 용도로는 잘 작동하는 것 같아서 이제는 도서관 구현에 약간의 모호함을 감당할 수 있습니다. 이것에 대해 많은 감사드립니다. – JimmidyJoo

+0

@JimmidyJoo 도와 드리겠습니다! – TankorSmash