数据集更新过滤器位置

时间:2009-01-20 23:44:56

标签: database delphi delphi-7

这总是让我想到了做以下事情的最佳方式......

使用简单的一对多db,当您在表单上有2个表/网格而第二个由第一个表进行过滤时。

放置过滤器代码的最佳位置在哪里 即:

procedure TForm1.tblCustormersAfterScroll(DataSet: TDataSet);
begin
  if tblCustormersCustormerID.AsString <> '' then
   begin
     tblCustormersThings.Filter := 'CustormerID = ' + tblCustormersCustormerID.AsString;
     tblCustormersThings.Filtered := true;
   end;
end;

AfterScroll似乎大部分时间都在工作,但是在发布之后就会被解雇一些事件。通常情况下,我会有一个程序来进行过滤器更新,并把它放在似乎需要的地方。

但我想知道是否有更好的方法,这似乎只是德尔福应该知道的东西......

我不认为这很重要,但我正在使用Delphi7和NexusDB1

1 个答案:

答案 0 :(得分:4)

您应该在“很多”方面设置 MasterSource 和主字段属性。

它被称为主 - 详细信息关系,您应该检查NexusDB帮助,以便在表之间创建这种关系。

如果您的表支持索引,则可以在 CustomerID 上创建索引,也可以使用 SetRange()方法。

设置过滤器的方式是最慢的。