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)); }
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); } }
public SqlParameters(object parameters) { this._params = GetParameters(parameters); }
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); }
public ParametersWrapper(ISqlParameters parameters) { this._params = parameters; }
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); }
public override bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters) { builder.AppendCommandText(RawText); return(true); }
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); } }
/// <summary> /// </summary> /// <returns>返回是否被执行,有些语句是根据上下文动态判断是否需要被执行的</returns> public abstract bool ToCommand(IDaoProvider provider, SqlCommandBuilder builder, ISqlParameters parameters);
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); }