一个Query正处于Edit状态,我想在此时对Query做遍历(以校验我当前输入数据的有效性)。我该如何能够创建此Query的副本,以便进行遍历时不影响Query的当前状态?

解决方案 »

  1.   

    ..
    Query2.DataSet:=Query1.DataSet;
    遍历Query2
      

  2.   

    使用游标‘克隆’,好象是clientdataset中的,
      

  3.   

    to fenglaile(风清飘) 能不能给个简单的例子?
    我在
    Query1某个Field的OnValidate中如下代码
    ____________________________________________
      tmpDataSetProvider := TDataSetProvider.Create(Application);
      tmpDataSetProvider.DataSet := Query1;
      ClientDataSet1.Data := tmpDataSetProvider.Data;
      tmpDataSetProvider.Free;
      
      ClientDataSet1.First;
      while ClientDataSet1.Eof do
      begin
        ShowMessage(ClientDataSet1.FieldByName('aaa').AsString);
        ShowMessage(ClientDataSet1.FieldByName('bbb').AsString);
        ClientDataSet1.Next;
      end;
    _______________________________
    运行到
    ClientDataSet1.Data := tmpDataSetProvider.Data;
    时ClientDataSet1.Data始终为nil程序会退出(不报任何异常)。
      

  4.   

    to zhouzhouzhou(人生程序)
    程序报告异常
    Cannot Assign a TQuery to a TQuery。
      

  5.   

    再把我的问题解释一下:
    Query1中已经Post了一些数据,
    当Query1要插入又一条数据时,需要对输入的数据做合法性校验,确保新输入的数据不与此前Post过的数据有交集。
    我希望有方法能把Query1中的数据集复制到另一个类似于Query的DataSet中,然后我遍历这个DataSet副本,去检验数据合法性。
    遍历副本DataSet的时候,不希望引起Query数据或游标的变动,因为我要在OnValidate中做这个校验。