2012-11-20 100 views

回答

4

Gfix不能損壞的數據庫。它使用安全終止正在運行的查詢並回滾所有活動事務。

您可以通過執行由執行DELETE FROM MON $連接DELETE FROM MON $報表WHERE MON $ STATEMENT_ID = ...

您可以關閉整個附件取消指定查詢的WHERE CONNECTION_ID = ...

所有查詢都應該從並行附件運行。

+0

我剛剛運行一個測試,通過運行長查詢並運行gfix來關閉數據庫。在我把數據庫重新聯機後,我運行gfix驗證並報告了損壞。明天我會嘗試運行另一個測試併發布結果。 – Reynaldi

+0

我如何獲取statement_id或connection_id的值?同時,你的意思是打開另一個連接? – Reynaldi

+0

如果確實損壞了數據庫,那麼將其報告爲http://tracker.firebirdsql.org/browse/CORE –

3

下一步在Andrej提供的答案,火鳥2.5 API還包括fb_cancel_operation命令,取消對數據庫句柄所有正在運行的行爲。你需要檢查你的Delphi組件是否支持這個。