Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lud-RP

Paginação de dados com SQL Server 2000

Recommended Posts

Galera, to no bico do corvo <_<

hehe.

 

To criando uma pagina de produtos, o banco de dados é SQL Server 2000, e no raio da tabela tem uma penca de produtos.

Preciso criar uma paginação pra não ficar tão pesado na hra de entrar na página.

Bom, não seria nenhum mistério fosse o banco de dados em MySQL certo?

Masssss como tudo tem um porém, aqui na empresa o banco de dados é SQL Server 2000. Se fosse no 2005 ja tinha como dar um jeito, mas no 2000 o diabo do Banco não tem nada que funcione do tipo.. LIMIT 0,50...

 

Alguem ja fez algo parecido? saberiam me ajudar? dar uma luz?

hehehe

valeu ae!!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procedure SqlServer 2000/2005

 

Para uso no SQLServer 2005

USE [Northwind]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[up_PaginaProdutos2005](@startRowIndex int,@maximumRows int,@rowsCount int output)ASBeginSET @startRowIndex=@startRowIndex+1--- Outputset @rowsCount=(SELECT count(ProductID) FROM Products);WITH ProductsPaging AS(SELECT ProductID, ProductName,UnitPrice,ROW_NUMBER() OVER (order by ProductID)as RowNumberFROM Products)SELECT ProductID,ProductName,UnitPriceFROM ProductsPagingWHERE RowNumber between @startRowIndex and @startRowIndex+@maximumRows;End
Para uso no SqlServer 2000 / 2005

USE [Northwind]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[up_PaginaProdutos2000](@startRowIndex int,@maximumRows int,@rowsCount int output)ASBeginDECLARE @first_id intSET @startRowIndex=@startRowIndex+1--- Obtem total registrosset @rowCount=(SELECT count(*) FROM Products)--- Obtem o índice com IDSET ROWCOUNT @startRowIndexSELECT @first_id = ProductID FROM Products ORDER BY ProductIDSET ROWCOUNT @maximumRows--- Executa select de retornoSELECT ProductID,ProductName,UnitPrice from ProductsWHERE ProductID >= @first_idORDER BY ProductIDSET ROWCOUNT 0end
Autor: Ramon Durães

Artigo: http://www.imasters.com.br/artigo/4178/asp...erver_20002005/

 

No artigo completo mostra um exemplo com gridview para asp.net

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procedure SqlServer 2000/2005

 

Para uso no SQLServer 2005

USE [Northwind]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[up_PaginaProdutos2005](@startRowIndex int,@maximumRows int,@rowsCount int output)ASBeginSET @startRowIndex=@startRowIndex+1--- Outputset @rowsCount=(SELECT count(ProductID) FROM Products);WITH ProductsPaging AS(SELECT ProductID, ProductName,UnitPrice,ROW_NUMBER() OVER (order by ProductID)as RowNumberFROM Products)SELECT ProductID,ProductName,UnitPriceFROM ProductsPagingWHERE RowNumber between @startRowIndex and @startRowIndex+@maximumRows;End
Para uso no SqlServer 2000 / 2005

USE [Northwind]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[up_PaginaProdutos2000](@startRowIndex int,@maximumRows int,@rowsCount int output)ASBeginDECLARE @first_id intSET @startRowIndex=@startRowIndex+1--- Obtem total registrosset @rowCount=(SELECT count(*) FROM Products)--- Obtem o índice com IDSET ROWCOUNT @startRowIndexSELECT @first_id = ProductID FROM Products ORDER BY ProductIDSET ROWCOUNT @maximumRows--- Executa select de retornoSELECT ProductID,ProductName,UnitPrice from ProductsWHERE ProductID >= @first_idORDER BY ProductIDSET ROWCOUNT 0end
Autor: Ramon Durães

Artigo: http://www.imasters.com.br/artigo/4178/asp...erver_20002005/

 

No artigo completo mostra um exemplo com gridview para asp.net

 

 

t+

valeu.. mais teria algum jeito de fazer sem Procedure?

não posso criar procedure no banco.. a unica coisa que posso fazer é retornar consultas!! hehehe

 

valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu.. mais teria algum jeito de fazer sem Procedure?não posso criar procedure no banco.. a unica coisa que posso fazer é retornar consultas!! hehehevaleu.

o exemplo esta com procedure, mas você pode fazer só a parte das consultas, sem problema algum..., coloca a consulta sql em uma variavel e executa pela conexãoou senão verifica de fazer na linguagem, em .net por exemplo o controle gridview faz isso tranquilot++

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz tipo assim então véi:

 

SELECT TOP 20

idFuncionario,prontuario,nome,area

FROM

funcionarios

WHERE

idFuncionario NOT IN (SELECT TOP 0 idFuncionario FROM funcionarios)

 

Onde:

-> 20 é a quantidade de registros por página

-> 0 é a página atual multiplicado pela quantidade de registros

 

Vê se te atende aew!

 

ABRAX!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava com problema similar e resolveu, fiz a paginação e no Top eu coloquei as variáveis inicio e total de paginas para não ter q usar store procedure, por enquanto esse arame tá funcionando que é uma beleza hauahuahua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal! Mas o IDEAL é a procedure.

Eu usava esse esquema de paginação aí e agora mudei pra procedure! É MUITO melhor...

 

ABRAX!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.