2012-10-04 55 views
0

我得到了一个TClientDataset,其中包含来自多个表的数据。当我在这个数据集上应用更新时,它可能会不同步。刷新更新后的TClientDataset中的值

我给大家举一个例子:

在表更新我得到了所谓的“CLIENT_ID”的ID。 clientdataset还包含一个值“Client_name”,它从“客户”表中获取并显示在GUI中。

然后我更改我的表中的“Client_id”,并对表应用更新,我的数据集中的“Client_name”字段突然不同步。这很自然,因为clientdataset没有被刷新。

现在我可以在afterpost事件上做一个clientdataet.refresh,但随后数据集上的光标跳转到第一条记录,并且我松开了指向更新记录的指针。

任何人都知道如何解决这个问题?

回答

0

您应该试一试RefreshRecord

+0

我想这首先任何新的字段值,但有一些运行时错误消息。我认为这些消息完全是另一回事,但由于时间不够,我没有时间去调试它。一旦我找到时间,我将不得不放弃它。接受你的答案,然后,如果我得到它的工作。 –

0

集poPropogateChanges为您的供应商,并指定在AfterUpdateRecord事件处理

+0

我确实使用这个事件来获取插入后的PK。它也可能用于更新价值观,但在我看来,它不可能是最有效的方法?我的意思是需要在具有许多数据字段的表中进行大量的维护。 作为临时解决方案,我进行了正常刷新,然后使用数据集的索引将指针移动到正确的位置。不是我所知道的最好的解决方案,但如前所述,我现在还没有时间仔细研究它。 只要我有时间深入研究,就会更新此问题。 –

+0

事实上,它比另一个往返应用程序(RefreshRecord或Refresh是过度杀毒)到应用程序服务器更高效。实际上,这正是我的TVDataSetProvider如何实现poAutoRefresh支持 – vavan