public void LoadStructure(TableStructureMembers members, IDatabaseSource db) { if (db == null) { return; // db not provided, perhaps all is loaded } if ((members & FilledMembers) == members) { return; // all is loaded } var ts = db.InvokeLoadTableStructure(FullName, members) as TableStructure; MergeFrom(ts); // merge references, not very nice... if (ShouldCopy(ts, TableStructureMembers.ReferencedFrom)) { foreach (var fk in ts.GetReferencedFrom()) { var pkt = ((DatabaseStructure)Database).FindOrCreateTable(fk.Table.FullName); if (pkt.FindConstraint(fk) == null) { pkt._Constraints.Add(new ForeignKey(fk)); } } } FilledMembers |= members; }
public ConstraintsLoader(DbConnection conn, InformationSchema infoSchema, TableAnalyser analyser, NameWithSchema table, TableStructureMembers members, Condition dbnamecond) { m_conn = conn; m_infoSchema = infoSchema; m_table = table; m_analyser = analyser; m_members = members; m_dbnamecond = dbnamecond; }
public static ITableStructure InvokeLoadStructure(this ITableSource table, TableStructureMembers members) { IPhysicalConnection conn = table.Connection; if (conn == null) { return(table.LoadTableStructure(members)); } IAsyncResult async = conn.BeginInvoke((Func <TableStructureMembers, ITableStructure>)table.LoadTableStructure, null, members); Async.WaitFor(async); return((ITableStructure)conn.EndInvoke(async)); }
public void LoadFromXml_ForJob(XmlElement xml) { if (xml.GetAttribute("table") == "1") { TableMembers = TableStructureMembers.AllNoRefs; } if (xml.SelectSingleNode("Table") != null) { TableFilter = new List <NameWithSchema>(); } foreach (XmlElement x in xml.SelectNodes("Table")) { TableFilter.Add(NameWithSchema.LoadFromXml(x)); } foreach (XmlAttribute attr in xml.Attributes) { if (!attr.Name.StartsWith("detail.")) { continue; } string type = attr.Name.Substring("detail.".Length); SpecificObjectOverride[type] = new SpecificObjectMembers(); SpecificObjectOverride[type].ObjectDetail = true; } foreach (XmlElement child in xml) { if (child.Name == "Table") { continue; } var repr = SpecificRepresentationAddonType.Instance.FindByElement(child.Name); if (repr == null) { continue; } if (SpecificObjectOverride[repr.ObjectType] == null) { SpecificObjectOverride[repr.ObjectType] = new SpecificObjectMembers(); } if (SpecificObjectOverride[repr.ObjectType].ObjectFilter == null) { SpecificObjectOverride[repr.ObjectType].ObjectFilter = new List <NameWithSchema>(); } SpecificObjectOverride[repr.ObjectType].ObjectFilter.Add(NameWithSchema.LoadFromXml(child)); } this.LoadPropertiesCore(xml); }
public static ITableStructure InvokeLoadTableStructure(this IDatabaseSource conn, NameWithSchema name, TableStructureMembers members) { DatabaseStructureMembers dbmem = new DatabaseStructureMembers { TableFilter = new List <NameWithSchema> { name }, TableMembers = members }; IDatabaseStructure dbs = conn.InvokeLoadStructure(dbmem, null); return(dbs.Tables[name]); }
public ITableStructure LoadTableStructure(TableStructureMembers members) { return(m_table); }
public static TableStructureMembers FilterConstraints(this TableStructureMembers members, bool canBeIndex) { return(members & (canBeIndex ? TableStructureMembers.Constraints : TableStructureMembers.ConstraintsNoIndexes)); }
public static bool ContainsAnyConstraints(this TableStructureMembers members, bool canBeIndex) { return(members.FilterConstraints(canBeIndex) != 0); }
public static bool ContainsAnyColumns(this TableStructureMembers members) { return(members.Contains(TableStructureMembers.ColumnNames) || members.Contains(TableStructureMembers.ColumnTypes)); }
public static bool ContainsAll(this TableStructureMembers members, TableStructureMembers test) { return((members & test) == test); }
//public static TableStructure RemoveRe(this ITableStructure src, DatabaseCopyOptions copyOpts, ISqlDialect dialect) //{ // if (!copyOpts.CopyTable(src.FullName)) return null; // TableStructure res = new TableStructure(src); // res.MangleMappedTable(copyOpts, dialect); // return res; //} public static bool Contains(this TableStructureMembers members, TableStructureMembers test) { return(members.ContainsAny(test)); }
public ITableStructure LoadTableStructure(TableStructureMembers members) { return(Database.InvokeLoadViewStructure(FullName)); }
public ITableStructure LoadTableStructure(TableStructureMembers members) { return(Database.LoadTableStructure(FullName, members)); }
private bool ShouldCopy(ITableStructure src, TableStructureMembers member) { return(!FilledMembers.ContainsAll(member) && src.FilledMembers.ContainsAll(member)); }