// 创建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); }
// 创建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); }