public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { String alias = "union_src_" + Guid.NewGuid().ToString().Substring(0, 5); var sqlBuilder = new StringBuilder(); sqlBuilder.Append("("); for (int i = 0, queriesLength = Queries.Length; i < queriesLength; i++) { ISelectionQuery query = Queries[i]; QueryBuildInfo result = dbLayer.DataManipulate().ProcessQuery(buildInfo, query.Structure); if (i > 0) { sqlBuilder.Append(" UNION "); if (All) { sqlBuilder.Append(" ALL "); } } sqlBuilder.Append(result.ExecInfo.Sql + " union_src_" + i); } sqlBuilder.Append(") ").Append(alias); buildInfo.AddUnionAlias(alias); return(sqlBuilder.ToString()); }
public ICollection <Object> Select(ISelectionQuery query, ITransaction tx) { IDataReader rs = null; try { var logSb = new StringBuilder(); var showQuery = Config.ShowQueries; var buildInfo = DbLayer.DataManipulate().ProcessQuery(null, query.Structure); var execInfo = buildInfo.ExecInfo; if (showQuery) { logSb.Append(execInfo.Sql); foreach (var param in execInfo.Params) { logSb.Append(" ,").Append("Param").Append(param.Index).Append("=").Append(param.Value); } Logger.GetLogger(Config.LoggerName).Debug(logSb.ToString()); } rs = DbLayer.DataManipulate().CreateResultSet(tx, execInfo); IList <Object> retList = new List <Object> (); ICollection <IQuerySelection> selections = query.Structure.SelectList; var selectionCount = selections.Count; while (rs.Read()) { int count = 0; object rowObject = selectionCount > 1 ? new object[selectionCount] : null; foreach (IQuerySelection selection in selections) { Object loaded = ((IAbstractSelection)selection).Retrieve(rs, tx, buildInfo); if (selectionCount > 1) { ((object[])rowObject)[count++] = loaded; } else { rowObject = loaded; } } retList.Add(rowObject); } return(retList); } catch (Exception e) { Logger.GetLogger(Config.LoggerName).Error(e.Message, e); throw new RetrievalException(e.Message, e); } finally { DbMgtUtility.Close(rs); } }
public static IQuerySelection Query(ISelectionQuery query, String alias) { var expressionSelection = (AbstractExpressionSelection)_factory.CreateSelection(QuerySelectionExpressionType.Expression); expressionSelection.Expr = SelectExpr.Build().Query(query, alias); return(expressionSelection); }
public static IQueryFrom Query(ISelectionQuery query, String alias) { var queryFromSub = (AbstractSubQueryFrom)_factory.CreateFrom(QueryFromExpressionType.Query); queryFromSub.Query = query; ; if (!string.IsNullOrEmpty(alias)) { queryFromSub.Alias = alias; } return(queryFromSub); }
public ICollection <Object> Select(ISelectionQuery query, ITransaction tx) { return(_persistRetrievalLayer.Select(query, tx)); }
protected T BaseQuery(ISelectionQuery query, string alias) { var segment = new QuerySegment(query, alias); return(AddSegment(segment)); }
protected T BaseQuery(ISelectionQuery query) { return(BaseQuery(query, null)); }
public ConditionExpr Query(ISelectionQuery query) { return(BaseQuery(query)); }
public ICollection <Object> Select(ISelectionQuery query, ITransaction tx) { return(_retrievalOperationLayer.Select(query, tx)); }
public void AddQueryAlias(string alias, ISelectionQuery query) { _aliases.Add(_currentQueryId + alias, query); }
public QuerySegment(ISelectionQuery query, string alias) { _query = query; _alias = alias; }
public SelectExpr Query(ISelectionQuery query, string alias) { return(BaseQuery(query, alias)); }
public static IQueryFrom Query(ISelectionQuery query) { return(Query(query, null)); }