首页 文章

将远程Firebird表复制到本地数据库

提问于
浏览
1

我有一个带数据库的远程Firebird 3.0服务器 . 在这个数据库中,有一个大表 . 客户经常在工作期间查询此表 . 有太多的客户端和糟糕的互联网连接,所以这个表的工作是可怕的 . 我通过IBExpert将此表的本地副本放入临时数据库,该数据库随客户端应用程序一起分发 .

但现在需要更改此表中的某些值(添加新值并编辑一些旧值) . 所以我需要某种同步 - 将远程修改表复制到客户端的本地数据库 .

客户端应用程序是使用Delphi Berlin 10.1制作的 . 所以同步应该由Delphi代码完成 .

你能给我一个想法吗,请问如何正确地同步这么大的 table 呢?

1 回答

  • 0

    您可以在master数据库上触发POST_EVENT(用于插入,更新,删除(触发器))以通知客户端应用程序有更改 .

    然后您的客户端需要触发程序(在本地数据库上)进行同步 . 这可以通过EXECUTE STATEMENT ON EXTERNAL来完成

    FOR EXECUTE STATEMENT ('SELECT ... WHERE CURRENT_TIMESTAMP >= tablename.modifiedon')
      ON EXTERNAL 'SERVER/PORT:DBPATH'
    

    您应该在主DB中包含插入/修改/删除的日期 .

相关问题