Exemplo n.º 1
0
        public void Build_Varchar_AnsiString()
        {
            var builder = new DbTypeBuilder();
            var result = builder.Build("Varchar");

            Assert.That(result.Value, Is.EqualTo(DbType.AnsiString));
        }
Exemplo n.º 2
0
        public void Build_DateTime_DateTime()
        {
            var builder = new DbTypeBuilder();
            var result = builder.Build("DateTime");

            Assert.That(result.Value, Is.EqualTo(DbType.DateTime));
        }
Exemplo n.º 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));
        }
Exemplo n.º 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));
        }
Exemplo n.º 5
0
        public IDbCommand Build(string connectionString, string query, IEnumerable <IQueryParameter> parameters, IEnumerable <IQueryTemplateVariable> variables)
        {
            var conn = new ConnectionFactory().Get(connectionString);
            var cmd  = conn.CreateCommand();

            if (variables != null && variables.Count() > 0)
            {
                query = ApplyVariablesToTemplate(query, variables);
            }

            cmd.CommandText = query;

            if (parameters != null && parameters.Count() > 0)
            {
                foreach (var p in parameters)
                {
                    var param = cmd.CreateParameter();

                    if (cmd is AdomdCommand && p.Name.StartsWith("@"))
                    {
                        param.ParameterName = p.Name.Substring(1, p.Name.Length - 1);
                    }
                    else if (cmd is SqlCommand && !p.Name.StartsWith("@") && char.IsLetter(p.Name[0]))
                    {
                        param.ParameterName = "@" + p.Name;
                    }
                    else
                    {
                        param.ParameterName = 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);
                }
            }

            return(cmd);
        }
Exemplo n.º 6
0
        public IDbCommand Build(string connectionString, string query, IEnumerable<IQueryParameter> parameters, IEnumerable<IQueryTemplateVariable> variables)
        {
            var conn = new ConnectionFactory().Get(connectionString);
            var cmd = conn.CreateCommand();

            if (variables != null && variables.Count() > 0)
                query = ApplyVariablesToTemplate(query, variables);

            cmd.CommandText = query;

            if (parameters!=null && parameters.Count()>0)
            {
                foreach (var p in parameters)
                {
                    var param = cmd.CreateParameter();

                    if (cmd is AdomdCommand && p.Name.StartsWith("@"))
                        p.Name = p.Name.Substring(1, p.Name.Length - 1);
                    if (cmd is SqlCommand && !p.Name.StartsWith("@") && char.IsLetter(p.Name[0]))
                        p.Name = "@" + p.Name;

                    param.ParameterName = p.Name;

                    var stringWithoutSpecialChars = p.StringValue.Replace("\n", "").Replace("\t", "").Replace("\n", "").Trim();
                    param.Value = stringWithoutSpecialChars;
                    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);
                }
            }

            return cmd;
        }