Ejemplo n.º 1
0
        public PageResult <T> GetPageResult <T>(string sql, Func <string> sqlCount, ISqlParameters criteria, PageRequest request)
            where T : IQueryEntity, new()
        {
            var parameters = criteria.GetParameters();

            return(GetPageResult <T>(sql, sqlCount, request, parameters));
        }
Ejemplo n.º 2
0
        public string Execute(ISqlAction action,
                              ISqlParameters inParams,
                              IDictionary <string, object> outParams)
        {
            string text = action.Text;

            if (string.IsNullOrEmpty(text))
            {
                return(string.Empty);
            }
            else
            {
                string operation;
                string defaultRule;

                int index = text.IndexOf('?');
                if (index > 0)
                {
                    operation   = text.Substring(0, index);
                    defaultRule = text.Substring(index + 1);
                }
                else
                {
                    operation   = text;
                    defaultRule = string.Empty;
                }

                string rule = GetPermissionRule(operation);

                return(string.IsNullOrEmpty(rule) ? defaultRule : rule);
            }
        }
Ejemplo n.º 3
0
 public SqlParameters(object parameters)
 {
     this._params = GetParameters(parameters);
 }
Ejemplo n.º 4
0
        public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters)
        {
            string sqlName = provider.EscapeParam(ParamName);

            builder.AppendCommandText(RawText.Replace(ParamName, sqlName));
            builder.AddCommandParameter(sqlName, parameters.Resolve(ParamName));

            return(true);
        }
Ejemplo n.º 5
0
 public ParametersWrapper(ISqlParameters parameters)
 {
     this._params = parameters;
 }
Ejemplo n.º 6
0
        public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters)
        {
            IDictionary <string, object> outParams = new Dictionary <string, object>();

            string sql = _executor.Execute(_action, parameters, outParams);

            if (!string.IsNullOrEmpty(sql))
            {
                parameters = outParams.Count == 0 ? parameters : new ArrayParameters(outParams, parameters);

                IList <SqlClause> clauses = SqlParser.ParseToClauses(sql);

                foreach (SqlClause clause in clauses)
                {
                    clause.ToCommand(provider, builder, parameters);
                }
            }

            return(true);
        }
Ejemplo n.º 7
0
        public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters)
        {
            builder.AppendCommandText(RawText);

            return(true);
        }
Ejemplo n.º 8
0
        public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters)
        {
            if (_paramClause != null)
            {
                object value;

                bool exist = parameters.TryResolve(_paramClause.ParamName, out value);

                if (!_strict && (null == value || (value is string && string.IsNullOrEmpty(value as string))))
                {
                    return(false);
                }

                if (_strict && !exist)
                {
                    return(false);
                }
            }

            if (_foundNestedDynamicClause)
            {
                bool anyNestedDynamicClauseExecuted = false;

                SqlCommandBuilder nestedBuilder = new SqlCommandBuilder();

                foreach (SqlClause clause in _childs)
                {
                    if (clause.ToCommand(provider, nestedBuilder, parameters) && clause is DynamicClause)
                    {
                        anyNestedDynamicClauseExecuted = true;
                    }
                }

                //只有任何一个嵌套的动态语句被执行了才进行输出
                if (anyNestedDynamicClauseExecuted)
                {
                    builder.AppendCommandText(nestedBuilder.CommandText.ToString());
                    nestedBuilder.Params.ForEach(p => builder.AddCommandParameter(p));
                }

                return(anyNestedDynamicClauseExecuted);
            }
            else
            {
                foreach (SqlClause clause in _childs)
                {
                    clause.ToCommand(provider, builder, parameters);
                }

                return(true);
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// </summary>
 /// <returns>返回是否被执行,有些语句是根据上下文动态判断是否需要被执行的</returns>
 public abstract bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters);
Ejemplo n.º 10
0
        public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters)
        {
            object value = parameters.Resolve(ParamName);

            if (_valueParameterClauseUsage == ValueParameterClauseUsage.In)
            {
                builder.AppendCommandText(ToInClauseSqlString(provider, value));
            }
            else
            {
                String content = ToSqlString(provider, value);
                if (String.IsNullOrEmpty(content) && !String.IsNullOrEmpty(_defaultValue))
                {
                    builder.AppendCommandText(_defaultValue);
                }
                else
                {
                    if (_valueParameterClauseUsage == ValueParameterClauseUsage.Like)
                    {
                        content = provider.EscapeLikeParamValue(content);
                    }
                    builder.AppendCommandText(content);
                }
            }
            return(true);
        }