我正在开发一个DBGrid
通过TSimpleDataSet
(dbExpress 组件)显示信息的软件
有问题的软件由 2 个不同的人在 2 台不同的计算机上使用。
他们都在不同的时间查看和编辑相同的信息。我正在尝试找出一种方法来自动更新计算机 B 上的DBGrid
(或者更确切地说是DataSet
,对吗?),一旦计算机 A 对一行进行更改(编辑某些内容/任何内容),反之亦然。
目前我已经设置了一个TButton
名称Refresh
,一旦点击执行以下代码:
procedure TForm2.actRefreshDataExecute(Sender: TObject);
begin
dbmodule.somenameDataSet.MergeChangeLog;
dbmodule.somenameDataSet.ApplyUpdates(-1);
dbmodule.somenameDataSet.Refresh;
dbmodule.somename1DataSet.MergeChangeLog;
dbmodule.somename1DataSet.ApplyUpdates(-1);
dbmodule.somename1DataSet.Refresh;
dbmodule.somename2DataSet.MergeChangeLog;
dbmodule.somename2DataSet.ApplyUpdates(-1);
dbmodule.somename2DataSet.Refresh;
dbmodule.somename3DataSet.MergeChangeLog;
dbmodule.somename3DataSet.ApplyUpdates(-1);
dbmodule.somename3DataSet.Refresh;
end;
这很好,一旦点击就可以按预期工作。我想要一个自动更新功能,例如当计算机 A 连续编辑信息时,计算机 BDBGrid
应该相应地更新它的显示,而无需单击刷新按钮。
我想我会TTimer
在两台 PC 上的两个软件上使用 a 并将其设置为特定的时间间隔。
我的实际问题是:
有没有比 a 更好的方法TTimer
呢?如果有,请详细说明。此外,如果TTimer
路线是去任何进一步信息的方式,您可能会发现对状态有用的信息将不胜感激(赞成和反对等)
我正在使用 Rad Studio 10 Seattle 和dbExpress
组件,数据集连接到我的网站所在主机上的 MySQL 数据库。
谢谢!