Olá pessoal. Aqui vai mais uma dúvida de iniciante. Como faço quebras de páginas na exibição dos resultados de uma consulta ?
Por exemplo, faço uma consulta que me retorna 50 registros. Gostaria de mostrar na página 1, 20 registros e colocar no final da página um link para a página 2 que contém mais 20 registros seguindo assim até o final dos registros.
Alguém tem algum código como exemplo ?
Agradeço, desde já.
Coxon
Ae Coxon, que BD c ta usando??? Se for o MySQL ele tem um comando (LIMIT inicio, num_registros) para vc puxar qtos registros vc quer por vez…
Agora se naum for ele ai vai dar um pouquinho mais de trabalho…
Olá Darkseid. Estou usando o MS SQL Server 7. Será que não há alguma função parecida no SQL Server ?
Agradeço a atenção.
ih rapaz… nunca trabalhei com MS SQL, mas da uma olhada no help dele q eh provável q tenha…
Do contrario, acho q vc vai ter q dar uma olhadinha nos metodos do ResultSet pra ver se tem alguma q te ajuda na paginacao… vou tentar alguma coisa aqui em casa…
Ae Coxon, acabei de fazer um scriptzinho para pagincao (ta todo em jsp okay??)
lá vai…
teste.jsp
<body>
<%
//crie sua conexao com o banco de dados
// con eh o objeto Connection
// variáveis utilizadas
int pagina; // numero da pagina atual
final int pagesize=5; // numero de registro por pagina
int num_of_rows; // # registros retornados no RS
int num_of_pages; // numero de paginas
int i; // contador
// selecionando os registros na tabela
PreparedStatement stm = con.prepareStatement("Select * From usuario");
ResultSet rs = stm.executeQuery();
// percorrendo o resultset para contar o numero de registros
for(num_of_rows = 0; rs.next(); num_of_rows++);
// numero de paginas = numero de linhas / tamanho da página
num_of_pages = (int) Math.ceil( (float) num_of_rows / (float) pagesize);
// numero da pagina a ser exibida
if (request.getParameter("pagina") == null)
pagina = 0;
else
pagina = Integer.parseInt(request.getParameter("pagina")) - 1;
%>
<br>
Página: <%=pagina + 1%>
<br>
<%
// links para as proximas paginas
for(i=1; i<=num_of_pages; i++) {
%>[<a href="teste.jsp?pagina=<%=i%>"><%=i%></a>]<%
}
%>
<hr>
<table>
<tr>
<td>Codigo</td>
<td>Nome</td>
</tr>
<%
// esse metodo move o cursor para a posicao desejada (inicio da pagina)
rs.absolute(pagesize * pagina + 1);
i = 0; // zerando o contador
// o while vai no fim senao o primeiro registro eh perdido,
// pois a funcao absolute naum aceita 0
do {
%>
<tr><td><%=rs.getInt("codigo")%></td>
<td><%=rs.getString("nome")%></td>
</tr>
<%
i++;
} while (rs.next() && i < pagesize);
%>
</table>
</body>
Espero q tenha ajudado, qq duvida eh soh perguntar
Ae Darkseid… Seu código serviu perfeitamente para o que eu queria fazer.
Muito obrigado!
Ae Coxon… precisando tamo as ordens