作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要刷新缓存更新中的 TFDQuery 中的数据。
为了简化我的问题,假设我的 MsACCESS 数据库由我必须加入的 2 个表组成。
LABTEST(id_test, dat_test, id_client, sample_typ)
SAMPLEType(id, SampleName)
在 Delphi 应用程序中,我使用了 TFDConnection 和 1 个 TFDQuery(在缓存更新中),其中我加入了 2 个表,其脚本是:
"SELECT T.id_test, T.dat_test, T.id_client, T.sample_typ, S.SampleName
FROM LABTEST T
left JOIN SAMPLEType S ON T.sample_typ = S.id"
在我的应用程序中,我还使用 DBGrid 来显示查询结果。
qr.Edit;
qr.FieldByName('sample_typ').AsString:=ce2.text;
qr.Post;
'sample_typ' 字段的版本工作正常,但相应的 'sampleName' 字段在更新后没有改变(在网格中)。
最佳答案
问题归结为这样一个事实,即您没有告诉您的 UI 对这两个字段有任何依赖性 - 它显然无法知道如何在不重新提交的情况下进行连接,因此如果您不想发送更新和重新加载你会遇到问题。
目前尚不清楚您要做什么,但这两个想法可能对您有所帮助。
如果您不打算编辑 SAMPLEType 表 (S) 中的字段,则将该表中的值加载到查找表中。您可以将其加载到 TFDMemTable 中。您可以使用从查询加载的适配器。然后,您的 UI 控件可以根据在本地 TFDMemTable 中查找的值显示该值。根据 UI 控件,这可能是“LookupField”或类似的。
您还可以使用适配器将主要数据存储在 TFDMemTable 中 - 您可以指定不同的 TFDCommands 来读取整个记录集、刷新记录、更新、插入和删除记录。 TFDCommands 可以作用于多个表的连接记录集,就像这样。这将在您发布时自动为您刷新个人记录。
关于德尔福 FireDAC : how to refresh data in cache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66653817/
我是一名优秀的程序员,十分优秀!