예제 #1
0
        private void ParseSqlCommand(DbAccessorContext context)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.DbAccessor = context.DbAccessor;
            foreach (DbParameter p in context.DbCommand.Parameters)
            {
                cmd.Parameters.Add(p);
            }
            cmd.Text = context.DbCommand.CommandText;

            IList<ISqlCommandParser> parsers = new List<ISqlCommandParser>();
            parsers.Add(new NormalParameterParser());
            parsers.Add(new ValueParameterParser());
            parsers.Add(new EnvValParameterParser(true));
            parsers.Add(new EnvValParameterParser(false));
            parsers.Add(new DynamicClauseParser());

            foreach (var p in parsers)
            {
                p.Parse(cmd);
            }

            context.DbCommand.CommandText = cmd.Text;

        }
예제 #2
0
        private void ParseParameterName(DbAccessorContext context)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.DbAccessor = context.DbAccessor;
            cmd.Text = context.DbCommand.CommandText;
            new ParameterNameParser().Parse(cmd);

            context.DbCommand.CommandText = cmd.Text;
        }
예제 #3
0
        private void ParseReplacement(DbAccessorContext context)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.DbAccessor = context.DbAccessor;
            foreach (DbParameter p in context.DbCommand.Parameters)
            {
                cmd.Parameters.Add(p);
            }

            cmd.Text = context.DbCommand.CommandText;
            new ReplacementParser().Parse(cmd);

            context.DbCommand.CommandText = cmd.Text;
        }
예제 #4
0
        private void ParseDynamicClause(DbAccessorContext context)
        {

            if (!DynamicClauseParser.IsCanParse(context.DbCommand.CommandText)) return;

            SqlCommand cmd = new SqlCommand();

            cmd.DbAccessor = context.DbAccessor;
            cmd.Text = context.DbCommand.CommandText;
            foreach (DbParameter p in context.DbCommand.Parameters)
            {
                cmd.Parameters.Add(p);
            }
            var parser = new DynamicClauseParser();
            cmd = parser.Parse(cmd);
            context.DbCommand.CommandText = cmd.Text;
        }