不是delphi疯了就是我疯了,关于adoquery的Post
仙侣步惊云 2010-03-15 11:52:31 一个简单的数据录入问题:
先在窗口放置几个Edit,然后:
myADOQuery.Close;
myADOQuery.SQL.Clear;
myADOQuery.SQL.Add('select id,xm,xb,whcd,kscj from tbM where 1<>1');
myADOQuery.Open;
myADOQuery.edit;
myADOQuery.FieldByName('id').AsInteger:=IntToStr(Editid.text);
myADOQuery.FieldByName('xm').Asstring:=Editxm.text;
myADOQuery.FieldByName('xb').Asstring:=Editxb.text;
myADOQuery.FieldByName('whcd').Asstring:=Editwhcd.text;
myADOQuery.FieldByName('kscj').AsInteger:=IntToStr(Editkscj.text);
try
myADOQuery.post;
showmessage('保存成功!');
except
showmessage('保存错误!');
end;
以前一直是这样做录入,没什么问题
最近却发现不可思议的问题:
当采用二层设计时,数据录入量大时(如每秒种1-3条录入),会发现记录丢失的情况,大约是每二、三千条丢失5-10条情况,并且中间没有任何提示错误。
使用的环境是:服务器win2003,客户端winxp sp2,mdac版本2.8
现在是客户已经录了10多万条数据,大约丢失了好几百条记录,中间却不知丢失了那些记录,又是一篇一篇的查。
将myADOQuery的locktype改为ltBatchOptimistic,使用UpdateBatch(arAll)更新后,丢失的记录减少到个位数,但还是有问题。
问题根源:
1、post有问题?
2、mdac版本?
3、用户的电脑操作系统?
4、病毒?