有个程序,其中的一个ADOQuery的打开速度突然不知什么原因,变的的很慢,出现‘超时已过期’报错。
CommandTimeout为默认的30。
打开方式:
ADOQuery1.Active:=false;
ADOQuery1.Parameters.ParamByName('vdate1').Value:=FormatDateTime('YYYY-MM-DD',DateTimePicker1.date);
ADOQuery1.Parameters.ParamByName('vdate2').Value:=FormatDateTime('YYYY-MM-DD',DateTimePicker2.date);
ADOQuery1.Active:=true;
说明:
1,该程序用了有半年多,一直用的很正常,ADOQuery1都是很快的可以打开。期间也没有改动过。
2,把ADOQuery1的SQL语句贴到查询分析器中,可以正常执行,一般是1--5秒内执行完成。
3,把CommandTimeout设置比较大的时候可以打开,如:300S。但是这样没有意义,用户会抱怨的。
4,ADOQuery1的SQL语句约120行,用到8个表,表属性没有变更过。
5,在不同的电脑上测试,一样会报错。
6,delphi7+mssql2000
7,返回行约1千。现在疑惑的是:为何突然变慢,而在查询分析器中(客户端)执行的速度又是正常的?
各位大侠,有没有遇到过,可能是什么原因引起的呢?
谢谢。