private void BuildCommandText( SqlContainer sqlContainer, SqlCommand sqlCommand, StringBuilder commandText, Sqls.TableTypes tableType, Sqls.UnionTypes unionType, bool orderBy, bool countRecord, int?commandCount) { if (!Using) { return; } if (!DataTableName.IsNullOrEmpty()) { sqlContainer.DataTableNames.Add(DataTableName); } AddUnion(commandText, unionType); SqlColumnCollection?.BuildCommandText( sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount, distinct: Distinct, top: Top); var from = From(tableType, As); commandText.Append(from); SqlJoinCollection?.BuildCommandText(commandText: commandText); SqlWhereCollection?.BuildCommandText( sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount, select: true); SqlGroupByCollection?.BuildCommandText( commandText: commandText); SqlHavingCollection?.BuildCommandText( sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount); if (orderBy) { SqlOrderByCollection?.BuildCommandText( commandText: commandText, pageSize: PageSize, tableType: TableType, commandCount: commandCount); } AddTermination(commandText); if (countRecord) { sqlContainer.DataTableNames.Add("Count"); commandText.Append("select count(*) from ( select 1 as [c] "); commandText.Append(from); SqlJoinCollection?.BuildCommandText(commandText: commandText); SqlWhereCollection?.BuildCommandText( sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount, select: true); SqlGroupByCollection?.BuildCommandText( commandText: commandText); SqlHavingCollection?.BuildCommandText( sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount); commandText.Append(") as [table_count]"); AddTermination(commandText); } AddParams_Where(sqlCommand, commandCount); AddParams_Having(sqlCommand, commandCount); AddParams_Paging(sqlCommand, commandCount); AddParams_Param(sqlCommand, commandCount); }
private void BuildCommandText( ISqlObjectFactory factory, SqlContainer sqlContainer, ISqlCommand sqlCommand, StringBuilder commandText, Sqls.TableTypes tableType, Sqls.UnionTypes unionType, bool orderBy, int?commandCount) { if (!Using) { return; } AddUnion(commandText, unionType); SqlColumnCollection?.BuildCommandText( factory: factory, sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount, distinct: Distinct, top: Top); var from = From(tableType, As); commandText.Append(from); SqlJoinCollection?.BuildCommandText(commandText: commandText); SqlWhereCollection?.BuildCommandText( factory: factory, sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount, select: true); SqlGroupByCollection?.BuildCommandText( commandText: commandText); SqlHavingCollection?.BuildCommandText( factory: factory, sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, commandCount: commandCount); if (orderBy) { SqlOrderByCollection?.BuildCommandText( factory: factory, sqlContainer: sqlContainer, sqlCommand: sqlCommand, commandText: commandText, pageSize: PageSize, tableType: TableType, commandCount: commandCount); } commandText.Append( factory.SqlCommandText.CreateLimitClause(limit: Top)); AddTermination(commandText); AddParams_Where(factory, sqlCommand, commandCount); AddParams_Having(factory, sqlCommand, commandCount); AddParams_Paging(factory, sqlCommand, commandCount); AddParams_Param(factory, sqlCommand, commandCount); }