public static void ImportChildRelations(ITable srcTab, TableDefinitionDataTable destTabs) { foreach (IForeignKey srcFK in srcTab.ForeignKeys) { if (srcTab == srcFK.PrimaryTable) // use only childrelations { TableDefinitionRow childTab = destTabs.FindByTableName(srcFK.ForeignTable.Name); TableDefinitionRow parentTab = destTabs.FindByTableName(srcFK.PrimaryTable.Name); if ((childTab == null) || (parentTab == null)) { return; // both tables are not included } String relationName = parentTab.Table.DataSet.RelationDefinition.CreateUniqueRelationName(srcFK.Name, childTab.TableName, parentTab.TableName); RelationDefinitionRow curRelation = parentTab.InsertNewRelation(relationName, childTab.TableName); IColumns parentColums = srcFK.PrimaryColumns; IColumns childColums = srcFK.ForeignColumns; FieldRelationDefinitionRow curFieldRelation = null; for (int colNo = 0; colNo < parentColums.Count; colNo++) { curFieldRelation = curRelation.InsertNewFieldRelation(parentColums[colNo].Name, childColums[colNo].Name); } } // if (srcTab == srcFK.PrimaryTable) // use only childrelations } // foreach (IForeignKey srcFK in srcTab.ForeignKeys) }
private void AddForeignKey(DataTable metaData, RelationDefinitionRow rel) { int ordinal = 1; foreach (FieldRelationDefinitionRow f in rel.GetFieldRelationDefinitionRows()) { DataRow row = metaData.NewRow(); metaData.Rows.Add(row); set(row, "PK_TABLE_CATALOG", DBNull.Value); // GetDatabaseName(); set(row, "PK_TABLE_SCHEMA", DBNull.Value); set(row, "FK_TABLE_CATALOG", DBNull.Value); set(row, "FK_TABLE_SCHEMA", DBNull.Value); set(row, "FK_TABLE_NAME", rel.ChildTableName); set(row, "PK_TABLE_NAME", rel.ParentTableName); set(row, "ORDINAL", ordinal++); set(row, "FK_NAME", rel.RelationName); set(row, "PK_NAME", "PrimaryKey"); set(row, "PK_COLUMN_NAME", f.ParentFieldName); set(row, "FK_COLUMN_NAME", f.ChildFieldName); set(row, "UPDATE_RULE", Xsd3bRule2OleRule(rel.UpdateRule)); // relInfo.UpdateIntegrity; set(row, "DELETE_RULE", Xsd3bRule2OleRule(rel.DeleteRule)); } }
private void AddForeignKey(DataTable metaData, RelationDefinitionRow rel) { int ordinal = 1; foreach (FieldRelationDefinitionRow f in rel.GetFieldRelationDefinitionRows()) { DataRow row = metaData.NewRow(); metaData.Rows.Add(row); set(row, "PK_TABLE_CATALOG", DBNull.Value); // GetDatabaseName(); set(row, "PK_TABLE_SCHEMA", DBNull.Value); set(row, "FK_TABLE_CATALOG", DBNull.Value); set(row, "FK_TABLE_SCHEMA", DBNull.Value); set(row, "FK_TABLE_NAME", rel.ChildTableName); set(row, "PK_TABLE_NAME", rel.ParentTableName); set(row, "ORDINAL", ordinal++); set(row, "FK_NAME", rel.RelationName); set(row, "PK_NAME", "PrimaryKey"); set(row, "PK_COLUMN_NAME", f.ParentFieldName); set(row, "FK_COLUMN_NAME", f.ChildFieldName); set(row, "UPDATE_RULE", Xsd3bRule2OleRule(rel.UpdateRule)); // relInfo.UpdateIntegrity; set(row, "DELETE_RULE", Xsd3bRule2OleRule(rel.DeleteRule)); } }