Quebra de página

6 respostas
C

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

6 Respostas

D

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…

C

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.

D

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…

D

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

C

Ae Darkseid… Seu código serviu perfeitamente para o que eu queria fazer.

Muito obrigado!

D

Ae Coxon… precisando tamo as ordens

Criado 22 de junho de 2004
Ultima resposta 25 de jun. de 2004
Respostas 6
Participantes 2