使用ADOQuery.Post怎么这么慢

jdngz 2010-11-03 12:20:19
使用DBGrid DataSource ADOQuery ADOConnection 修改一条数据将近3秒,
使用sql语句倒是非常快,但是在DBGrid中不自动更新

with DataM.ADOCatalogTBQry do //DBGrid1.DataSource.DataSet do
begin
Edit;
FieldByName('ArchNo').Value := tmpArchNo;
FieldByName('SectNo').Value := tmpSectNo;
FieldByName('CatalogNo').Value := tmpCatalogNo;
FieldByName('RollNo').Value := tmpRollNo;
FieldByName('FileNo').Value := tmpFileNo;
FieldByName('tm').Value := tmptm;
FieldByName('wjbh').Value := tmpwjbh;
FieldByName('bgqx').Value := tmpbgqx;
FieldByName('zrz').Value := tmpzrz;
FieldByName('ztc').Value := tmpztc;
FieldByName('sj').Value := tmpsj;
FieldByName('ys').Value := tmpys;
FieldByName('yh').Value := tmpyh;
FieldByName('remark').Value := tmpremark;
Post;

if Eof then
begin
Edit_yh.Tag := 0;
ShowErrorInfo('已到达最后一条');
end
else
begin
if tryStrToInt(tmpYh,i) then
Edit_yh.Tag := StrToInt(tmpYh) + ImageEnMView1.ImageCount
else
Edit_yh.Tag := 0;

Next;
end;
end;
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
duxing00 2010-11-03
  • 打赏
  • 举报
回复
前后加上 ADOQuery1.DisableControls
ADOQuery1.EnableControls
可以 快很多~
iamduo 2010-11-03
  • 打赏
  • 举报
回复
DB控件一般我不用。就是太“自动”了没有效率。
sql语句 + 手动更新界面。
jdngz 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 duxing00 的回复:]
前后加上 ADOQuery1.DisableControls
ADOQuery1.EnableControls
可以 快很多~
[/Quote]

果然快很多,谢谢.
ecjtu5208 2010-11-03
  • 打赏
  • 举报
回复
软件钢琴师 2010-11-03
  • 打赏
  • 举报
回复
这中东西 还是 sql语句 + 手动更新界面 的好,用ClientDataSet 也可以

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧