Nested transaction processing scheme

            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.BusinessDbType, BaseSystemInfo.BusinessDbConnection))
            {
                    try
                    {
                        // 开启事务
                        IDbTransaction tran = dbHelper.BeginTransaction();
                        sqlBuilder = new SQLBuilder(dbHelper);
                        sqlBuilder.BeginUpdate("CUSTOMER_GLOBAL");
                        SetCustomerGlobalObject(sqlBuilder, dr);
                        sqlBuilder.SetWhere("ID", id);
                        resultSQL = sqlBuilder.EndUpdate();
                        if (resultSQL == 0)
                        {
                            sqlBuilder = new SQLBuilder(dbHelper, false, true);
                            sqlBuilder.BeginInsert("CUSTOMER_GLOBAL");
                            sqlBuilder.SetValue("ID", id);
                            SetCustomerGlobalObject(sqlBuilder, dr);
                            resultSQL =sqlBuilder.EndInsert ();
                            isAdd = to true ; 
                        } 



    //     other transactions batch processing tran.Connection     
                            IBatcherHelperService Batcher = dbHelper.GetService <IBatcherHelperService> (); 
                            batcher.Insert (dataExtension, 1000 , tran.Connection); 

                        // commit the transaction 
                        dbHelper.CommitTransaction (); 
                    } 
                    the catch (Exception EX) 
                    { 
                        // rollback transaction 
                        dbHelper.RollbackTransaction (); 
                     } 
                    the finally 
                    {
                   
                    }
 

 

Guess you like

Origin www.cnblogs.com/hnsongbiao/p/11761775.html