求基于firebird数据库的Delphi在线报表实现更好的策略
在 Firebird 数据库驱动的 Delphi 应用程序中,我们需要将一些数据带到网上,这样我们就可以向我们的应用程序添加在线报告功能。
目前的做法是:每当数据更改或添加时,将它们发送到在线服务器(php + mysql),如果失败,将其添加到队列中并重试。然后拥有数据的服务器就能够创建自己的报告。
所以,总结一下:将这些数据放到网上的好方法是什么?
In a Firebird database driven Delphi application we need to bring some data online, so we can add to our application online-reporting capabilities.
Current approach is: whenever data is changed or added send them to the online server(php + mysql), if it fails, add it to the queue and try again. Then the server having the data is able to create it's own reports.
So, to conclude: what is a good way to bring that data online.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
目前我知道这两种不同的策略:
基于事件:每当检测到更改时,将它们推送到 Web 服务器/mysql 数据库。正如您所写,这需要排队,以防目标系统未收到消息。
基于快照:每隔一段时间(例如每小时)提取相关数据并传输到Web服务器/mysql数据库。
基于快照的策略允许以非常适合 wb / mysql 数据库数据结构的方式预处理数据,这可以帮助更好地解耦系统并将更多业务逻辑保留在发送系统(Delphi)一侧。它还会生成更连续的负载,因为它不关心大量数据更改。
At the moment I know these two different strategies:
event based: whenever changes are detected, push them to the web server / mysql db. As you wrote, this requires queueing in case the destination system does not receive the messages.
snapshot based: extract the relevant data in intervals (for example every hour) and transfer it to the web server / mysql db.
The snapshot based strategy allows to preprocess the data in a way that if fits nicely in the wb / mysql db data structure, which can help to decouple the systems better and keep more business logic on the side of the sending system (Delphi). It also generates a more continuous load, as it does not care about mass data changes.
另一种方法是使用复制,但我不知道谁在 Firebird 和 MySQL 数据库之间进行复制。
在线添加报表工具功能:您还可以查看快速报表服务器
One other way can be to use replication but I don't know system who make replication between Firebird and MySQL database.
For adding reporting tools capability on-line : you can also check fast report server