Noear.Weed.DbTranQueue.complete C# (CSharp) Метод

complete() публичный Метод

public complete ( ) : void
Результат void
        public void complete()
        {
            try {
                commit();
            }
            catch (Exception ex) {
                rollback(true);
                throw ex;
            }
            finally {
                close();
            }
        }

Usage Example

Пример #1
0
        /*2个数据库的事务,后面的根据前面的执行结果再决定要不要跟进(在同一个函数内,分布式)*/
        public static void test_db2_tran2()
        {
            DbContext db = DbConfig.pc_user;
            DbContext db2 = DbConfig.pc_base;

            //1.建立主事务,并执于
            DbTranQueue queue = new DbTranQueue();

            //1.建立主事务,并执于
            db.tran().join(queue).execute((t) => {
                db.sql("insert into test(txt) values(?)", "cc").tran(t).execute();
                db.sql("insert into test(txt) values(?)", "dd").tran(t).execute();
                db.sql("insert into test(txt) values(?)", "ee").tran(t).execute();

                queue.result = 1;
            });

            //2.根据执行结果判断
            if ((int) queue.result == 1) {
                //3.执行第二个事务
                db2.tran().join(queue).execute((t)=> {
                    db2.sql("insert into test(txt) values(?)", "gg").tran(t).execute();
                });//json(tran) 时,会自动调用 await(true);  当 await(true)时,需要之后的事务来触发或手动触发
            }

            //4.统一触发事务
            queue.complete();
        }
All Usage Examples Of Noear.Weed.DbTranQueue::complete