当使用 TFDEventHandler 的数据库发生更改时,我正在尝试刷新我的 DbGrid。通过查看它的文档,我看到 TFDEventHandler 正在克隆已经提供给它的连接,我宁愿使用我当前的工作,而不是克隆另一个。
有没有办法让我只使用一个数据库连接来监听事件并发送查询?我在 Delphi 10.3 上编码并使用 FireDAC 访问我的 postgresql 数据库。
当使用 TFDEventHandler 的数据库发生更改时,我正在尝试刷新我的 DbGrid。通过查看它的文档,我看到 TFDEventHandler 正在克隆已经提供给它的连接,我宁愿使用我当前的工作,而不是克隆另一个。
有没有办法让我只使用一个数据库连接来监听事件并发送查询?我在 Delphi 10.3 上编码并使用 FireDAC 访问我的 postgresql 数据库。
不幸的是你不能。
TFDEventHandler 的工作方式是通过一个后台线程,该线程一直在数据库上运行以检查事件是否发生。
Manly 如果它使用主连接,它会阻止您的连接与其他查询。
如果您使用多个 TFDEventHandler 并使用 PoolConnections 到它,也确实建议这样做,因为 FDEventHandler 为每个组件打开一个新的连接和后台线程。