static string GetSelectSql(AnyDbConnection cnn, Select query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(cnn.DatabaseProvider);
            string         sql      = renderer.RenderSelect(query);

            return(sql);
        }
Example #2
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));
        }
Example #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());
        }
        //public string GetSqlRowCount(Select query)
        //{
        //  ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider);
        //  return renderer.RenderRowCount(query);
        //}

        //public string GetSql(Select query, int pageIndex, int pageSize, int totalCount)
        //{
        //  ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider);
        //  return renderer.RenderPage(pageIndex, pageSize, totalCount, query);
        //}

        public string GetSql(Select query)
        {
            ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider);

            return(renderer.RenderSelect(query));
        }
Example #5
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 ");
            }
        }