我想用DBGrid做数据维护控件,数据集控件用的是ADOTable,我想在每次打开窗体的时候,DBGrid内不显示任何数据(也就是说想用做数据增加的场景),之后我可以添加数据,然后保存。
可是现在ADOTable的属性Active一旦设成true,就会显示表中所有的数据,怎么让它不显示,而达到可以编辑(添加)的效果啊?

解决方案 »

  1.   

    procedure OpenEmptyQuery(Query: TADOQuery);
    var
      I: Integer;
    begin
      with Query do
      begin
        if Active then Close;
        Prepare;
        for I := 0 to Parameters.Count -1 do
          Parameters[I].Value := NULL;
        Open;
      end;
    end;
      

  2.   

    单独写成一个函数啊,也可以放你的FORM里面,例如
    type TForm1 = class(TForm
    private
       procedure OpenEmptyQuery(Query: TADOQuery);
    end;implementationprocedure TForm1.OpenEmptyQuery(Query: TADOQuery);
    var
      I: Integer;
    begin
      with Query do
      begin
        if Active then Close;
        Prepare;
        for I := 0 to Parameters.Count -1 do
          Parameters[I].Value := NULL;
        Open;
      end;
    end;要Edit或Append之前调用一下
    OpenEmptyQuery(YourQuery);
    YourQuery.Append;
      

  3.   

    先不建立ADOTABLE的Connection的属性..
          自已动态建立不就行了.!
          比如点查询按钮... adotable.connection:=adoconnection
                            .......................条件
      

  4.   

    1.用adotable的filter属性设置过滤条件;
    2.用adoquery的带条件的查询;