public static void ImportField(IColumn srcCol, TableDefinitionRow destTab) { DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition); FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name); if (destField == null) { destField = destTab.FindFieldByAliasOrName(srcCol.Alias); } if (destField == null) { destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName); } else { destField.DataTypeDefinitionRow = dataType; } // destField.DBFieldType = "TAB_FIELD"; // default value destField.FieldAlias = srcCol.Alias; if (srcCol.Description.Length > 0) { destField.FieldComment = srcCol.Description; } destField.AllowDBNull = srcCol.IsNullable; destField.AutoIncrement = srcCol.IsAutoKey; if (srcCol.IsAutoKey) { destField.AutoIncrementSeed = srcCol.AutoKeySeed; destField.AutoIncrementStep = srcCol.AutoKeyIncrement; } System.Diagnostics.Debug.WriteLine(string.Format( "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}" , srcCol.DataTypeName , srcCol.DataTypeNameComplete , srcCol.DbTargetType , srcCol.Name , destTab.TableName)); /* destField.DataType = ???; * srcCol.DataType; // int * srcCol.DataTypeName; * srcCol.DataTypeNameComplete; * srcCol.DbTargetType; */ // srcCol.ForeignKeys; if (srcCol.HasDefault) { destField.DefaultValue = srcCol.Default; } else { destField.SetDefaultValueNull(); } destField.OriginalName = GetOriginalName(srcCol.Guid, srcCol.Name); destField.ReadOnly = srcCol.IsComputed; // || srcCol.??? // destField.StringSize = srcCol.CharacterMaxLength; moved to DataTypeDefinition destField.Unique = srcCol.IsAutoKey; // || ??? the only PK or the only FK if (srcCol.IsInPrimaryKey) { if (srcCol.Ordinal > 0) { destField.PrimaryKeyNumber = srcCol.Ordinal; } else { destField.PrimaryKeyNumber = nextPkNumber++; } } /** unsupported properties * destField.FieldExpression = srcCol.??? * destField.NullValue = srcCol.??? // nullvaluereplacement * destField.XmlFieldType = ???; // default is Attribute * * // srcCol.AllProperties; * srcCol.CharacterOctetLength; * srcCol.CharacterSetCatalog; * srcCol.CharacterSetName; * srcCol.CharacterSetSchema; * srcCol.CompFlags; * srcCol.Flags; * srcCol.GlobalProperties; * * srcCol.DateTimePrecision; // int * srcCol.HasDomain; * srcCol.Domain; // IDomain * srcCol.DomainCatalog; * srcCol.DomainName; * srcCol.DomainSchema; * srcCol.LanguageType; * srcCol.LCID; * srcCol.NumericPrecision; * srcCol.NumericScale; * srcCol.Ordinal; * srcCol.Properties; * srcCol.PropID; * srcCol.SortID; * srcCol.TDSCollation; * srcCol.TypeGuid; * srcCol.UserDataXPath; * */ }
public static void ImportResultColumn(IResultColumn srcCol, TableDefinitionRow destTab) { DataTypeDefinitionRow dataType = GetType(srcCol, destTab.Table.DataSet.DataTypeDefinition); FieldDefinitionRow destField = destTab.FindFieldByAliasOrName(srcCol.Name); // destTab.Table.DataSet.FieldDefinition destTabs.FindByTableName(srcTab.Name); if (destField == null) { destField = destTab.FindFieldByAliasOrName(srcCol.Alias); } if (destField == null) { destField = destTab.AddFieldDefinitionRow(srcCol.Name, dataType.DataTypeName); } else { destField.DataTypeDefinitionRow = dataType; } destField.DBFieldType = "PROC_RETURN"; // destField.ReadOnly = true; //Exception on accessing srcCol.Alias destField.FieldAlias = srcCol.Alias; System.Diagnostics.Debug.WriteLine(string.Format( "FeldName={4}.{3}, DataTypeName={0}, DataTypeNameComplete={1}, DbTargetType={2}" , srcCol.DataTypeName , srcCol.DataTypeNameComplete , srcCol.DbTargetType , srcCol.Name , destTab.TableName)); /* destField.DataType = ???; * srcCol.DataType; // int * srcCol.DataTypeName; * srcCol.DataTypeNameComplete; * srcCol.DbTargetType; */ destField.SetDefaultValueNull(); destField.OriginalName = srcCol.Name; /** unsupported properties * destField.FieldExpression = srcCol.??? * destField.NullValue = srcCol.??? // nullvaluereplacement * destField.XmlFieldType = ???; // default is Attribute * * // srcCol.AllProperties; * srcCol.CharacterOctetLength; * srcCol.CharacterSetCatalog; * srcCol.CharacterSetName; * srcCol.CharacterSetSchema; * srcCol.CompFlags; * srcCol.Flags; * srcCol.GlobalProperties; * * srcCol.DateTimePrecision; // int * srcCol.HasDomain; * srcCol.Domain; // IDomain * srcCol.DomainCatalog; * srcCol.DomainName; * srcCol.DomainSchema; * srcCol.LanguageType; * srcCol.LCID; * srcCol.NumericPrecision; * srcCol.NumericScale; * srcCol.Ordinal; * srcCol.Properties; * srcCol.PropID; * srcCol.SortID; * srcCol.TDSCollation; * srcCol.TypeGuid; * srcCol.UserDataXPath; * */ }