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

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" );
  }
});
}
阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进