示例#1
0
        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)
        }
示例#2
0
        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));
            }
        }