Пример #1
0
 private static void InitKeys(XmlNode xnKeys, PdmTableInfoModel pTable)
 {
     foreach (XmlNode xnKey in xnKeys)
     {
         pTable.AddKey(GetKey(xnKey, pTable));
     }
 }
Пример #2
0
 private static void InitColumns(XmlNode xnColumns, PdmTableInfoModel pTable)
 {
     foreach (XmlNode xnColumn in xnColumns)
     {
         pTable.AddColumn(GetColumn(xnColumn, pTable));
     }
 }
Пример #3
0
        private static PdmKeyModel GetKey(XmlNode xnKey, PdmTableInfoModel ownerTable)
        {
            PdmKeyModel PdmKeyModel = new PdmKeyModel(ownerTable);
            XmlElement  xmlElement  = (XmlElement)xnKey;

            PdmKeyModel.KeyId = xmlElement.GetAttribute("Id");
            XmlNodeList childNodes = xmlElement.ChildNodes;

            foreach (XmlNode xmlNode in childNodes)
            {
                string name = xmlNode.Name;
                switch (name)
                {
                case "a:ObjectID":
                    PdmKeyModel.ObjectID = xmlNode.InnerText;
                    break;

                case "a:Name":
                    PdmKeyModel.Name = xmlNode.InnerText;
                    break;

                case "a:Code":
                    PdmKeyModel.Code = xmlNode.InnerText;
                    break;

                case "a:CreationDate":
                    PdmKeyModel.CreationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Creator":
                    PdmKeyModel.Creator = xmlNode.InnerText;
                    break;

                case "a:ModificationDate":
                    PdmKeyModel.ModificationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Modifier":
                    PdmKeyModel.Modifier = xmlNode.InnerText;
                    break;

                case "c:Key.Columns":
                    InitKeyColumns(xmlNode, PdmKeyModel);
                    break;
                }
            }
            return(PdmKeyModel);
        }
Пример #4
0
        private IList <PdmTableInfoModel> GetTables(List <string> tableNames)
        {
            List <PdmTableInfoModel> list = new List <PdmTableInfoModel>();

            foreach (var item in tableNames)
            {
                string tableName, tableDescription;
                List <DbTableColumnSchema> dbColumnList = DbSchemaBLL.GetDbTableColumnSchema(item, sqlconnection, out tableName, out tableDescription);
                if (dbColumnList == null)
                {
                    throw new Exception("table {0} 不存在,请确认表名及数据库名是否正确!".Formats(item));
                }
                PdmTableInfoModel tbmodel = new PdmTableInfoModel()
                {
                    Code = tableName, Comment = tableDescription, Name = tableDescription
                };
                dbColumnList.ForEach(p =>
                {
                    PdmColumnInfoModel pcim = new PdmColumnInfoModel(tbmodel);
                    pcim.Code     = p.columnName;
                    pcim.Comment  = p.Description;
                    pcim.DataType = GetDataType(p);
                    pcim.ColumnId = p.columnName;
                    if (p.isPrimarykey == 1)
                    {
                        var keymodel = new PdmKeyModel(tbmodel)
                        {
                            KeyId = p.columnName
                        };
                        keymodel.AddColumnObjCode(p.columnName);
                        tbmodel.Keys.Add(keymodel);
                        tbmodel.PrimaryKeyRefCode = p.columnName;
                    }
                    pcim.Identity  = p.isIdentity == 1;
                    pcim.Mandatory = p.isAllowNull == 1;
                    tbmodel.Columns.Add(pcim);
                });
                list.Add(tbmodel);
            }
            return(list);
        }
Пример #5
0
        private static PdmTableInfoModel GetTable(XmlNode xnTable)
        {
            PdmTableInfoModel PdmTableInfoModel = new PdmTableInfoModel();
            XmlElement        xmlElement        = (XmlElement)xnTable;

            PdmTableInfoModel.TableId = xmlElement.GetAttribute("Id");
            XmlNodeList childNodes = xmlElement.ChildNodes;

            foreach (XmlNode xmlNode in childNodes)
            {
                string name = xmlNode.Name;
                switch (name)
                {
                case "a:ObjectID":
                    PdmTableInfoModel.ObjectID = xmlNode.InnerText;
                    break;

                case "a:Name":
                    PdmTableInfoModel.Name = xmlNode.InnerText;
                    break;

                case "a:Code":
                    PdmTableInfoModel.Code = xmlNode.InnerText;
                    break;

                case "a:CreationDate":
                    PdmTableInfoModel.CreationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Creator":
                    PdmTableInfoModel.Creator = xmlNode.InnerText;
                    break;

                case "a:ModificationDate":
                    PdmTableInfoModel.ModificationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Modifier":
                    PdmTableInfoModel.Modifier = xmlNode.InnerText;
                    break;

                case "a:Comment":
                    PdmTableInfoModel.Comment = xmlNode.InnerText;
                    break;

                case "a:PhysicalOptions":
                    PdmTableInfoModel.PhysicalOptions = xmlNode.InnerText;
                    break;

                case "c:Columns":
                    InitColumns(xmlNode, PdmTableInfoModel);
                    break;

                case "c:Keys":
                    InitKeys(xmlNode, PdmTableInfoModel);
                    break;

                case "c:PrimaryKey":
                    InitPrimaryKey(xmlNode, PdmTableInfoModel);
                    break;

                case "a:Description":
                    PdmTableInfoModel.Description = xmlNode.InnerText;
                    break;
                }
            }
            return(PdmTableInfoModel);
        }
Пример #6
0
        private static PdmColumnInfoModel GetColumn(XmlNode xnColumn, PdmTableInfoModel ownerTable)
        {
            PdmColumnInfoModel PdmColumnInfoModel = new PdmColumnInfoModel(ownerTable);
            XmlElement         xmlElement         = (XmlElement)xnColumn;

            PdmColumnInfoModel.ColumnId = xmlElement.GetAttribute("Id");
            XmlNodeList childNodes = xmlElement.ChildNodes;

            foreach (XmlNode xmlNode in childNodes)
            {
                string name = xmlNode.Name;
                switch (name)
                {
                case "a:ObjectID":
                    PdmColumnInfoModel.ObjectID = xmlNode.InnerText;
                    break;

                case "a:Name":
                    PdmColumnInfoModel.Name = xmlNode.InnerText;
                    break;

                case "a:Code":
                    PdmColumnInfoModel.Code = xmlNode.InnerText;
                    break;

                case "a:CreationDate":
                    PdmColumnInfoModel.CreationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Creator":
                    PdmColumnInfoModel.Creator = xmlNode.InnerText;
                    break;

                case "a:ModificationDate":
                    PdmColumnInfoModel.ModificationDate = String2DateTime(xmlNode.InnerText);
                    break;

                case "a:Modifier":
                    PdmColumnInfoModel.Modifier = xmlNode.InnerText;
                    break;

                case "a:Comment":
                    PdmColumnInfoModel.Comment = xmlNode.InnerText;
                    break;

                case "a:DataType":
                    PdmColumnInfoModel.DataType = xmlNode.InnerText;
                    break;

                case "a:Length":
                    PdmColumnInfoModel.Length = xmlNode.InnerText;
                    break;

                case "a:Identity":
                    PdmColumnInfoModel.Identity = ConvertToBooleanPg(xmlNode.InnerText);
                    break;

                case "a:Mandatory":
                    PdmColumnInfoModel.Mandatory = ConvertToBooleanPg(xmlNode.InnerText);
                    break;

                case "a:PhysicalOptions":
                    PdmColumnInfoModel.PhysicalOptions = xmlNode.InnerText;
                    break;

                case "a:ExtendedAttributesText":
                    PdmColumnInfoModel.ExtendedAttributesText = xmlNode.InnerText;
                    break;

                case "a:Precision":
                    PdmColumnInfoModel.Precision = xmlNode.InnerText;
                    break;
                }
            }
            return(PdmColumnInfoModel);
        }
Пример #7
0
 private static void InitPrimaryKey(XmlNode xnPrimaryKey, PdmTableInfoModel pTable)
 {
     pTable.PrimaryKeyRefCode = GetPrimaryKey(xnPrimaryKey);
 }