Exemple #1
0
        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;
             *
             */
        }
Exemple #2
0
        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;
             *
             */
        }