public void LoadFrom(ITableStructure table) { _Columns.Clear(); _Constraints.Clear(); //_ReferencedFrom.Clear(); FullName = table.FullName; Comment = table.Comment; //Name = table.FullName.Name; //SchemaName = table.FullName.Schema; foreach (IColumnStructure col in table.Columns) { _Columns.Add(new ColumnStructure(col)); } foreach (IConstraint cnt in table.Constraints) { _Constraints.Add(Constraint.CreateCopy(cnt)); } //foreach (IForeignKey fk in table.ReferencedFrom) //{ // _ReferencedFrom.Add(new ForeignKey(fk)); //} SpecificData.AddAll(table.SpecificData); FixedData = table.FixedData; //FilledMembers = table.FilledMembers; }
public void CreateConstraint(ITableStructure table, IConstraint newcnt, PlanPosition pos) { TableStructure tbl = Structure.FindOrCreateTable(table.FullName); AddOperation(new AlterOperation_CreateConstraint { ParentTable = tbl, NewObject = Constraint.CreateCopy(newcnt) }, pos); }
protected void CopyFromTable(ITableStructure src, bool hardAssign) { if (hardAssign || ShouldCopy(src, TableStructureMembers.SpecificDetails)) { base.AssignFrom(src); } if (hardAssign || ShouldCopy(src, TableStructureMembers.ColumnNames)) { var oldcols = new List <ColumnStructure>(); foreach (ColumnStructure c in _Columns) { oldcols.Add(c); } _Columns.Clear(); foreach (var col in src.Columns) { ColumnStructure scol = (from c in oldcols where c.ColumnName == col.ColumnName select c).FirstOrDefault(); if (scol != null) { scol.AssignFrom(col); } else { scol = new ColumnStructure(col); } _Columns.Add(scol); } } if (hardAssign || ShouldCopy(src, TableStructureMembers.ColumnTypes)) { foreach (var col in src.Columns) { ColumnStructure scol = this.FindColumn(col.ColumnName) as ColumnStructure; if (scol != null) { scol.AssignFrom(col); } } } if (hardAssign || ShouldCopy(src, TableStructureMembers.Constraints)) { foreach (var cnt in src.Constraints) { Constraint scnt = this.FindConstraint(cnt) as Constraint; if (scnt != null) { scnt.AssignFrom(scnt); } else { _Constraints.Add(Constraint.CreateCopy(cnt)); } } } }
public void CreateConstraint(IConstraint constraint) { var newcnt = Constraint.CreateCopy(constraint); newcnt.GroupId = Guid.NewGuid().ToString(); var t = FindTable(constraint.Table.FullName); if (t != null) { t._Constraints.Add(newcnt); } }
public Constraint_TreeNode(ITableSource conn, ITableStructure table, IConstraint constraint, ITreeNode parent) : base(conn, parent, constraint.Name ?? "noname") { m_constraint = constraint; m_table = table; m_conn = conn; var appobj = new ConstraintAppObject(); appobj.FillFromTable(m_conn); appobj.Constraint = Constraint.CreateCopy(m_constraint); SetAppObject(appobj); }
public void FillRelatedConstraints(IConstraintCollection constraints) { foreach (var cnt in constraints) { var ccnt = cnt as IColumnsConstraint; if (ccnt == null) { continue; } if (Array.IndexOf(ccnt.Columns.GetNames(), Column.ColumnName) >= 0) { RelatedConstraints.Add(Constraint.CreateCopy(ccnt)); } } }
public static AbstractObjectStructure CloneObject(this IAbstractObjectStructure obj) { var tbl = obj as ITableStructure; if (tbl != null) { return(new TableStructure(tbl)); } var col = obj as IColumnStructure; if (col != null) { return(new ColumnStructure(col)); } var cnt = obj as IConstraint; if (cnt != null) { return(Constraint.CreateCopy(cnt)); } var spe = obj as ISpecificObjectStructure; if (spe != null) { return(new SpecificObjectStructure(spe)); } var sch = obj as ISchemaStructure; if (sch != null) { return(new SchemaStructure(sch)); } var dom = obj as IDomainStructure; if (dom != null) { return(new DomainStructure(dom)); } var dbs = obj as IDatabaseStructure; if (dbs != null) { return(new DatabaseStructure(dbs)); } return(null); }
public override void GetObjectList(List <AppObject> objs, AppObject appobj, ConnectionPack connpack) { ObjectPath objpath = appobj.GetObjectPath(); IDatabaseSource conn = appobj.FindDatabaseConnection(connpack); if (conn != null && conn.Connection.IsOpened) { var ts = conn.InvokeLoadTableStructure(objpath.ObjectName, TableStructureMembers.ConstraintsNoRefs); foreach (var cnt in ts.Constraints) { var cobj = new ConstraintAppObject(); cobj.Constraint = Constraint.CreateCopy(cnt); cobj.FillFromTable(conn.GetTable(objpath.ObjectName)); objs.Add(cobj); } } objs.SortByKey(o => o.ToString()); }
public Constraint FindOrCreateConstraint(IConstraint cnt) { var t = FindTable(cnt.Table.FullName); if (t == null) { t = AddTable(new TableStructure { FullName = cnt.Table.FullName }, true); } Constraint res = t.FindConstraint(cnt) as Constraint; if (res == null) { res = Constraint.CreateCopy(cnt); t._Constraints.Add(res); } return(res); }
public void AddObject(IAbstractObjectStructure obj, bool reuseGrouId) { var col = obj as IColumnStructure; if (col != null) { var t = FindTable(col.Table.FullName); if (t == null) { t = AddTable(new TableStructure { FullName = col.Table.FullName }, true); } t.AddColumn(col, reuseGrouId); return; } var cnt = obj as IConstraint; if (cnt != null) { var t = FindTable(cnt.Table.FullName); if (t == null) { t = AddTable(new TableStructure { FullName = cnt.Table.FullName }, true); } var newcnt = Constraint.CreateCopy(cnt); if (!reuseGrouId) { newcnt.GroupId = Guid.NewGuid().ToString(); } t._Constraints.Add(newcnt); return; } var tbl = obj as ITableStructure; if (tbl != null) { AddTable(tbl, reuseGrouId); return; } var spe = obj as ISpecificObjectStructure; if (spe != null) { AddSpecificObject(spe, reuseGrouId); return; } var sch = obj as ISchemaStructure; if (sch != null) { AddSchema(sch, reuseGrouId); return; } var dom = obj as IDomainStructure; if (dom != null) { AddDomain(dom, reuseGrouId); return; } }
public void ChangeConstraint(IConstraint constraint, IConstraint newconstraint) { Constraint cnt = Structure.FindOrCreateConstraint(constraint); AddOperation(new AlterOperation_ChangeConstraint { OldObject = cnt, ParentTable = (TableStructure)cnt.Table, NewObject = Constraint.CreateCopy(newconstraint) }); }