Beispiel #1
0
        public void Build_DateTime_DateTime()
        {
            var builder = new DbTypeBuilder();
            var result  = builder.Build("DateTime");

            Assert.That(result.Value, Is.EqualTo(DbType.DateTime));
        }
Beispiel #2
0
        public void Build_Varchar_AnsiString()
        {
            var builder = new DbTypeBuilder();
            var result  = builder.Build("Varchar");

            Assert.That(result.Value, Is.EqualTo(DbType.AnsiString));
        }
Beispiel #3
0
        public void Build_Varchar255_AnsiStringWithSize()
        {
            var builder = new DbTypeBuilder();
            var result  = builder.Build("varchar(255)");

            Assert.That(result.Value, Is.EqualTo(DbType.AnsiString));
            Assert.That(result.Size, Is.EqualTo(255));
        }
Beispiel #4
0
        public void Build_Decimal10And2_DecimalWithSizeAndPrecision()
        {
            var builder = new DbTypeBuilder();
            var result  = builder.Build("Decimal (10,2)");

            Assert.That(result.Value, Is.EqualTo(DbType.Decimal));
            Assert.That(result.Size, Is.EqualTo(10));
            Assert.That(result.Precision, Is.EqualTo(2));
        }
Beispiel #5
0
        protected IDbCommand Instantiate(IDbConnection connection, IQuery query, ITemplateEngine engine)
        {
            var cmd = connection.CreateCommand();

            if (query.TemplateTokens != null && query.TemplateTokens.Count() > 0)
            {
                cmd.CommandText = ApplyVariablesToTemplate(engine, query.Statement, query.TemplateTokens);
            }
            else
            {
                cmd.CommandText = query.Statement;
            }

            if (query.Parameters != null && query.Parameters.Count() > 0)
            {
                foreach (var p in query.Parameters)
                {
                    var param = cmd.CreateParameter();
                    param.ParameterName = RenameParameter(p.Name);

                    param.Value = p.GetValue();
                    var dbType = new DbTypeBuilder().Build(p.SqlType);
                    if (dbType != null)
                    {
                        param.Direction = ParameterDirection.Input;
                        param.DbType    = dbType.Value;
                        param.Size      = dbType.Size;
                        param.Precision = dbType.Precision;
                    }
                    cmd.Parameters.Add(param);
                }
            }

            if (query.CommandType > 0)
            {
                cmd.CommandType = query.CommandType;
            }

            var commandTimeout = Convert.ToInt32(Math.Max(0, query.Timeout.TotalSeconds));

            cmd.CommandTimeout = commandTimeout;

            return(cmd);
        }