【问题标题】:Delphi Master-detail Datasets with cached updates - how to loop through all the of the records in the detail datasetDelphi Master-detail Datasets with cached updates - 如何遍历详细数据集中的所有记录
【发布时间】:2011-07-08 23:39:34
【问题描述】:

我有一个主详细信息数据集:订单和订单项目,两个数据集都设置为缓存更新。问题是在保存订单项目时我想更新数据库中的不同表,所以做一些手动工作。我试图通过检查来做到这一点

MTOrderItem.UpdatesPending

这部分工作正常,但是当我尝试用

遍历数据集中的项目时
  with MTOrderItem do
  begin
    First;
    while NOT Eof do 
     .....

仅获取所选订单(主数据集)的过滤后的订单项。如何循环查看所有已修改的详细信息(订单项)记录

【问题讨论】:

    标签: delphi


    【解决方案1】:

    当主当前记录发生变化时,通常会重新打开明细数据集,因此明细仅包含当前主记录的记录。

    您应该加载所有详细记录并使用 Filter und Filtered 属性手动对其进行过滤。

    例如

    Master.OnScroll
        Details.Filter = 'MasterID='+Master.FieldByName(ID).AsString
        Details.Filtered := True
    

    【讨论】:

    • 好主意。我在 Blockreadsize 设置为 1 的情况下使用它,所以没有刷新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2017-11-24
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多