2009-12-01 45 views
1

這裏是VB6代碼片段:如何正確刪除所有連接到Access數據庫

myProjectDaoDB.Close 
FileCopy myName, TempFile 

其中MYNAME是數據庫的路徑。這個數據庫大概是在第一行中關閉的。看起來,僅僅關閉數據庫不足以正確刪除對數據庫的所有訪問,因爲當我運行該程序時,運行時錯誤爲'70':權限被拒絕。我知道用戶權限沒有實際問題。這個錯誤只發生在保存到數據庫後,所以我確定某些東西沒有正確關閉。

當數據庫打開時,會創建一個鎖定文件。如果我在不對數據庫進行任何更改的情況下運行此代碼,則鎖定文件在第一行運行後被刪除。當我對數據庫進行更改時,鎖定文件不會被刪除。當它試圖關閉數據庫時沒有錯誤,爲什麼它仍然存在?

更新:我按照步驟here找出誰在錯誤期間與數據庫有連接。根據結果​​,當我嘗試關閉連接而不更改數據庫時,它只是我的連接。當我進行更改時,我連接兩次。看來,然後myProjectDaoDB.Close不關閉所有的連接。是什麼賦予了?

+1

除了關閉外部數據庫之外,您是否還將其數據庫變量設置爲Nothing?如果你不這樣做,未清理的指針可能會讓LDB打開。 – 2009-12-01 21:48:30

回答

1

已關閉所有的記錄集,並設置其對象爲Nothing?