ADO出的问题各位来看看下面的代码。(10分)

S

sxd2002

Unregistered / Unconfirmed
GUEST, unregistred user!
begin
if fileexists('c:/temp/d14064.txt') then begin
FlatButton2.Enabled:=false;
Screen.Cursor:=CrhourGlass;
// adotable1.DatabaseName:='c:/temp';
adotable1.Connection:=ADOConnection1;
adotable1.TableName:='ckdb';
adotable1.Active:=true;
adotable1.Edit;
lines:=Tstringlist.Create;
lines.LoadFromFile('c:/temp/d14064.txt');
for i:=0 to pred(lines.Count-1) do begin
adotable1.Append;
s:=lines;
s2:=copy(s,10,16);
adotable1.FieldByName('lnkh').Value:=s2;
s2:=copy(s,40,12);
adotable1.FieldByName('cksj').Value:=s2;
s2:=copy(s,88,10);
adotable1.FieldByName('tzsj').Value:=s2;
try
adotable1.Post;
except
// on EDBEngineError do begin
// on EDBEngineError do begin
// messagebox(handle,'写数据库失败.','失败',0);
// adotable1.Cancel
adotable1.Cancel;
// adotable1.Edit;
continue;
// end;
end;
end;
lines.Free;
showmessage('装入文本文件成功!');
end else begin
showmessage('没有找到可转换的文本文件');
end;
Screen.Cursor:=Crdefault;
adotable1.Active:=false;
end;
****************************
数据是插入到表里面了,就是为什么鼠标总是:Screen.Cursor:=CrhourGlass
并且没有显示 '装入文本文件成功!'
帮我!
 
风格太差,请把格式搞好!
 
要用
try
except
//这是出错执行的部分
finally
//这是一定要执行的部分
 
最后发现代码是没有什么问题,但是执行的时间很长。
有1万条记录,大约用5分钟,谁有好的办法。
 
改缓存更新模式,
adotable.LockType := ltBatchOptimistic;
本地提交也即POST时做过数据准确性验证
全部完成后执行adotable.UpdateBatch(arAll);

会快不少的
 
同意楼上的说法。
ADO控件有个好处就是主要适当设置效率会提高很多。
更新大量的数据最好就用ADO控件的UPDATEBATCH过程啦!!!!!!!
 
顶部