我把ClientDataset做一个临时表
想对临时表里的数据进行查询统计
是否能用sql 语句进行查询
一条条记录查,感觉有点慢

解决方案 »

  1.   

    我的做法是
    cds.first
    while not cds.eof do
    begin
    //
    cds.next
    end;如果我要判断临时表里面的一个列全不为零,我必须这样来个查个遍吗?
    如果  用  cds.locate 如果定位不到,是否会有返回值?
      

  2.   

    locate 返回 True or False. 这还不够?
      

  3.   

    你好象用的不是SQL语句呀,你这个只是循环遍历而已
      

  4.   

    我就是想在临时表里面用sql 语句,怎么用?
      

  5.   

    to
    hoho5999(hoho)  locate的速度比遍历快很多,所以我不想用遍历,太土了
      

  6.   

    clientdataset 和table的用法一样
    可以用
    clientdataset.filtered:=false;
    clientdataset.filter:=format('要查的'+'=+'''%s,[和什么一样的]);
    clientdataset.filtered:=true;
      

  7.   

    用 cds.Filter吧! 楼上说的正解
      

  8.   

    如果我要把临时表里面的一列a全部设置为1呢?
    怎么用sql啊?
      

  9.   

    ClientDataset做出的临时表、無法使用SQL语句。只能循環付値:
     ClientDataSet1.FieldValues['a'] := 1;查询時用「Filter」来代替SQL语句的「Where」条件
     Edit1.Text := '李四';
     ClientDataSet1.Filter := 'name=' + QuotedStr(Edit1.Text);
     ClientDataSet1.Filtered := true;
      

  10.   

    用filter和locate好象会重新从数据源检索数据,而不是本地已存在记录集中检索。
      

  11.   

    回复人: aloking(黑鲸) ( ) 信誉:100  2004-09-23 11:58:00  得分: 0  
     
     
       如果我要把临时表里面的一列a全部设置为1呢?
    怎么用sql啊?
     
     
    ---------------
    update 临时表 set field1=1