的确是这样的:如果改变params里的参数值后ADOQuery的确会自动调用UnPrepare()方法置属性Prepared为false,其实这是有好处的。另外在程序里Inprice公司的手册也推荐用户显式的调用Prepare()来初始化参数(把用户的params里的参数解析并赋值给底层执行语句),在处理数据量大时特别扩用,因为如果是隐含由系统调用则每次查询都会Prepare()一次,而如果用户显式的在一个循环前面调用Prepare(),在循环体里就不会再自动执行Prepare(),只执行了一次,效率很高。example: ...
if ADOQuery.Prepared=false then ADOQuery.Prepare();
while(...)
begin
ADOQuery.Open();
...//处理语句
ADOQuery.Close();
end;
...
if ADOQuery.Prepared=false then ADOQuery.Prepare();
while(...)
begin
ADOQuery.Open();
...//处理语句
ADOQuery.Close();
end;
...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货