Пример #1
0
        public void Commit()
        {
            _isCommit = true;

            if (null == _mappedSession)
            {
                return;
            }

            object isCommit = System.Runtime.Remoting.Messaging.CallContext.GetData(_name);

            if (null != isCommit)
            {
                if (!(bool)isCommit)
                {
                    throw new System.ApplicationException();
                }
            }

            if (_isOwnerSession)
            {
                _dbSession.GetMapper().CommitTransaction();
            }
            else
            {
                _mappedSession.CommitTransaction();
            }
        }
Пример #2
0
 //Commit Transaction 원형
 private static void CommitTransactionCore(ISqlMapper mapper)
 {
     if (mapper.IsSessionStarted)
     {
         ISqlMapSession session = mapper.LocalSession;
         if (session.IsTransactionStart)
         {
             session.CommitTransaction();
         }
     }
 }
Пример #3
0
        /// <summary>
        /// 封装了对应的SqlMap的方法,以事务的方式批量删除
        /// </summary>
        /// <param name="statementNames"></param>
        /// <param name="parameterObjects"></param>
        /// <returns></returns>
        protected object[] ExecuteBatchDelete(IList <string> statementNames,
                                              IList <object> parameterObjects)
        {
            Debug.Assert(statementNames.Count ==
                         parameterObjects.Count, "语句和参数的个数不匹配");

            ISqlMapper sqlMap  = GetLocalSqlMap();
            var        results = new object[statementNames.Count];

            if (sqlMap.IsSessionStarted)
            {
                sqlMap.CloseConnection();
            }

            using (ISqlMapSession sqlMapSession = sqlMap.BeginTransaction())
            {
                try
                {
                    for (int i = 0; i < statementNames.Count; i++)
                    {
                        results[i] = sqlMap.Delete(statementNames[i], parameterObjects[i]);
                    }
                    sqlMapSession.CommitTransaction();
                }
                catch (Exception e)
                {
                    Trace.Write(e.Message + "\n" + e.StackTrace);
                    sqlMapSession.RollBackTransaction();

                    throw new IBatisNetException(
                              "Error executing batch query '" + statementNames[0] + "' for delete.  Cause: " + e.Message, e);
                }
            }

            return(results);
        }
 public void Commit()
 {
     _tran.CommitTransaction();
 }
 public void Commit()
 {
     _sqlMapSession.CommitTransaction();
     _complete = true;
 }