关于TADODataSet的问题
我的TADODataSet是通过sql来获得数据库xx。
注:数据库是一个不会被编辑的数据库,仅仅包含增加
和删除。其中有个字段是时标ddtt
当我首次用select * from xx
十秒后我想刷新那些新增加的内容,而不想通过select * from xx 的方式
然后Active:=false;Active:=true;的方式来刷新所有内容,我仅仅是想在通过ddtt来作为界定,来选择我上次刷新后的数据。

解决方案 »

  1.   

    什么意思  ddtt作为界定 语句中没有使用ddtt吗  使用Filter吗?可以使用 Active:=true 来刷新数据库的
      

  2.   

    adodataset.commandtext:='select * from xx where 条件'
    adodataset.active:=true;
      

  3.   

    你可用WHERE DDTT>某个时间段阿。。
    你的意思是只显示某一时段更新的内容?
      

  4.   

    各位我的意思是
    原有数据是10:30:00以前的
    那么如果我用commandtext=select * from xx 的方式adodataset.active:=true;来刷新
    那么原来10:30:00以前的数据也被刷新了一次。
    而bsmqu的方法
    adodataset.commandtext:='select * from xx where 条件'
    adodataset.active:=true;
    我10:30:00以前的数据不再了。
      

  5.   

    上面不清楚,再加上一句简单的通过ddtt把最新的数据增加到原来的数据集中,而保留原来的数据集
      

  6.   

    这样行不行,搂住的意思我还不太理解:
    定义一个变量pretime保存上次刷新的时间var
      pretime:Tdatetime;
    ...
    with adodataset do begin
    close;
    sql.clear;
    sql.add('select * from xx where ddtt> :pretime');
    parameters.parambyname('pretime').value:=pretime;
    open;//最后更新一下最后的pretime:
    order:='ddtt';
    Last;
    pretime:=fields[ddtt的index].asdatetime;
    order:=你想要排序的字段名
    end;
      

  7.   

    很难,我以前也想过实现;
    后来我想了个在数据量在时的办法
    ADODataSet1.CursorType:=clUseServer;
    ADODataSet1.active:=true;
    试试吧;不用给分了:)
      

  8.   

    我的方法只能让你的刷新时间变快而已,但不能达你所说的功能,因为ADODataSet1没这个功能,除非在数据库中设触法