zoukankan      html  css  js  c++  java
  • 事务 代码

    Action<Transaction, string> action = (t, str) =>
    {
    SqlConnection con
    = new SqlConnection("server=.;uid=sa;pwd=chen;database=pubs");
    con.Open();
    if(null != con)
    con.EnlistTransaction(t);
    string strSql = "insert into test values('" + str + "','zzz','zzz')";
    SqlCommand cmd
    = new SqlCommand(strSql, con);
    Console.WriteLine(cmd.ExecuteNonQuery());
    con.Close();
    };

    using(CommittableTransaction ctran =new CommittableTransaction())
    {
    try
    {
    action(ctran,
    "123645");
    ctran.Commit();
    }
    catch(Exception ex)
    {
    Console.WriteLine(ex.Message);
    ctran.Rollback();
    }
    }

    //依赖事务处理

    Action
    <object> DepAction= t =>
    {
    DependentTransaction de
    = t as DependentTransaction;
    action(de, DateTime.Now.Second.ToString());
    Thread.Sleep(
    3000);
    de.Rollback();
    };

    using(CommittableTransaction ctran = new CommittableTransaction())
    {
    try
    {
    action(ctran, DateTime.Now.Second.ToString()
    + "Com");
    new Thread(delegate(object obj) { DepAction(obj); }).Start(ctran.DependentClone(DependentCloneOption.BlockCommitUntilComplete));
    /*
    * BlockCommitUntilComplete 跟事务Commit之前,等待所有依赖事务提交
    * RollbackIfNotComplete 跟事务Commit时,依赖事务没有提交,则终止整个事务
    */
    ctran.Commit();
    }
    catch(Exception ex)
    {
    Console.WriteLine(ex.Message);
    ctran.Rollback();
    }
    }


    //环境事务处理
    using(TransactionScope scope = new TransactionScope())
    {
    Transaction.Current.TransactionCompleted
    += (s, e) => {
    Console.WriteLine(e.Transaction.TransactionInformation.ToString());
    };
    scope.Dispose();
    }
  • 相关阅读:
    weak_ptr解决shared_ptr环状引用所引起的内存泄漏[转]
    如何限制对象只能建立在堆上或者栈上(转载)
    为了异常安全(swap,share_ptr)——Effecive C++
    注意类型转换——Effective C++
    http协议
    【java.math.BigInteger】常用函数
    【java.math.BigInteger】【转】常见问题
    【思路,dp,BigInteger】ZOJ
    【Warshall_Floyd】
    【Dijkstra】
  • 原文地址:https://www.cnblogs.com/blackman/p/2080635.html
Copyright © 2011-2022 走看看