Example #1
0
        internal Database(IICDbType dbType, string connectionString)
        {
            _configItem                  = new IICDbConfigItem();
            _configItem.DbType           = dbType;
            _configItem.ConnectionString = connectionString;

            _tracing      = TracingManager.GetTracing("Database.[ConnStr=" + connectionString + "]");
            _perfCounters = IICPerformanceCounterFactory.GetCounters <DatabasePerfCounters>(".");

            switch (_configItem.DbType)
            {
            case IICDbType.SqlServer2005:
                _operation = new SqlServerDatabase(_configItem.ConnectionString, 120);
                break;

            case IICDbType.Mysql:
                _operation = new MysqlDatabase(_configItem.ConnectionString, 120);
                break;

            case IICDbType.MysqlBatchInsert:
                _operation = new MysqlBatchInsert(_configItem.ConnectionString);
                break;

            default:
                throw new NotSupportedException(string.Format("Not Support DbType:{0} {1}", _configItem.DbType, _configItem.Name));
            }
        }
Example #2
0
 private IDatabaseOperation GetInnerOperation()
 {
     if (_configItem == null)
     {
         lock (_syncRoot) {
             if (_configItem == null)
             {
                 _configItem = IICConfigurationManager.Configurator.GetConfigItem <IICDbConfigItem>(
                     "Database",
                     _configKey,
                     delegate(IICDbConfigItem item) {
                     _configItem = item;
                 }
                     );
                 AssignInnerDb();
             }
         }
     }
     return(_operation);
 }