コード例 #1
0
 //white space allow later to allow showing datatype at first column creation at newTable
 public AbstractColumnFigure(ColumnSchema column, IFigure owner)
     : base(column.Name+" ")
 {
     columnModel = column;
     tableFigureOwner = owner;
     columnDataType = null;
     primaryIcon = IconFactory.GetIcon ("Resources.primarykey.png");
     mandatoryIcon = IconFactory.GetIcon ("Resources.mandatory.png");
     optionalIcon = IconFactory.GetIcon ("Resources.optional.png");
     fkUkIcon = IconFactory.GetIcon ("Resources.foreign_uk.png");
     fkIcon = IconFactory.GetIcon ("Resources.foreign.png");
     Initialize ();
 }
コード例 #2
0
		public DataTypeSchema (DataTypeSchema dt)
			: base (dt)
		{
			this.isComplex = dt.isComplex;
			this.isNullable = dt.isNullable;
			this.isAutoincrementable = dt.isAutoincrementable;
			this.isFixedLength = dt.isFixedLength;
			this.category = dt.category;
			this.dataType = dt.dataType;
			this.createFormat = dt.createFormat;
			this.createParameters = dt.createParameters;
			this.lengthRange = new Range (dt.lengthRange);
			this.precisionRange = new Range (dt.precisionRange);
			this.scaleRange = new Range (dt.scaleRange);
		}
コード例 #3
0
 public DataTypeSchema(DataTypeSchema dt)
     : base(dt)
 {
     this.isComplex           = dt.isComplex;
     this.isNullable          = dt.isNullable;
     this.isAutoincrementable = dt.isAutoincrementable;
     this.isFixedLength       = dt.isFixedLength;
     this.category            = dt.category;
     this.dotNetType          = dt.dotNetType;
     this.createFormat        = dt.createFormat;
     this.createParameters    = dt.createParameters;
     this.lengthRange         = new Range(dt.lengthRange);
     this.precisionRange      = new Range(dt.precisionRange);
     this.scaleRange          = new Range(dt.scaleRange);
 }
コード例 #4
0
        protected virtual DataTypeSchema GetDataType(DataRow row)
        {
            DataTypeSchema schema = new DataTypeSchema(this);

            schema.Name                = GetRowString(row, dataTypeItemStrings[0]);
            schema.LengthRange         = new Range(GetRowInt(row, dataTypeItemStrings[1]));
            schema.CreateFormat        = GetRowString(row, dataTypeItemStrings[2]);
            schema.CreateParameters    = GetRowString(row, dataTypeItemStrings[3]);
            schema.DataType            = Type.GetType(GetRowString(row, dataTypeItemStrings[4]), false, false);
            schema.IsAutoincrementable = GetRowBool(row, dataTypeItemStrings[5]);
            schema.IsFixedLength       = GetRowBool(row, dataTypeItemStrings[6]);
            schema.IsNullable          = GetRowBool(row, dataTypeItemStrings[7]);
            schema.ScaleRange          = new Range(GetRowInt(row, dataTypeItemStrings[9]), GetRowInt(row, dataTypeItemStrings[8]));
            schema.PrecisionRange      = new Range(0);

            ProvideDataTypeInformation(schema);

            return(schema);
        }
コード例 #5
0
        public override DataTypeSchema GetDataType(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            name = name.ToUpper();

            DataTypeSchema dts = new DataTypeSchema(this);

            dts.Name = name;
            switch (name)
            {
            //TODO: IMPLEMENT
            case "":
                break;

            default:
                dts = null;
                break;
            }

            return(dts);
        }
コード例 #6
0
        public virtual DataTypeSchema GetDataType(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            DataTypeSchema      schema = null;
            IPooledDbConnection conn   = connectionPool.Request();

            try {
                //restrictions: name
                DataTable dt = conn.GetSchema(dataTypesCollectionString, name);
                if (dt.Rows.Count > 0)
                {
                    schema = GetDataType(dt.Rows[0]);
                }
            } catch (Exception e) {
                QueryService.RaiseException(e);
            }
            conn.Release();

            return(schema);
        }
コード例 #7
0
        // see:
        // http://www.firebirdsql.org/manual/migration-mssql-data-types.html
        // http://webcoder.info/reference/MSSQLDataTypes.html
        // http://www.tar.hu/sqlbible/sqlbible0022.html
        // http://msdn2.microsoft.com/en-us/library/aa258876(SQL.80).aspx
        public override DataTypeSchema GetDataType(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            name = name.ToLower();

            DataTypeSchema dts = new DataTypeSchema(this);

            dts.Name = name;
            switch (name)
            {
            case "bigint":
                dts.LengthRange      = new Range(8);
                dts.PrecisionRange   = new Range(1, 19);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "binary":
                dts.LengthRange      = new Range(1, 8004);
                dts.PrecisionRange   = new Range(1, 8000);
                dts.DataTypeCategory = DataTypeCategory.Binary;
                break;

            case "bit":
                dts.LengthRange      = new Range(1);
                dts.DataTypeCategory = DataTypeCategory.Bit;
                break;

            case "char":
                dts.LengthRange      = new Range(1, 8000);
                dts.PrecisionRange   = new Range(1, 8000);
                dts.DataTypeCategory = DataTypeCategory.Char;
                break;

            case "datetime":
                dts.LengthRange      = new Range(8);
                dts.DataTypeCategory = DataTypeCategory.DateTime;
                break;

            case "decimal":
                dts.LengthRange      = new Range(5, 17);
                dts.PrecisionRange   = new Range(1, 38);
                dts.ScaleRange       = new Range(0, 37);
                dts.DataTypeCategory = DataTypeCategory.Float;
                break;

            case "float":
                dts.LengthRange      = new Range(8);
                dts.ScaleRange       = new Range(1, 15);
                dts.DataTypeCategory = DataTypeCategory.Float;
                break;

            case "image":
                dts.LengthRange      = new Range(0, int.MaxValue);
                dts.PrecisionRange   = new Range(0, int.MaxValue);
                dts.DataTypeCategory = DataTypeCategory.VarBinary;
                break;

            case "int":
                dts.LengthRange      = new Range(4);
                dts.PrecisionRange   = new Range(1, 10);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "money":
                dts.LengthRange      = new Range(8);
                dts.PrecisionRange   = new Range(1, 19);
                dts.ScaleRange       = new Range(4);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "nchar":
                dts.LengthRange      = new Range(2, 8000);
                dts.PrecisionRange   = new Range(1, 4000);
                dts.DataTypeCategory = DataTypeCategory.NChar;
                break;

            case "ntext":
                dts.LengthRange      = new Range(0, int.MaxValue);
                dts.PrecisionRange   = new Range(0, 1073741823);
                dts.DataTypeCategory = DataTypeCategory.NVarChar;
                break;

            case "numeric":
                dts.LengthRange      = new Range(5, 17);
                dts.PrecisionRange   = new Range(1, 38);
                dts.ScaleRange       = new Range(0, 37);
                dts.DataTypeCategory = DataTypeCategory.Float;
                break;

            case "nvarchar":
                dts.LengthRange      = new Range(0, 8000);
                dts.PrecisionRange   = new Range(0, 4000);
                dts.DataTypeCategory = DataTypeCategory.NVarChar;
                break;

            case "real":
                dts.LengthRange      = new Range(4);
                dts.ScaleRange       = new Range(7);
                dts.DataTypeCategory = DataTypeCategory.Float;
                break;

            case "smalldatetime":
                dts.LengthRange      = new Range(4);
                dts.DataTypeCategory = DataTypeCategory.DateTime;
                break;

            case "smallint":
                dts.LengthRange      = new Range(2);
                dts.PrecisionRange   = new Range(5);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "smallmoney":
                dts.LengthRange      = new Range(4);
                dts.PrecisionRange   = new Range(10);
                dts.ScaleRange       = new Range(4);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "text":
                dts.LengthRange      = new Range(0, int.MaxValue);
                dts.PrecisionRange   = new Range(0, int.MaxValue);
                dts.DataTypeCategory = DataTypeCategory.VarChar;
                break;

            case "timestamp":
                dts.LengthRange      = new Range(1, 8);
                dts.DataTypeCategory = DataTypeCategory.TimeStamp;
                break;

            case "tinyint":
                dts.LengthRange      = new Range(1);
                dts.PrecisionRange   = new Range(1, 3);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "varbinary":
                dts.LengthRange      = new Range(1, 8004);
                dts.PrecisionRange   = new Range(0, 8000);
                dts.DataTypeCategory = DataTypeCategory.VarBinary;
                break;

            case "varchar":
                dts.LengthRange      = new Range(1, 8000);
                dts.PrecisionRange   = new Range(0, 8000);
                dts.DataTypeCategory = DataTypeCategory.VarChar;
                break;

            case "uniqueidentifier":
                dts.LengthRange      = new Range(16);
                dts.DataTypeCategory = DataTypeCategory.Uid;
                break;

            case "xml":
                dts.LengthRange      = new Range(0, int.MaxValue);
                dts.PrecisionRange   = new Range(0, int.MaxValue);
                dts.DataTypeCategory = DataTypeCategory.VarChar;
                break;

            case "cursor":
            case "table":
            case "sql_variant":
                dts.DataTypeCategory = DataTypeCategory.Other;
                break;

            default:
                break;
            }

            return(dts);
        }
コード例 #8
0
		public override DataTypeSchema GetDataType (string name)
		{
			if (name == null)
				throw new ArgumentNullException ("name");
			name = name.ToUpper ();

			DataTypeSchema dts = new DataTypeSchema (this);
			dts.Name = name;
			switch (name) {
					//TODO: IMPLEMENT
				case "":
					break;
				default:
					dts = null;
					break;
			}
			
			return dts;
コード例 #9
0
 protected virtual void ProvideDataTypeInformation(DataTypeSchema schema)
 {
 }
コード例 #10
0
		protected virtual void ProvideDataTypeInformation (DataTypeSchema schema)
		{
		}
コード例 #11
0
		protected virtual DataTypeSchema GetDataType (DataRow row)
		{
			DataTypeSchema schema = new DataTypeSchema (this);
			schema.Name = GetRowString (row, dataTypeItemStrings[0]);
			schema.LengthRange = new Range (GetRowInt (row, dataTypeItemStrings[1]));
			schema.CreateFormat = GetRowString (row, dataTypeItemStrings[2]);
			schema.CreateParameters = GetRowString (row, dataTypeItemStrings[3]);
			schema.DataType = Type.GetType (GetRowString (row, dataTypeItemStrings[4]), false, false);
			schema.IsAutoincrementable = GetRowBool (row, dataTypeItemStrings[5]);
			schema.IsFixedLength = GetRowBool (row, dataTypeItemStrings[6]);
			schema.IsNullable = GetRowBool (row, dataTypeItemStrings[7]);
			schema.ScaleRange = new Range (GetRowInt (row, dataTypeItemStrings[9]), GetRowInt (row, dataTypeItemStrings[8]));
			schema.PrecisionRange = new Range (0);
			
			ProvideDataTypeInformation (schema);
			
			return schema;
		}
コード例 #12
0
        // see:
        // http://www.htmlite.com/mysql003.php
        // http://kimbriggs.com/computers/computer-notes/mysql-notes/mysql-data-types.file
        // http://dev.mysql.com/doc/refman/5.1/en/data-type-overview.html
        public override DataTypeSchema GetDataType(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            string type   = null;
            int    length = 0;
            int    scale  = 0;

            ParseType(name, out type, out length, out scale);

            DataTypeSchema dts = new DataTypeSchema(this);

            dts.Name = type;
            switch (type.ToLower())
            {
            case "tinyint":
            case "smallint":
            case "mediumint":
            case "int":
            case "integer":
            case "bigint":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "bit":
                dts.LengthRange      = new Range(length);                     //in bits
                dts.DataTypeCategory = DataTypeCategory.Bit;
                break;

            case "bool":
            case "boolean":
                dts.LengthRange      = new Range(1);                     //in bits
                dts.DataTypeCategory = DataTypeCategory.Boolean;
                break;

            case "float":
            case "double":
            case "double precision":
            case "decimal":
            case "dec":
                dts.LengthRange      = new Range(length);
                dts.ScaleRange       = new Range(scale);
                dts.DataTypeCategory = DataTypeCategory.Boolean;
                break;

            case "date":
                dts.DataTypeCategory = DataTypeCategory.Date;
                break;

            case "datetime":
                dts.DataTypeCategory = DataTypeCategory.DateTime;
                break;

            case "timestamp":
                dts.DataTypeCategory = DataTypeCategory.TimeStamp;
                break;

            case "time":
                dts.DataTypeCategory = DataTypeCategory.Time;
                break;

            case "year":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            case "binary":
            case "char byte":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.Binary;
                break;

            case "varbinary":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.VarBinary;
                break;

            case "tinyblob":
            case "mediumblob":
            case "longblob":
            case "blob":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.Binary;
                break;

            case "tinytext":
            case "mediumtext":
            case "longtext":
            case "text":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.NChar;
                break;

            case "national char":
            case "nchar":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.NChar;
                break;

            case "national varchar":
            case "nvarchar":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.NVarChar;
                break;

            case "varchar":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.VarChar;
                break;

            case "char":
                dts.LengthRange      = new Range(length);
                dts.DataTypeCategory = DataTypeCategory.Char;
                break;

            case "set":
            case "enum":
                dts.DataTypeCategory = DataTypeCategory.Integer;
                break;

            default:
                dts = null;
                break;
            }

            return(dts);
        }