Exemplo n.º 1
0
        /// <summary>
        /// 创建 Sql Server 数据表
        /// </summary>
        /// <param name="table">数据表信息</param>
        /// <param name="connection">数据库连接</param>
        /// <returns></returns>
        public static string createTable(DBTable table, DBConnection connection)
        {
            string        err      = "";
            List <string> sql_list = table.getCreateTableSqlList(connection.db_type);

            for (int i = 0; i < sql_list.Count; i++)
            {
                var msg = DBQuery.execute(sql_list[i], connection);
                err += msg;
            }
            return(err);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 将新的数据库版本号更新到数据库相关表中, 需继承实现
        /// </summary>
        /// <param name="connection"></param>
        /// <returns>错误信息</returns>
        public virtual string updateNewVersionInfoToDB(DBConnection connection)
        {
            var query = "delete from sys_configuration where param_name='current_db_version'";
            var msg   = DBQuery.execute(query, connection);

            if (msg.hasContents())
            {
                return(msg);
            }
            query = "insert into sys_configuration (param_name,param_value) values ('current_db_version','" + db_version.db_version + "')";
            return(DBQuery.execute(query, connection));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 初始化数据库
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="reference_path"></param>
        /// <returns></returns>
        public static string initialize(DBConnection connection, string reference_path)
        {
            string msg = createDatabase(connection);

            if (msg != "")
            {
                return(msg);
            }
            List <DBTable> tables = new List <DBTable>();

            try
            {
                string[] table_paths = Directory.GetFiles(reference_path, "*.table");
                foreach (string table_p in table_paths)
                {
                    DBTable tb = DBTable.fromXmlFile(table_p);
                    if (tb.table_name != "")
                    {
                        tables.Add(tb);
                    }
                }
            }
            catch { }
            if (tables.Count == 0)
            {
                msg = "无法获取可用的表描述文件!";
                return(msg);
            }
            string table_err = "";

            foreach (DBTable table in tables)
            {
                table_err += createTable(table, connection);
            }
            msg += table_err;
            //初始化数据库版本号
            DBInitDataConfig config = new DBInitDataConfig();

            config.loadFrom(reference_path);
            if (config.CurrentDBVersion != "1.0.0")
            {
                var query = "insert into " + config.configuration_table_name + " (" + config.configuration_key_column + "," + config.configuration_value_column + ") values ('" + config.configuration_db_version_key + "','" + config.CurrentDBVersion + "')";
                DBQuery.execute(query, connection);
            }
            //初始化数据
            List <DBInitDataProfile> data = new List <DBInitDataProfile>();

            try
            {
                string[] data_paths = Directory.GetFiles(reference_path, "*.data");
                foreach (string data_p in data_paths)
                {
                    DBInitDataProfile dp = DBInitDataProfile.fromXMLFile(data_p);
                    if (dp.table_name.Length > 0)
                    {
                        data.Add(dp);
                    }
                }
            }
            catch { }
            if (data.Count > 0)
            {
                foreach (DBInitDataProfile profile in data)
                {
                    profile.insertAllData();
                }
            }
            return(msg);
        }