//procedure SetRange(const StartValues, EndValues: array of const);procedure TForm1.Button1Click(Sender: TObject);
begin
  if Button1.Caption = '&Apply Range' then
    begin
      Table1.SetRange([Edit1.Text],[Edit2.Text]);
      Button1.Caption := '&Drop Range';
    end
  else
    begin
      Table1.CancelRange;
      Table1.Refresh;      Button1.Caption := '&Apply Range';
    end;
end;

解决方案 »

  1.   

    procedure TForm1.FormActivate(Sender: TObject);begin
      Table1.DatabaseName := 'DBDemos';
      Table1.TableName := 'Customer.db';
      Table1.Active := True;
      Table1.IndexName := 'ByCompany';
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Table1.DatabaseName := 慏BDemos?
      Table1.TableName := 慍ustomer.db?
      Table1.Active := True;
      Table1.IndexName := 'ByCompany';
      if Button1.Caption = '&Apply Range' then
        begin
          Table1.SetRange([Edit1.Text],[Edit2.Text]);      Button1.Caption := '&Drop Range';
        end
      else
        begin
          Table1.CancelRange;
          Table1.Refresh;
          Button1.Caption := '&Apply Range';
        end;
    end;
      

  2.   

    SetRange([edit1.text,edit2.text],[edit3.text,edit4.text]);
     在这个函数里第一个数组是设置范围的起点 第二 个数组是设置范围的终点
     而至于数组可以是多个元素 这里是两个元素 
    其中 edit1.text 与edit3.text  确定一个 范围
         edit2.text 与edit4.text  确定一个范围  
    两个范围共同作用 一起确定 最终的 范围 
    我们最常用的是  只用 其中 一组范围 就可以了
    常用的 格式是 
        setrangestart; 
         fieldbyname(' ').asstring:=edit1.text;
         (....可以 再写条件)
        setrangeend;
        fieldbyname(' ').asstring:=edit3.text;
         (.....与 前边的照应)
        applyRange;
      

  3.   

    customconstraint这个没人知道??
      

  4.   

    customconstraint设置数据范围,我用了,怎么不行
    有一字段为AGE我在customconstraint属性中写x>0 and x<100
    (错误的原因可能是 因为表中有 不合法的数据,或者age 不是 integer型)首先应该检查你 age 的数据类型(这个很重要的)   并且 你一定保证 你设置的 范围能够使  原来的数据 合法 如果 数据表中原来的 数据有超出的范围的数据 表是可以打开的 但是 当你增加 删除时  你设的范围 就会起作用了我建议 你先设置一个 非常大的范围 输入 删除 数据 看是否违法
    (前提的 如果没有范围的限制时 你的程序是 好的)
    如果合法 你可以故意输入一个不合法的 数据 应该你 程序就报错 
    设置的范围就起做用了
    我已经在我的 程序实验过了!!!