コード例 #1
0
        // 创建dp2系统的种次号库
        // parameters:
        //      error_databasename  类型不符合的、已经存在重名的数据库
        // return:
        //      -1  error
        //      0   suceed。不过error_databasename中可能返回因重名(并且类型不同)而未能创建的数据库名
        int CreateDp2ZhongcihaoDatabases(List <string> create_dbnames,
                                         out List <string> error_databasename,
                                         out string strError)
        {
            int nRet = 0;

            error_databasename = new List <string>();

            AppendHtml(
                "====================<br/>"
                + "创建种次号库<br/>"
                + "====================<br/><br/>");


            string strDatabaseInfo = "";
            string strOutputInfo   = "";

            XmlDocument dom = new XmlDocument();

            dom.LoadXml("<root />");


            for (int i = 0; i < create_dbnames.Count; i++)
            {
                string strDatabaseName = create_dbnames[i];
                string strDatabaseType = "zhongcihao";

                // 是否已经存在特定类型、特定名字的dp2数据库?
                // return:
                //      -1  数据库存在,但是类型不符合预期
                //      0   不存在
                //      1   存在
                nRet = ExistingDp2Database(strDatabaseName,
                                           "zhongcihao",
                                           out strError);
                if (nRet == -1)
                {
                    error_databasename.Add(strDatabaseName);
                    continue;
                }
                if (nRet == 1)
                {
                    continue;
                }

                XmlNode nodeDatabase = dom.CreateElement("database");
                dom.DocumentElement.AppendChild(nodeDatabase);

                // type
                DomUtil.SetAttr(nodeDatabase, "type", strDatabaseType);

                nRet = Global.CheckDbName(strDatabaseName,
                                          out strError);
                if (nRet == -1)
                {
                    return(-1);
                }

                DomUtil.SetAttr(nodeDatabase,
                                "name",
                                strDatabaseName);
            }

            strDatabaseInfo = dom.OuterXml;

            // 创建数据库
            nRet = this.CreateDatabase(
                strDatabaseInfo,
                out strOutputInfo,
                out strError);
            if (nRet == -1)
            {
                return(-1);
            }

            string strInfo = "";

            if (create_dbnames.Count > 0)
            {
                strInfo += "新创建了下列种次号库:\r\n---\r\n";
                strInfo += Global.MakeListString(create_dbnames, ",");
                strInfo += "\r\n\r\n";
            }

            AppendHtml(strInfo.Replace("\r\n", "<br/>"));

            return(0);
        }
コード例 #2
0
        // 创建dp2系统的简单库(除种次号库外)
        int CreateDp2SimpleDatabases(out string strError)
        {
            int nRet = 0;

            AppendHtml(
                "====================<br/>"
                + "创建辅助数据库<br/>"
                + "====================<br/><br/>");


            // 创建的数据库名
            List <string> creating_dbnames = new List <string>();
            List <string> dbtypes          = new List <string>();

            creating_dbnames.Add("违约金");
            dbtypes.Add("amerce");

            creating_dbnames.Add("预约到书");
            dbtypes.Add("arrived");

            creating_dbnames.Add("出版者");
            dbtypes.Add("publisher");

            creating_dbnames.Add("消息");
            dbtypes.Add("message");

            /*
             * 种次号库则要根据需要创建。还需要创建<zhongcihao>配置小节
             * creating_dbnames.Add("种次号库");
             * dbtypes.Add("zhongcihao");
             * */


            string strDatabaseInfo = "";
            string strOutputInfo   = "";

            XmlDocument dom = new XmlDocument();

            dom.LoadXml("<root />");

            List <string> created_dbnames = new List <string>();

            for (int i = 0; i < creating_dbnames.Count; i++)
            {
                string strDatabaseName = creating_dbnames[i];
                string strDatabaseType = dbtypes[i];

                // 如果已经存在那个类型的辅助库
                if (ExistingDp2DatabaseType(strDatabaseType) == true)
                {
                    continue;
                }

                XmlNode nodeDatabase = dom.CreateElement("database");
                dom.DocumentElement.AppendChild(nodeDatabase);

                // type
                DomUtil.SetAttr(nodeDatabase, "type", strDatabaseType);

                nRet = Global.CheckDbName(strDatabaseName,
                                          out strError);
                if (nRet == -1)
                {
                    return(-1);
                }

                DomUtil.SetAttr(nodeDatabase,
                                "name",
                                strDatabaseName);

                created_dbnames.Add(strDatabaseName);
            }

            strDatabaseInfo = dom.OuterXml;

            // 创建数据库
            nRet = this.CreateDatabase(
                strDatabaseInfo,
                out strOutputInfo,
                out strError);
            if (nRet == -1)
            {
                return(-1);
            }

            string strInfo = "";

            if (created_dbnames.Count > 0)
            {
                strInfo += "新创建了下列辅助数据库:\r\n---\r\n";
                strInfo += Global.MakeListString(created_dbnames, ",");
                strInfo += "\r\n\r\n";
            }
            else
            {
                strInfo += "拟创建的辅助数据库都已经存在了\r\n";
                strInfo += "\r\n\r\n";
            }

            AppendHtml(strInfo.Replace("\r\n", "<br/>"));

            return(0);
        }