ネストされたトランザクション処理方式

            使用(IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.BusinessDbType、BaseSystemInfo.BusinessDbConnection))
            { 
                    試み
                    { 
                        // 开启事务 
                        IDbTransaction TRAN = dbHelper.BeginTransaction()。
                        sqlBuilder = 新しいSQLBuilder(dbHelper)。
                        sqlBuilder.BeginUpdate(" CUSTOMER_GLOBAL " ); 
                        SetCustomerGlobalObject(sqlBuilder、DR)。
                        sqlBuilder.SetWhere(" ID " 、ID)。
                        resultSQL= sqlBuilder.EndUpdate()。
                        もし(resultSQL == 0 
                        { 
                            sqlBuilder = 新しい SQLBuilder(dbHelper、)。
                            sqlBuilder.BeginInsert(" CUSTOMER_GLOBAL " ); 
                            sqlBuilder.SetValue(" ID " 、ID)。
                            SetCustomerGlobalObject(sqlBuilder、DR)。
                            resultSQL = sqlBuilder.EndInsert()。
                            isAdd = trueに; 
                        } 



    //     他のトランザクションのバッチ処理tran.Connection     
                            IBatcherHelperServiceバッチャー= dbHelper.GetService <IBatcherHelperService> (); 
                            batcher.Insert(dataExtension、1000年、tran.Connection); 

                        // トランザクションのコミット
                        (dbHelper.CommitTransaction)を、
                    } 
                    キャッチ(例外EX)
                    { 
                        // ロールバックトランザクション
                        dbHelper.RollbackTransaction(); 
                     } 
                    最後に
                    { 
                   
                    }
 

 

おすすめ

転載: www.cnblogs.com/hnsongbiao/p/11761775.html