static string GetUpdateSql(AnyDbConnection cnn, Update query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(cnn.DatabaseProvider);
            string         sql      = renderer.RenderUpdate(query);

            return(sql);
        }
        static string GetInsertSelectSql(AnyDbConnection cnn, InsertSelect query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(cnn.DatabaseProvider);
            string         sql      = renderer.RenderInsertSelect(query);

            return(sql);
        }
Ejemplo n.º 3
0
        public object ExecuteScalar(Select query)
        {
            ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider);

            _dbCommand.CommandText = render.RenderSelect(query);
            _dbCommand.CommandType = CommandType.Text;
            FillParameters(_dbCommand, query.Query.CommandParams, render);
            return(ExecuteScalar());
        }
Ejemplo n.º 4
0
        public int ExecuteNonQuery(Update query)
        {
            ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider);

            _dbCommand.CommandText = render.RenderUpdate(query);
            _dbCommand.CommandType = CommandType.Text;
            FillParameters(_dbCommand, query.Query.CommandParams, render);
            return(ExecuteNonQuery());
        }
Ejemplo n.º 5
0
        public DbDataReader ExecuteReader(Select query, CommandBehavior behavior)
        {
            ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider);

            _dbCommand.CommandText = render.RenderSelect(query);
            _dbCommand.CommandType = CommandType.Text;
            FillParameters(_dbCommand, query.Query.CommandParams, render);
            return(ExecuteReader(behavior));
        }
Ejemplo n.º 6
0
        public long ExecuteNonQuery(Insert query)
        {
            ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider);

            _dbCommand.CommandText = render.RenderInsert(query);
            _dbCommand.CommandType = CommandType.Text;
            FillParameters(_dbCommand, query.Query.CommandParams, render);
            if (!string.IsNullOrEmpty(query.Query.IdentityField))
            {
                return(Convert.ToInt64(ExecuteScalar()));
            }
            return(ExecuteNonQuery());
        }
Ejemplo n.º 7
0
        public int ExecuteNonQuery(Delete query)
        {
            ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider);

            _dbCommand.CommandText = render.RenderDelete(query);
            _dbCommand.CommandType = CommandType.Text;
            FillParameters(_dbCommand, query.Query.CommandParams, render);

            using (SqlStopwatch sw = new SqlStopwatch(this))
            {
                return(ExecuteNonQuery());
            }
        }
Ejemplo n.º 8
0
 static SqlOmRenderHelper()
 {
     string typeName = ConfigurationSettings.AppSettings["SqlOmRenderer"];
     Type type = null;
     if (typeName != null)
     {
         type = Type.GetType(typeName, false);
     }
     if (type == null)
     {
         type = typeof(SqlServerRenderer);
     }
     instance = Activator.CreateInstance(type) as ISqlOmRenderer;
 }
Ejemplo n.º 9
0
 static void FillParameters(DbCommand cmd, ParamCollection parameters, ISqlOmRenderer render)
 {
     if (cmd.Parameters.Count > 0)
     {
         cmd.Parameters.Clear();
     }
     for (int i = 0; i < parameters.Count; i++)
     {
         DbParameter p = cmd.CreateParameter();
         p.DbType        = parameters[i].DbType;
         p.Direction     = parameters[i].Direction;
         p.ParameterName = render.CreateParameterName(parameters[i].Name);
         ((IDbDataParameter)p).Precision = parameters[i].Precision;
         ((IDbDataParameter)p).Scale     = parameters[i].Scale;
         p.Size       = parameters[i].Size;
         p.IsNullable = parameters[i].IsNullable;
         p.Value      = parameters[i].Value;
         cmd.Parameters.Add(p);
     }
 }
Ejemplo n.º 10
0
        public string GetSql(Update query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider);

            return(renderer.RenderUpdate(query));
        }
Ejemplo n.º 11
0
        public string GetSql(InsertSelect query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider);

            return(renderer.RenderInsertSelect(query));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Renders a single WhereTerm
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="term"></param>
        protected virtual void WhereClause(StringBuilder builder, WhereTerm term)
        {
            if (term.Type == WhereTermType.Compare && term.Op == CompCond.BitwiseAnd)
            {
                BitwiseAnd(builder, term);
            }
            else if (term.Type == WhereTermType.Compare)
            {
                Expression(builder, term.Expr1);
                builder.Append(" ");
                Operator(builder, term.Op);
                builder.Append(" ");
                Expression(builder, term.Expr2);
                if (term.Op == CompCond.Like && term.Expr3 != null)
                {
                    builder.AppendFormat(" escape '{0}'", Convert.ToString(((OmConstant)term.Expr3.Value).Value));
                }
            }
            else if (term.Type == WhereTermType.In || term.Type == WhereTermType.NotIn || term.Type == WhereTermType.InSubQuery || term.Type == WhereTermType.NotInSubQuery)
            {
                Expression(builder, term.Expr1);
                if (term.Type == WhereTermType.NotIn || term.Type == WhereTermType.NotInSubQuery)
                {
                    builder.Append(" not");
                }
                builder.Append(" in (");
                if (term.Type == WhereTermType.InSubQuery || term.Type == WhereTermType.NotInSubQuery)
                {
                    if (term.SubQuery is SelectQuery)
                    {
                        ISqlOmRenderer innerRender = this.CreateNew();
                        builder.Append(innerRender.RenderSelect(term.SubQuery as SelectQuery));
                    }
                    else if (term.SubQuery is string)
                    {
                        builder.Append((string)term.SubQuery);
                    }
                    else
                    {
                        throw new InvalidQueryException(SR.Err_SubQueryUnavelable);
                    }
                }
                else
                {
                    ConstantList(builder, term.Values);
                }
                builder.Append(")");
            }
            else if (term.Type == WhereTermType.Exists || term.Type == WhereTermType.NotExists)
            {
                if (term.Type == WhereTermType.NotExists)
                {
                    builder.Append(" not");
                }
                builder.Append(" exists (");
                if (term.SubQuery is SelectQuery)
                {
                    ISqlOmRenderer innerRender = this.CreateNew();
                    builder.Append(innerRender.RenderSelect(term.SubQuery as SelectQuery));
                }
                else if (term.SubQuery is string)
                {
                    builder.Append((string)term.SubQuery);
                }
                else
                {
                    throw new InvalidQueryException(
#if !TEST
                              SR.Err_SubQueryUnavelable
#else
                              ""
#endif
                              );
                }
                builder.Append(")");
            }
            else if (term.Type == WhereTermType.Between)
            {
                Expression(builder, term.Expr1);
                builder.AppendFormat(" between ");
                Expression(builder, term.Expr2);
                builder.AppendFormat(" and ");
                Expression(builder, term.Expr3);
            }
            else if (term.Type == WhereTermType.IsNull || term.Type == WhereTermType.IsNotNull)
            {
                Expression(builder, term.Expr1);
                builder.Append(" is ");
                if (term.Type == WhereTermType.IsNotNull)
                {
                    builder.Append("not ");
                }
                builder.Append(" null ");
            }
        }