关于TADODataSet的问题
我的TADODataSet是通过sql来获得数据库xx。
注:数据库是一个不会被编辑的数据库,仅仅包含增加
和删除。其中有个字段是时标ddtt
当我首次用select * from xx
十秒后我想刷新那些新增加的内容,而不想通过select * from xx 的方式
然后Active:=false;Active:=true;的方式来刷新所有内容,我仅仅是想在通过ddtt来作为界定,来选择我上次刷新后的数据。
我的TADODataSet是通过sql来获得数据库xx。
注:数据库是一个不会被编辑的数据库,仅仅包含增加
和删除。其中有个字段是时标ddtt
当我首次用select * from xx
十秒后我想刷新那些新增加的内容,而不想通过select * from xx 的方式
然后Active:=false;Active:=true;的方式来刷新所有内容,我仅仅是想在通过ddtt来作为界定,来选择我上次刷新后的数据。
adodataset.active:=true;
你的意思是只显示某一时段更新的内容?
原有数据是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以前的数据不再了。
定义一个变量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;
后来我想了个在数据量在时的办法
ADODataSet1.CursorType:=clUseServer;
ADODataSet1.active:=true;
试试吧;不用给分了:)