dbgrid 过滤的速度问题 附上代码
问题:一个编辑框中设置了onchange 输入的时候直接过滤数据。
以前的程序过滤速度特别快,输入编号的时候没有任何的停滞感。可是现在写的代码 过滤的速度特别慢。
以前的代码找不到了。 所以找大家好帮忙分析下我的代码哪里有情况 谢谢
dbgrid1.DataSource.DataSet.Filtered:=false; if trim(Edtspbh.text)='' then dbgrid1.DataSource.DataSet.Filter := '' else dbgrid1.DataSource.DataSet.Filter :='spbh = '''+UPPERCASE(Edtspbh.text)+'*'''; dbgrid1.DataSource.DataSet.Filtered:=true;
......procedure TForm1.EdtspbhKeyPress(Sender: TObject; var Key: Char);begin if key <> #13 then exit; if trim(Edtspbh.text)='' then dbgrid1.DataSource.DataSet.Filter := '' else dbgrid1.DataSource.DataSet.Filter :='spbh = '+Quotedstr(UPPERCASE(Edtspbh.text)+'*');end;......
[解决办法]
代码没问题,可能是因为放在onchange事件原因吧;
每输入一个字符,或者删除一个字符都会触发,当连续输入很长一串字符时,就会感觉到慢的,数量多时更慢
是否可以改成:加一个按扭,这段代码放到按扭事件中去,输入完毕就按下按扭
[解决办法]