刷新DBExpress数据

时间:2016-09-30 18:11:38

标签: c++ c++builder dbexpress

我在C ++ builder XE3上使用SQLite数据库有一个简单的DBExpress应用程序。

UI有一些DBGrids和DBNavigators。 DBGrids连接到连接到TClientDataSets的TDataSource。 TClientDataSets从TDataProviders获取数据,这些数据从TSQLDataSet获取数据。每个人都连接到TSQLConnection。

应用程序正常工作,除非数据由另一个数据库组件发布,与应用程序无关。要获得新的远程'数据,我必须单击导航器上的“刷新”按钮两次(2)。

我使用以下代码获得相同的行为:

        mClientDBSession.insertImageFile(getFileNameNoPath(f), "Note..");
        DBNavigator1->BtnClick(nbRefresh);
        DBNavigator1->BtnClick(nbRefresh);

mClientDBSession是与DBExpress无关的数据库对象。 insertImageFile将db记录直接插入到SQLite数据库中并且是同步的,所以我知道DB在函数退出后得到了数据。

奇怪的是,如果我没有两次调用BtnClick(nbRefresh),那么数据就不会更新,而是看着DBGrid。

理想情况下,我会有一个计时器,每隔一段时间就会使用新的服务器数据自动更新DBExpress组件。

0 个答案:

没有答案