예제 #1
0
        public void PutAndGetDecimalByColumnTypeTest()
        {
            var map = new TypeMap();
            map.Put(DbType.Decimal, "NUMBER");
            map.Put(DbType.Decimal, 18, "NUMBER($l, $s)");

            Assert.AreEqual("NUMBER(11, 2)", map.Get(DbType.Decimal.WithSize(11, 2)));
            Assert.AreEqual("NUMBER(8, $s)", map.Get(DbType.Decimal.WithSize(8))); // will cause trouble
        }
예제 #2
0
        public void PutAndGetDecimalTest()
        {
            var map = new TypeMap();
            map.Put(DbType.Decimal, "NUMBER");
            map.Put(DbType.Decimal, 18, "NUMBER($l, $s)");

            Assert.AreEqual("NUMBER", map.Get(DbType.Decimal));
            Assert.AreEqual("NUMBER(10, 5)", map.Get(DbType.Decimal, 10, 5));
            Assert.AreEqual("NUMBER(7, $s)", map.Get(DbType.Decimal, 7)); // will cause trouble
        }
예제 #3
0
        public void PutAndGetByColumnTypeTest2()
        {
            var map = new TypeMap();
            map.Put(DbType.AnsiString, "VARCHAR($l)");

            Assert.AreEqual("VARCHAR($l)", map.Get(new ColumnType(DbType.AnsiString)));			// will cause trouble
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString.WithSize(100)));
            Assert.AreEqual("VARCHAR(1000)", map.Get(DbType.AnsiString.WithSize(1000)));
            Assert.AreEqual("VARCHAR(10000)", map.Get(DbType.AnsiString.WithSize(10000)));
        }
예제 #4
0
        public void PutAndGetByColumnTypeTest()
        {
            var map = new TypeMap();
            map.Put(DbType.AnsiString, "TEXT");
            map.Put(DbType.AnsiString, 255, "VARCHAR($l)");
            map.Put(DbType.AnsiString, 65534, "LONGVARCHAR($l)");

            Assert.AreEqual("TEXT", map.Get(new ColumnType(DbType.AnsiString)));						// default
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString.WithSize(100)));		// 100 is in [0:255]
            Assert.AreEqual("LONGVARCHAR(1000)", map.Get(DbType.AnsiString.WithSize(1000)));	// 100 is in [256:65534])
            Assert.AreEqual("TEXT", map.Get(DbType.AnsiString.WithSize(100000)));				// default
        }
예제 #5
0
        public ColumnSqlBuilder AppendColumnType(bool identityNeedsType)
        {
            string type = column.IsIdentity && !identityNeedsType
                                ? string.Empty
                                : typeMap.Get(column.ColumnType);

            if (!string.IsNullOrEmpty(type))
            {
                vals.Add(type);
            }

            return(this);
        }
예제 #6
0
        protected virtual string GetSqlChangeColumnType(SchemaQualifiedObjectName table, string column, ColumnType columnType)
        {
            string columnTypeSql = typeMap.Get(columnType);

            return(FormatSql("ALTER TABLE {0:NAME} ALTER COLUMN {1:NAME} {2}", table, column, columnTypeSql));
        }
예제 #7
0
        public void PutAndGetTest2()
        {
            var map = new TypeMap();
            map.Put(DbType.AnsiString, "VARCHAR($l)");

            Assert.AreEqual("VARCHAR($l)", map.Get(DbType.AnsiString));			// will cause trouble
            Assert.AreEqual("VARCHAR(100)", map.Get(DbType.AnsiString, 100));
            Assert.AreEqual("VARCHAR(1000)", map.Get(DbType.AnsiString, 1000));
            Assert.AreEqual("VARCHAR(10000)", map.Get(DbType.AnsiString, 10000));
        }
예제 #8
0
 public void ReplacingWithDefaultScaleTest()
 {
     var map = new TypeMap();
     map.Put(DbType.Xml, 20, "foo($l, $s)", 5);
     Assert.AreEqual("foo(12, 7)", map.Get(DbType.Xml, 12, 7));
     Assert.AreEqual("foo(12, 5)", map.Get(DbType.Xml, 12));
 }