2008年12月17日 星期三

[BCB] 資料庫備份/還原程式

最近這套應用程式 加上其資料庫備份及還原的功能

備份還蠻容易做的, 直接將目前的 mdb檔案 複製到某個目錄下即可, 這部分我做成當使用者把form關掉的時候 自動備份

還原我遇到了一些問題, ADOConnection 這個元件, 我執行了 Close()這個函式之後, 資料庫依然被lock住, 最後搞了一個很賤的方法, 寫了另外一隻批次檔 當使用者選好他要還原的資料庫檔案
我會呼叫 這隻批次檔, 批次檔的內容是:
1. 將原本的應用程式關掉(這樣子就沒有資料庫被lock的問題)
2. 自動備份目前的資料庫到某個備份目錄下
3. 將使用者選的資料庫檔案替換掉目前使用的資料庫檔案
4. 重開應用程式

這裡遇到一個問題 怎麼關掉原本呼叫批次檔的這隻應用程式呢?
我找到一個shell指令, tasklist 以及 taskkill
tasklist 是顯示目前電腦中正在執行的程式
taskkill 則是讓他關掉, taskkill /f /im "應用程式名稱"

這樣子就完成了~這其實是無奈的解法(因為資料庫檔案一直被Lock住)

沒有留言: