private static object GetScalar(string fieldName, string tableAlias, CSAggregate aggregate, CSFilter queryFilter, string orderBy) { CSSchema schema = CSSchema.Get(typeof(T)); if (tableAlias == null) { tableAlias = CSNameGenerator.NextTableAlias; } if (orderBy == null) { orderBy = ""; } string aggregateExpr = null; int maxRows = 0; switch (aggregate) { case CSAggregate.None: aggregateExpr = "{0}"; maxRows = 1; break; case CSAggregate.Sum: aggregateExpr = "sum({0})"; break; case CSAggregate.SumDistinct: aggregateExpr = "sum(distinct {0})"; break; case CSAggregate.Count: aggregateExpr = "count(*)"; break; case CSAggregate.CountDistinct: aggregateExpr = "count(distinct {0})"; break; case CSAggregate.Avg: aggregateExpr = "avg({0})"; break; case CSAggregate.AvgDistinct: aggregateExpr = "avg(distinct {0})"; break; case CSAggregate.Max: aggregateExpr = "max({0})"; break; case CSAggregate.Min: aggregateExpr = "min({0})"; break; } CSJoinList joins = new CSJoinList(); if (fieldName != "*") { fieldName = CSExpressionParser.ParseFilter(fieldName, schema, tableAlias, joins); } string whereFilter = CSExpressionParser.ParseFilter(queryFilter.Expression, schema, tableAlias, joins); orderBy = CSExpressionParser.ParseOrderBy(orderBy, schema, tableAlias, joins); string sqlQuery = schema.DB.BuildSelectSQL(schema.TableName, tableAlias, new[] { String.Format(aggregateExpr, fieldName) }, null, joins.BuildJoinExpressions(), whereFilter, orderBy, 1, maxRows, false, false); return(schema.DB.GetScalar(sqlQuery, queryFilter.Parameters)); }
public object GetScalar(string fieldName, CSAggregate aggregate, string filterExpression, CSParameterCollection filterParameters) { string tableAlias = CSNameGenerator.NextTableAlias; CSFilter queryFilter = Filter.And(BuildRelationFilter(tableAlias)); if (!string.IsNullOrEmpty(filterExpression)) { queryFilter = queryFilter.And(filterExpression, filterParameters); } return(CSObject <TObjectType> .GetScalar(fieldName, tableAlias, aggregate, queryFilter)); }
public object GetScalar(string fieldName, CSAggregate aggregate, string filterExpression, string paramName, object paramValue) { return(GetScalar(fieldName, aggregate, filterExpression, new CSParameterCollection(paramName, paramValue))); }
public object GetScalar(string fieldName, CSAggregate aggregate, string filterExpression) { return(GetScalar(fieldName, aggregate, filterExpression, null)); }
public object GetScalar(string fieldName, CSAggregate aggregate) { return(GetScalar(fieldName, aggregate, null, null)); }
internal static TScalar GetScalar <TScalar>(string fieldName, string tableAlias, CSAggregate aggregate, CSFilter queryFilter) { return(GetScalar <TScalar>(fieldName, tableAlias, aggregate, queryFilter, null)); }
private static TReturn GetScalar <TReturn>(string fieldName, string tableAlias, CSAggregate aggregate, CSFilter queryFilter, string orderBy) { return(GetScalar(fieldName, tableAlias, aggregate, queryFilter, orderBy).Convert <TReturn>()); }
public static TScalar GetScalar <TScalar>(string fieldName, CSAggregate aggregate, string filterExpression, CSParameterCollection filterParameters) { return(GetScalar <TScalar>(fieldName, null, aggregate, new CSFilter(filterExpression, filterParameters))); }
public static TScalar GetScalar <TScalar>(string fieldName, CSAggregate aggregate, string filterExpression, string paramName1, object paramValue1, string paramName2, object paramValue2, string paramName3, object paramValue3) { return(GetScalar <TScalar>(fieldName, aggregate, filterExpression, new CSParameterCollection(paramName1, paramValue1, paramName2, paramValue2, paramName3, paramValue3))); }
public static TScalar GetScalar <TScalar>(string fieldName, CSAggregate aggregate, string filterExpression) { return(GetScalar <TScalar>(fieldName, aggregate, filterExpression, CSParameterCollection.Empty)); }
public static TScalar GetScalar <TScalar>(string fieldName, CSAggregate aggregate) { return(GetScalar <TScalar>(fieldName, null, aggregate, CSFilter.None)); }
public static object GetScalar(string fieldName, CSAggregate aggregate) { return(GetScalar(fieldName, null, aggregate, CSFilter.None)); }