gpt4 book ai didi

delphi - 取消附加的备份服务

转载 作者:行者123 更新时间:2023-12-03 18:33:52 25 4
gpt4 key购买 nike

我的软件必须进行数据库备份,其中一项预期功能是可以取消此备份。

根据我的想法,我有三个选择:

  • 使用组件,例如 TIBBackupService
  • 使用 ShellExecute 左右以编程方式调用 gbak
  • 使用 GDS32.dll API 以编程方式调用服务

  • 我尝试了第一个,即使我取消它,服务也会继续运行(备份文件会一直构建到最后并且所有资源保持不变)。

    第二个选项对我来说很糟糕,我认为我也无法中止手术。

    第三个选项需要几个小时,所以我想知道:
  • 有没有办法使用第一个选项中止备份操作?
  • 第三种方案可行吗?如果是,操作将被中止?
  • Firebird 备份操作完全可以取消吗?

  • 谢谢

    最佳答案

    PS:您没有提到您使用的 Firebird 版本。

    1) gbak 是连接数据库、读取所有信息并将其写入备份文件的“普通”应用程序。恢复过程是相反的。

    2) 当您使用 ServicesAPI 进行备份时(在您的示例中,选项 1 和 3),Firebird 将启动一个“内部”版本的 gbak 来完成这项工作。

    对于任何选项,如果您使用的是 Firebird 2.1,您可以从不同的连接运行“delete from mon$statements where mon$attachment_id =”。这将停止备份过程。使用 FB 2.5,您甚至可以删除 gbak 连接,执行“从 mon$attachments where... 中删除”。

    您可以在 mon$attachments 表中找到查看 mon$remote_process 的 gbak 附件 ID 是什么。

    关于delphi - 取消附加的备份服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794879/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com