路漫漫其路远也
缓存删除的问题。
query2是缓存数据集,假如我添加十个空记录,当我提交记录applyupdates时,想把没有输入记录先删除,再applyupdates提交记录,怎么办?
while not dmsl.query2.Eof do
if (dmsl.query2['shul']='') then
begin
dmsl.query2.delete;
end;
以上程序是错误的。
我搞的是销售主,从表录入,从表当然是一次添加多个空记录,我采用是缓存处理。主从表录好后一起提交。当我提交记录时,想把没有输入记录先删除,再提交记录。
路漫漫其路远也。最近我没有其他事情。拾起以前程序继续写起来。不知何时修成正果。我正在努力中其中,在这当中我要感谢各位无私的教诲!。分当然不是主要的,认识这么多朋友真高兴!请大家继续关注我的贴子。我想我现在真离不开大家。CSDN真是个大家庭。
在这个销售主、从表录入表单中。主从表我是分开提交的
dmsl.query1.database.applyupdates([dmsl.Query1]);
dmsl.Query2.Database.ApplyUpdates([dmsl.query2]);
增加,修改,删除基本能行。就是以上一次删除多条空记录有点问题。还有的问题,我想把整个过程封装在事务中,主、从表添加一起提交,出错就回滚。
怎样把整个过程封装在事务中,
dmsl.database1.starttransaction;
try
//dmsl.Query1.Post;
//dmsl.Query2.Post;
dmsl.query1.database.applyupdates([dmsl.Query1]);
dmsl.Query2.Database.ApplyUpdates([dmsl.query2]);
dmsl.Database1.Commit; //出错
except
dmsl.database1.Rollback;
Messagedlg('操作失败!',mtwarning,[mbOK],0);
end;
这个事务怎么不执行。