Ejemplo n.º 1
0
        public void FromType()
        {
            var typeProvider = new MySqlDataTypeProvider();
            var dbType       = typeProvider.From(typeof(Binary));

            dbType = typeProvider.From(typeof(byte[]));
            Console.WriteLine(dbType.ToQueryString());
        }
Ejemplo n.º 2
0
        public void ToQueryString()
        {
            var target   = new MySqlDataTypeProvider();
            var dataType = target.From(typeof(string));
            var dbType   = dataType.ToQueryString();

            Assert.AreEqual("VARCHAR(4000)", dbType);

            dataType = target.From(typeof(string), 100);
            dbType   = dataType.ToQueryString();
            Assert.AreEqual("VARCHAR(100)", dbType);

            var sqlType = target.From(typeof(Binary));

            dbType = sqlType.ToQueryString();
            Console.WriteLine(dbType);
        }
Ejemplo n.º 3
0
        public void ParseSqlDataType()
        {
            var target = new MySqlDataTypeProvider();
            var types  = new[] { "BIT", "BOOL", "BOOLEAN", "SMALLINT", "MEDIUMINT",
                                 "INT", "INTEGER", "BIGINT", "FLOAT", "DOUBLE",
                                 "DOUBLE PRECISION", "FLOAT", "DECIMAL", "DEC",
                                 "NUMERIC", "FIXED" };

            for (int i = 0; i < types.Length; i++)
            {
                target.Parse(types[i]);
            }

            types = new[] { "DATE", "DATETIME", "TIMESTAMP", "TIME", "YEAR" };
            for (int i = 0; i < types.Length; i++)
            {
                target.Parse(types[i]);
            }

            types = new[] { "CHAR", "VARCHAR", "TEXT", "BINARY", "VARBINARY",
                            "TINYBLOB", "TINYTEXT", "BLOB", "TEXT", "MEDIUMBLOB",
                            "MEDIUMTEXT", "LONGBLOB", "LONGTEXT", "ENUM", "SET" };
            for (int i = 0; i < types.Length; i++)
            {
                target.Parse(types[i]);
            }

            var dataType = target.Parse("CHAR");

            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());

            dataType = target.Parse("CHAR(1)");
            Assert.AreEqual(typeof(char), dataType.GetClosestRuntimeType());

            dataType = target.Parse("Char (100)");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.AreEqual(100, dataType.Size);
            Assert.IsFalse(dataType.IsUnicodeType);

            dataType = target.Parse("NChar");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.IsTrue(dataType.IsUnicodeType);

            dataType = target.Parse("NChar(100)");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.IsTrue(dataType.IsUnicodeType);
            Assert.AreEqual(100, dataType.Size);

            dataType = target.Parse("VarCHAR");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());

            dataType = target.Parse("VarCHAR(1)");
            Assert.AreEqual(typeof(char), dataType.GetClosestRuntimeType());

            dataType = target.Parse("VarChar (100)");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.AreEqual(100, dataType.Size);
            Assert.IsFalse(dataType.IsUnicodeType);

            dataType = target.Parse("NVarChar");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.IsTrue(dataType.IsUnicodeType);

            dataType = target.Parse("NVarChar(100)");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());
            Assert.IsTrue(dataType.IsUnicodeType);
            Assert.AreEqual(100, dataType.Size);

            dataType = target.Parse("VarChar Binary");
            Assert.AreEqual(typeof(string), dataType.GetClosestRuntimeType());



            var stype  = "BIT";
            var actual = target.Parse(stype);

            Assert.AreEqual(actual.SqlDbType, MySqlDbType.Bit);

            stype  = "TINYINT";
            actual = target.Parse(stype);
            Assert.AreEqual(actual.SqlDbType, MySqlDbType.Byte);

            stype  = "TINYINT(1)";
            actual = target.Parse(stype);
            Assert.AreEqual(actual.SqlDbType, MySqlDbType.Byte);
            Assert.AreEqual(actual.Size, 1);

            stype  = "TINYINT(1) UNSIGNED";
            actual = target.Parse(stype);
            Assert.AreEqual(actual.SqlDbType, MySqlDbType.UByte);
            Assert.AreEqual(actual.Size, 1);

            stype  = "TINYINT  (1)   UNSIGNED";
            actual = target.Parse(stype);
            Assert.AreEqual(actual.SqlDbType, MySqlDbType.UByte);
            Assert.AreEqual(actual.Size, 1);

            stype  = "VarChar(100) Unicode";
            actual = target.Parse(stype);
            Assert.AreEqual(actual.SqlDbType, MySqlDbType.VarChar);
            Assert.AreEqual(actual.Size, 100);
            Assert.IsTrue(actual.IsUnicodeType);

            stype  = "Decimal";
            actual = target.Parse(stype);
            Assert.AreEqual(SqlDataType <MySqlDbType> .DEFAULT_DECIMAL_SCALE, actual.Scale);
            Assert.AreEqual(SqlDataType <MySqlDbType> .DEFAULT_DECIMAL_PRECISION, actual.Precision);
        }