Z
zgjob
Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个数据保存程序如下,新插入的数据存入表1后再更新表2,数据量较大,有时会出现重复执行的问题,请问如何改进?<br>with adoq1 do<br>begin<br> close;<br> sql.clear;<br> sql.add('select yid,数量 from 表1');<br> open;<br> first;<br> for i:=0 to recordcount-1 do<br> begin<br> with adoq2 do<br> begin<br> close;<br> sql.clear;<br> sql.add('update 表2 set 数量=数量-:sl where yid=:yid');<br> Parameters.ParamByName('yid').Value:=adoq1.Fields[0].AsInteger;<br> Parameters.ParamByName('sl').Value:=adoq1.Fields[1].Asfloat;<br> execsql;<br> close;<br> end;{with adoq2}<br> adoq1.next; <br> end;{for}<br>adoq1.close;<br>end;{with adoq1}<br>程序运行基本上都正常,但出现过几次,数据重复执行了比如yid为了22的商品本身应减数量为5但运行后却减了两次即10的现象,请问如何改进?或者有何好办法??