2011-01-25 48 views
2

我的軟件必須進行數據庫備份,其中一項預期功能是可以取消此備份。取消附加備份服務

正如我能想到的,我有三種選擇:

  • 使用的組件,如TIBBackupService
  • 編程調用GBAK使用的ShellExecute左右
  • 編程調用使用GDS32.dll服務API

我試過了第一個,即使我取消了它,服務仍在運行(備份文件一直建立,直到所有資源保持不變)。

第二個選項對我來說味道,我不認爲我也能夠中止操作。

第三個選項將花費一些時間,因此我倒是想知道:

  • 有沒有辦法使用第一個選項中止備份操作?
  • 第三個選項是可行的嗎?如果是,該操作將會中止?
  • Firebird備份操作是否可以取消?

感謝

+0

firebird備份操作根本可以取消嗎? – 2011-01-25 14:53:49

回答

3

PS:你沒有提到你正在使用的火鳥版本。

1)gbak是連接數據庫,讀取所有信息並寫入備份文件的「普通」應用程序。恢復過程是相反的。

2)當您使用ServicesAPI進行備份(在您的示例中選項1和3)時,Firebird將啓動一個「內部」版本的gbak來完成這項工作。

對於任何選項,如果您使用的是Firebird 2.1,則可以從其他連接運行「從mon $ statements中刪除mon $ attachment_id =」。這將停止備份過程。使用FB 2.5,你甚至可以刪除gbak連接,做一個「從...附件...中刪除...」。

您可以在mon $ attachments表中找到正在尋找mon $ remote_process的gbak附件ID。