apicloud 执行多条sql语句 db.transaction事务回滚 怎么写?

发布于 2022-09-12 02:46:43 字数 2226 浏览 23 评论 0

function test ()
{
 var db = api.require('db');
 
 db.transaction({
  name: 'test',
  operation: 'begin'
}, function(ret, err){        
  if( ret.status ){
      alert( JSON.stringify( ret )+" begin1" );
      try
{
 //测试回滚 ,这里可以插入成功
 var sql = 'insert into Persons(Id_P, LastName, FirstName, Address, City,createTime)values(1,"lastname1","firstname1","address1","city1","'+new Date()+'")';   
 db.executeSql({
     name: 'test',
     sql: sql
 }, function(ret, err){
     if(ret.status){
         api.alert({msg:'operate data success 1.'});
         console.log(2);
     }else{
         api.alert({msg:err.msg});
        
         db.transaction({
       name: 'test',
       operation: 'rollback'
   }, function(ret, err){        
       if( ret.status ){
           alert( JSON.stringify( ret ) +" rollback1" );
       }else{
           alert( JSON.stringify( err ) +" rollback2" );
       }
   });
     }
 });
 
 //测试回滚 ,这里可以插入失败【5个字段,6个值】
  sql = 'insert into Persons(LastName, FirstName, Address, City,createTime)values(1,"lastname2","firstname2","address2","city2","'+ new Date()+'")';
 db.executeSql({
     name: 'test',
     sql: sql
 }, function(ret, err){
     if(ret.status){
         api.alert({msg:'operate data success 2.'});
         console.log(3);
     }else{
         api.alert({msg:err.msg});
        
         db.transaction({
       name: 'test',
       operation: 'rollback'
   }, function(ret, err){        
       if( ret.status ){
           alert( JSON.stringify( ret ) +" rollback1" );
       }else{
           alert( JSON.stringify( err ) +" rollback2" );
       }
   });
     }
 });
 db.transaction({
     name: 'test',
     operation: 'commit'
 }, function(ret, err){        
     if( ret.status ){
         alert( JSON.stringify( ret )+" commit1"  );
     }else{
         alert( JSON.stringify( err )+" commit2"  );
     }
 });
}
catch(err)
{
 db.transaction({
     name: 'test',
     operation: 'rollback'
 }, function(ret, err){        
     if( ret.status ){
         alert( JSON.stringify( ret ) +" rollback1" );
     }else{
         alert( JSON.stringify( err ) +" rollback2" );
     }
 });
}
     
  }else{
      alert( JSON.stringify( err )+" begin2" );
  }
});
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文