public DbBase(ConnObject co) { this.connObject = co; this.conn = co.Master.Conn; this.providerName = co.Master.ProviderName; dalType = co.Master.ConnDalType; _fac = GetFactory(providerName); _con = _fac.CreateConnection(); _con.ConnectionString = DalCreate.FormatConn(dalType, conn); _com = _con.CreateCommand(); if (_com != null)//Txt| Xml 时返回Null { _com.Connection = _con; _com.CommandTimeout = AppConfig.DB.CommandTimeout; } if (IsAllowRecordSql)//开启秒表计算 { _watch = new Stopwatch(); } //if (AppConfig.DB.LockOnDbExe && dalType == DalType.Access) //{ // string dbName = DataBase; // if (!_dbOperator.ContainsKey(dbName)) // { // try // { // _dbOperator.Add(dbName, false); // } // catch // { // } // } //} //_com.CommandTimeout = 1; }
/// <summary> /// 切换数据库(修改数据库链接) /// </summary> /// <param name="dbName"></param> /// <returns></returns> internal DbResetResult ChangeDatabase(string dbName) { if (_con.State == ConnectionState.Closed)//事务中。。不允许切换 { try { if (IsExistsDbNameWithCache(dbName))//新的数据库不存在。。不允许切换 { conn = GetNewConn(dbName); _con.ConnectionString = DalCreate.FormatConn(dalType, conn); connObject = DalCreate.GetConnObject(dbName + "Conn"); connObject.Master.Conn = conn; return(DbResetResult.Yes); } else { return(DbResetResult.No_DBNoExists); } } catch (Exception err) { Log.WriteLogToTxt(err); } } return(DbResetResult.No_Transationing); }
/// <summary> /// 切换链接 /// </summary> /// <param name="cb"></param> private void ResetConn(ConnBean cb) { if (_con != null && _con.State != ConnectionState.Open && conn != cb.Conn && _IsAllowRecordSql) { conn = cb.Conn;//切换。 _con.ConnectionString = DalCreate.FormatConn(dalType, conn); } }
/// <summary> /// 切换链接 /// </summary> /// <param name="cb"></param> private bool ResetConn(ConnBean cb)//, bool isAllowReset { if (cb != null && cb.IsOK && _con != null && _con.State != ConnectionState.Open && conn != cb.Conn) { useConnBean = cb; conn = cb.Conn;//切换。 _con.ConnectionString = DalCreate.FormatConn(dalType, conn); return(true); } return(false); }