delphi的事物处理(200分)

  • 主题发起人 主题发起人 对酒当歌
  • 开始时间 开始时间

对酒当歌

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个delphi新手,以前一直用pb,我碰到一个难题,用delphi的tquery控件和updatesql控件作一有两列的表的提交,第一列整形,第二列为一100字节
的字符型,用sqlserver7.0作后台,然后给tquery插入数据,作提交试验,我发现用pb的数据窗口提交,同样10000条纪录,pb插入需68秒,提交24秒,用delphi
1000条纪录以下还可以,10000条时,commit后调用tquery的commitupdate清空缓冲区时间慢的难以忍受,我想问delphi的这类问题怎麽解决,不清空缓冲区行不行,有没有更好的办法,若如上所述作商业应用简直是不可能的.再有就是当dbgrid中有很多数据,比如1000000条时,稍动一下滚动条,就会重新检索很长时间,用pb则不会,为什么,恳请各位高手不啬赐教.
 
DBgrid放这么多数据恐怕是不行的,在database中设一下maxrows试试,我也不太清楚具体怎么解决。
 
你是不是说某个表已有10000条记录,插入一条记录需要68秒,提交要用24秒?
 
有无设置UPDATEMODE的方式?
 
也许用ADO会快点
 
我用SQL6.5,表中已有近3百万条记录.用QUERY插入数据.
没有很慢啊.(第一次连接慢.以后就快了.)只是SQL EX点到上面时
会很慢(它要把数据全选出来).
 
不会这么慢的,一定是程序有问题.
 
我说的是清空缓冲区慢,单单commit还是很快的,另外调用database的applyupdates,联机帮助说
可替代先commit后commitupdate,但还是同样慢?
 
大量Table.Append(或Table.AppendRecord) + 缓存更新比较快.
插入数据比Query + 缓存更新快.
 
建议采用逐条提交,每插入一条就提交.
 
看来也没人能解释清楚了,话复前言,见者有份
 
后退
顶部