예제 #1
0
        private static void checkConnectionString(DbConfig result)
        {
            logger.Info("checkConnectionString...");

            if (result.ConnectionStringTable == null)
            {
                return;
            }

            Dictionary <String, ConnectionString> connStringMap = new Dictionary <String, ConnectionString>();

            Dictionary <String, String> newString = new Dictionary <String, String>();

            foreach (KeyValuePair <String, String> kv in result.ConnectionStringTable)
            {
                String       connectionString = kv.Value;
                DatabaseType dbtype           = getDbType(kv.Key, connectionString, result);

                ConnectionString objConnString = new ConnectionString {
                    Name          = kv.Key,
                    StringContent = connectionString,
                    DbType        = dbtype
                };

                connStringMap.Add(kv.Key, objConnString);

                logger.Info("connectionString:" + connectionString);

                IDatabaseDialect dialect = DataFactory.GetDialect(dbtype);

                if ((dbtype == DatabaseType.Access))
                {
                    String connectionItem = dialect.GetConnectionItem(connectionString, ConnectionItemType.Database);
                    logger.Info("database path original:" + connectionItem);
                    if (connectionItem == null)
                    {
                        throw new Exception("没有设置access地址:" + connectionString);
                    }

                    if (IsRelativePath(connectionItem))
                    {
                        connectionItem = PathHelper.Map(strUtil.Join(SystemInfo.ApplicationPath, connectionItem));
                        logger.Info("database path now:" + connectionItem);
                        String newConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", connectionItem);

                        newString.Add(kv.Key, newConnString);
                    }
                }
            }

            foreach (KeyValuePair <String, String> kv in newString)
            {
                result.ConnectionStringTable[kv.Key] = kv.Value;
                connStringMap[kv.Key].StringContent  = kv.Value;
            }

            result.SetConnectionStringMap(connStringMap);
        }
예제 #2
0
        public void CheckDatabase()
        {
            if (strUtil.IsNullOrEmpty(this._connectionString))
            {
                throw new Exception("connection string can not be empty");
            }
            IDatabaseDialect dialect = DataFactory.GetDialect(DatabaseType.MySql);

            if (strUtil.IsNullOrEmpty(dialect.GetConnectionItem(this._connectionString, ConnectionItemType.Server)))
            {
                throw new Exception("[mysql] server address is empty");
            }
            if (strUtil.IsNullOrEmpty(dialect.GetConnectionItem(_connectionString, ConnectionItemType.Database)))
            {
                throw new Exception("[mysql] database is empty");
            }
        }
예제 #3
0
        public void CheckDatabase()
        {
            if (strUtil.IsNullOrEmpty(_connectionString))
            {
                throw new Exception("[sqlserver] connection String is not found");
            }
            IDatabaseDialect dialect = DataFactory.GetDialect(DatabaseType.SqlServer);

            if (strUtil.IsNullOrEmpty(dialect.GetConnectionItem(_connectionString, ConnectionItemType.Server)))
            {
                throw new Exception("[sqlserver] address is empty");
            }
            if (strUtil.IsNullOrEmpty(dialect.GetConnectionItem(_connectionString, ConnectionItemType.Database)))
            {
                throw new Exception("[sqlserver] database is empty");
            }
        }
 public void CheckDatabase()
 {
     logger.Info("begin check database");
     if (strUtil.IsNullOrEmpty(_connectionString))
     {
         logger.Info("connection String is empty. begin to create access database and set connection string");
         createDatabaseAndSaveConnectionString();
     }
     else
     {
         String connectionItem = DataFactory.GetDialect(DatabaseType.Access).GetConnectionItem(_connectionString, ConnectionItemType.Database);
         if (strUtil.IsNullOrEmpty(connectionItem))
         {
             logger.Info("connection String is found, but database is empty. begin to create access database and set connection string");
             createDatabaseAndSaveConnectionString();
         }
         else if (!File.Exists(connectionItem))
         {
             logger.Info("ConnectionString:" + _connectionString);
             logger.Info("the database [" + connectionItem + "] is not found. begin to create access database and set connection string");
             DatabaseBuilder.BuildAccessDb4o(connectionItem);
         }
     }
 }