深圳全飞鸿

标题: beacon的事务处理,transaction [打印本页]

作者: zhgc    时间: 2021-5-26 15:48
标题: beacon的事务处理,transaction
范例一:smttools/st001
  1.                         $db->BeginTrans();   //开始事务处理
  2.                         $sqls=array();
  3.                         $sqls[] ="UPDATE SMT.R_TR_SN  SET ext_qty='{$extqty}',location_flag=1,work_flag=0,kitting_flag='a'  WHERE TR_SN='{$trsn}'";
  4.                         $sqls[]="insert into SMT.R_program_log (prg_name,fun_name,action_type,oldsn,out_emp,data1,data2) values('SMTTOOLS','EmptyToFull','空盘下料状态修改','{$trsn}','".$user->empno."','{$extqty}','".this.txt_extqty.Text. "')";
  5.                         $sqls[]="INSERT INTO smt.r_kitting_scan_detail (tr_sn, cust_kp_no, qty, from_location,to_location, move_type, move_reason, move_emp, move_time) VALUES ('{$trsn}', '{$kp}', '{$extqty}', '{$wo}',".
  6.                        "'KITTING', 'e', '996', '".$user->empno."', now())";
  7.                         $sqls[]="UPDATE smt.r_wo_request SET RETURN_QTY = RETURN_QTY + {$extqty} WHERE WO = '{$wo}' AND CUST_KP_NO =  '{$kp}' ";
  8.                         if($smttools->isdebug){
  9.                                 $smttools->saveLog($sqls);
  10.                         }         

  11.                         $rst=true;
  12.                         foreach($sqls as $sql){
  13.                                 $rst = $db->execute($sql);
  14.                                 if($rst){
  15.                                
  16.                                 }else{
  17.                                         $res=$db->ErrorMsg();
  18.                                         break;
  19.                                 }
  20.                         }
  21.                         if($rst==true){
  22.                                 $rst=false; //可能提交的时候出错!
  23.                                 $db -> CommitTrans();
  24.                                 $rst=true;               
  25.                         }else{
  26.                                 $db -> RollbackTrans();
  27.                         }
  28.                         return $rst;
复制代码



作者: syant    时间: 2025-5-29 12:34

  1.         //处理数据库连接
  2.         $this->app->prepare_mes();

  3.         //开始处理修改数据
  4.         $sqls=array();
  5.         $sqls[] ="update smt.c_stencil_base set work_flag=1,check_time=now() where  stencil_sn='{$trsn}'";
  6.         $sqls[] ="insert into smt.c_stencil_list select * from  smt.c_stencil_base where   stencil_sn='{$trsn}'";

  7.         //开始事务处理
  8.         $this->app->mes->BeginTrans();   
  9.         $rst=true;
  10.         foreach($sqls as $sql){
  11.                 $rst = $this->app->mes->execute($sql);
  12.                 if($rst){
  13.                        
  14.                 }else{
  15.                         $res=$this->app->mes->ErrorMsg();
  16.                         $this->app->AjaxFail("{$res},{$sql}", 100);
  17.                         break;
  18.                 }
  19.         }

  20.         //开始提交
  21.         if($rst==true){
  22.                 $this->app->mes -> CommitTrans();
  23.         }else{
  24.                 $this->app->mes -> RollbackTrans();
  25.                 return;
  26.         }

  27.         //要取消AjaxOK,改为AjaxPass函数,因为AjaxPass和AjaxFail保持一样的参数顺序
  28.         $this->app->AjaxOK($trsninfo,"钢网{$trsn}收入工具室!");   
复制代码





欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2