有段代码调试时不出错,单独执行生成的EXE文件也不出错.可是出现了如下的奇怪的问题:(50分)

M

myjane

Unregistered / Unconfirmed
GUEST, unregistred user!
{***********************************************************************}
{这段代码功能是通过ADOTABLE1联接的临时表,来更新ysskhz表中的两个字段内容.}
{存盘时有时不能全部更新ysskhz表中内容(有部分已更新,有部分没有被更新) }
{,单也没有提示出错.请看如下代码是否有错,或者还有其他方法,先在此谢过!! }
{***********************************************************************}
adotable1.Open;
adotable1.First;
while not adotable1.Eof do
begin
with lrysado do
begin
close;
sql.Clear;
sql.add('update ysskhz');
sql.add('set yshz=yshz+:stk,yu=:yuww');
sql.add('where khdm=:dm');
parameters.ParamByName('dm').value:=adotable1khdm.asstring;
Parameters.ParamValues['Stk']:=adotable1skje.asfloat;
parameters.ParamByName('yuww').value:=adotable1yuw.asstring;
execsql;
end;
adotable1.Next;
end;//while...do
 
1.ysskhz中部分khdm在adotable1khdm.asstring中不存在;
2.ysskhz中部分yshz为NULL值,
sql.add('set yshz=yshz+:stk,yu=:yuww');
改为
sql.add('set yshz=ISNULL(yshz,0)+:stk,yu=:yuww');
试试
 
TO:Awen.ZW.Yang,
<1.ysskhz中部分khdm在adotable1khdm.asstring中不存在;>
这个保证没有问题。
<2.ysskhz中部分yshz为NULL值,sql.add('set yshz=yshz+:stk,yu=:yuww');改为sql.add('set yshz=ISNULL(yshz,0)+:stk,yu=:yuww');试试>
YSHZ是浮点型的字段。是自动填0的,难道是这个问题。
 
ltBatchOptimistic

你用过吗?
 
多人接受答案了。
 
顶部