@Override public SatisfiedQueryBuilder<GroupedQueryBuilder> offset(int offset) { if (offset >= 0) { _query.setFirstRow(offset + 1); } else { _query.setFirstRow(null); } return this; }
@Override public SatisfiedQueryBuilder<GroupedQueryBuilder> offset(int offset) { if (offset >= 0) { _query.setFirstRow(offset + 1); } else { _query.setFirstRow(null); } return this; }
@Override public SatisfiedQueryBuilder<GroupedQueryBuilder> firstRow(int firstRow) { if (firstRow >= 0) { _query.setFirstRow(firstRow); } else { _query.setFirstRow(null); } return this; }
@Override public SatisfiedQueryBuilder<GroupedQueryBuilder> firstRow(int firstRow) { if (firstRow >= 0) { _query.setFirstRow(firstRow); } else { _query.setFirstRow(null); } return this; }
private void parseOffsetClause(Query query, String offsetClause) { offsetClause = offsetClause.trim(); if (!offsetClause.isEmpty()) { try { final int offset = Integer.parseInt(offsetClause); // ofset is 0-based, but first-row is 1-based final int firstRow = offset + 1; query.setFirstRow(firstRow); } catch (NumberFormatException e) { throw new QueryParserException("Could not parse OFFSET value: " + offsetClause); } } }
private void parseOffsetClause(Query query, String offsetClause) { offsetClause = offsetClause.trim(); if (!offsetClause.isEmpty()) { try { final int offset = Integer.parseInt(offsetClause); // ofset is 0-based, but first-row is 1-based final int firstRow = offset + 1; query.setFirstRow(firstRow); } catch (NumberFormatException e) { throw new QueryParserException("Could not parse OFFSET value: " + offsetClause); } } }
@Override public Query optimizeQuery(Query q, Category category) { if (category == Category.VALID) { q.setMaxRows(maxRows); if (firstRow > 1) { q.setFirstRow(firstRow); } if (orderColumn != null) { Column physicalColumn = orderColumn.getPhysicalColumn(); q.orderBy(physicalColumn); } } else { throw new IllegalStateException("Can only optimize the VALID max rows category"); } return q; }
q.setFirstRow(firstRow); } else { final int newFirstRow = previousFirstRow.intValue() + firstRow; q.setFirstRow(newFirstRow);
final DataContext dataContext = con.getDataContext(); Query pagedQuery = dataContext.parseQuery(query); pagedQuery.setFirstRow(firstRow); pagedQuery.setMaxRows(maxRows); try (final DataSet dataSet = dataContext.executeQuery(pagedQuery)) {
private DCPanel createPagingButtonPanel() { if (_query == null) { return null; } final Integer maxRows = _query.getMaxRows(); if (maxRows == null) { // no paging needed when there are no max rows property return null; } _previousPageButton.addActionListener(e -> { int newFirstRow = getFirstRow() - maxRows; if (newFirstRow <= 0) { newFirstRow = 1; } _query.setFirstRow(newFirstRow); updateTable(); }); _nextPageButton.addActionListener(e -> { final int newFirstRow = getFirstRow() + maxRows; _query.setFirstRow(newFirstRow); updateTable(); }); final DCPanel buttonPanel = new DCPanel(WidgetUtils.COLOR_DEFAULT_BACKGROUND); buttonPanel.setBorder(new MatteBorder(1, 0, 0, 0, WidgetUtils.BG_COLOR_LESS_BRIGHT)); buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 4, 10)); buttonPanel.add(_previousPageButton); buttonPanel.add(_nextPageButton); return buttonPanel; }
final Query countQuery = originalQuery.clone(); countQuery.setMaxRows(null); countQuery.setFirstRow(null); countQuery.getSelectClause().removeItems(); countQuery.getOrderByClause().removeItems();
final Query countQuery = originalQuery.clone(); countQuery.setMaxRows(null); countQuery.setFirstRow(null); countQuery.getSelectClause().removeItems(); countQuery.getOrderByClause().removeItems();
innerQuery.setFirstRow(null); innerQuery.setMaxRows(null);
innerQuery.setFirstRow(null); innerQuery.setMaxRows(null);
@Override public Query clone() { final Query q = new Query(); q.setMaxRows(_maxRows); q.setFirstRow(_firstRow); q.getSelectClause().setDistinct(_selectClause.isDistinct()); for (FromItem item : _fromClause.getItems()) { q.from(item.clone()); } for (SelectItem item : _selectClause.getItems()) { q.select(item.clone(q)); } for (FilterItem item : _whereClause.getItems()) { q.where(item.clone()); } for (GroupByItem item : _groupByClause.getItems()) { q.groupBy(item.clone()); } for (FilterItem item : _havingClause.getItems()) { q.having(item.clone()); } for (OrderByItem item : _orderByClause.getItems()) { q.orderBy(item.clone()); } return q; } }
@Override public Query clone() { final Query q = new Query(); q.setMaxRows(_maxRows); q.setFirstRow(_firstRow); q.getSelectClause().setDistinct(_selectClause.isDistinct()); for (FromItem item : _fromClause.getItems()) { q.from(item.clone()); } for (SelectItem item : _selectClause.getItems()) { q.select(item.clone(q)); } for (FilterItem item : _whereClause.getItems()) { q.where(item.clone()); } for (GroupByItem item : _groupByClause.getItems()) { q.groupBy(item.clone()); } for (FilterItem item : _havingClause.getItems()) { q.having(item.clone()); } for (OrderByItem item : _orderByClause.getItems()) { q.orderBy(item.clone()); } return q; } }