为什么这么慢?(100分)

  • 主题发起人 主题发起人 wallis
  • 开始时间 开始时间
我x ,ADO比BDE慢的多????

如果一条条NEXT,SQL Server 7 也快不了。
 
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
tmp:string;
begin
str:='1200';
tmp:='1234';
adoquery1.Close;
with adoquery1.SQL do
begin
Clear;
Add('UPDATE table1 SET sj = ');
Add('iif(cint(left(right(left(sj, 7),7),4))> '+str+' and len(sj)>= 7,right(left(sj, 7),7),'''+tmp+'''+right(left(sj, 7),3))+');
Add('iif(cint(left(right(left(sj,14),7),4))> '+str+' and len(sj)>=14,right(left(sj,14),7),'''+tmp+'''+right(left(sj,14),3))+');
Add('iif(cint(left(right(left(sj,21),7),4))> '+str+' and len(sj)>=21,right(left(sj,21),7),'''+tmp+'''+right(left(sj,21),3))+');
Add('iif(cint(left(right(left(sj,28),7),4))> '+str+' and len(sj)>=28,right(left(sj,28),7),'''+tmp+'''+right(left(sj,28),3))+');
Add('iif(cint(left(right(left(sj,35),7),4))> '+str+' and len(sj)>=35,right(left(sj,35),7),'''+tmp+'''+right(left(sj,35),3))+');
Add('iif(cint(left(right(left(sj,42),7),4))> '+str+' and len(sj)>=42,right(left(sj,42),7),'''+tmp+'''+right(left(sj,42),3)) ');
end;
adoquery1.ExecSQL;
end;

列出SJ字段包含字符串abc的数据(Delphi中)
select * from table1 where sj like '%abc%'

在ACCESS中建立查询要用*号
select * from table1 where sj like '*abc*'
 
SuperLeo,不要乱说!
我是同样一样的程序、环境,先做了BDE版,后应用户要求改为ADO版,用的是同样的语句、
过程,就是改了数据控件,性能降低60%多,后来,怕用户等的时间太长,有些庞大的操作
只能加上进度条标志进度,说明程序还没死!(当然,加上进度条就更慢了,真tmd!)
 
接受答案了.
 
后退
顶部