在以下的中当查到没有此商品后,终止程序运行,不执行下面的事务。
   if not dmsl.Query3.Locate('pmgk',spm1,[]) then
     begin
     showmessage('没有此商品');
      end;
  
if not dmsl.Database1.InTransaction then
 begin
   dmsl.Database1.StartTransaction;
 try

解决方案 »

  1.   

    exit以后,query1怎么提交了。query2没有
    if not dmsl.Database1.InTransaction then
     begin
       dmsl.Database1.StartTransaction;
     try
        dmsl.Query1.ApplyUpdates;
       dmsl.Query2.ApplyUpdates;
       dmsl.Database1.Commit;
     except
       dmsl.Database1.rollback();
       Application.MessageBox('保存数据出错。','四通管理系统',MB_ICONINFORMATION);
       dmsl.Query1.CancelUpdates;
       dmsl.Query2.CancelUpdates;         // 则取消对从表的更新操作  end;
    end;
      

  2.   

    Query1.CachedUpdates = True ?