Tipos de dados e campos
Como paginar resultados de queries SQL?
ADSRT.FAQ-4052
O uso de paginação no lado do servidor do DB requer diferentes implementações dependendo do BD em uso.
O Telescope tem a classe SqlDialect que detecta o BD em uso e disponibiliza métodos adequados para construir as expressões de forma indiferente do BD.
Para o caso de paginação, use:
public String getPagedSelect(String sql, int limit, int offset)
Esse método facilita a paginação de resultados nas queries e está implementado para PostgreSQL, MySQL e Oracle. O objetivo de usar a paginação é de aumentar a velocidade no processamento de consultas que retornam um grande volume da dados.
Para buscar o SqlDialect da conexão, voce pode usar o método getSqlDialect() do BaseRuntime (ctx).
Exemplo:
String sql = "select x,y,z from tabela where x>2 order by z";
String sql2 = ctx.getSqlDialect().getPagedSelect(sql, 10, 20);
Outra forma de adquirir o SqlDialect diretamente a partir de um java.sql.Connection , é:
Connection conn = ...;
SqlDialect sqld = SqlDialect.newInstance(conn);
...
Se quiser saber como isso é implementado no Oracle, veja Como simular LIMIT e OFFSET em Oracle?