Fórum Limitar a qtde. de registros retornados em um RecordSet #41875
29/01/2004
0
Estou precisando limitar a quantidade de registros retornados em um RecordSet SQL para um módulo de um sistema que vai acessar remotamente um servidor Interbase 6 via RAS (56K). A idéia é fazer um form ´multipágina´ de 50 em 50, como na web..
Pensei inicialmente em fazer uso do WHERE mas pode não ter o resultado esperado, por exemplo :
select * from clientes where IDCLIENTE bettwen :start and :start+50
mas se um cliente for neste intervalo de ID for excluído a query só retornará 49 registros...
Existe alguma forma nativa de pedir isso ao Interbase ou de contornar este problema com o WHERE? Se puderem me ajudar, aguardo sugestões...
Obrigado.
Vinicius2k
Curtir tópico
+ 0Posts
29/01/2004
Afarias
select first 50 from tabela ...
No INTERBASE (6.5 e superior) use ROWS
select from tabela
...
order by rows 50
T+
Gostei + 0
29/01/2004
Vinicius2k
Obrigado por responder-me.
Devo concluir então que para conseguir o resultado sem o WHERE devo trocar de SGBD. Até tudo bem, como o projeto ainda não está pronto, posso trocar para Firebird 1.5, que já estou testando.
Mas em ambos os exemplos que vc citou ele vai me trazer apenas os 50 primeiros registros, certo?
Se sim como fazer o que pretendo? ou seja : de 50 em 50, abrindo a query e trazendo de 1 a 50, depois fecho e trago de 51 a 100, de 101 a 150 e assim por diante...
Gostei + 0
29/01/2004
Afarias
|trocar de SGBD.
Se vc usa o IB 6.0 -- trocar pelo FB 1.0 não fará diferença
Mas, vc pode implementar este tipo de consulta no IB 6.0 com Stored Procedures, fica muito bom!
|Até tudo bem, como o projeto ainda não está pronto, posso trocar para
|Firebird 1.5, que já estou testando.
O FB 1.0 já possui esta funcionalidade, é praticamente 100¬ compatível com o IB 6.0 e é estável (o FB 1.5 ainda é ´beta´)
|Mas em ambos os exemplos que vc citou ele vai me trazer apenas os 50
|primeiros registros, certo?
Intão
|Se sim como fazer o que pretendo? ou seja : de 50 em 50, abrindo a
|query e trazendo de 1 a 50, depois fecho e trago de 51 a 100, de 101 a
|150 e assim por diante...
select first 50 from tabela
order by nome
select first 50 skip 50 from tabela
order by nome
select first 50 skip 100 from tabela
order by nome
{... assim por diante ...}
T+
Gostei + 0
29/01/2004
Vinicius2k
Brigadão ! :D
Vc ajudou muito ! Eu já pensava em mudar de vez pro Firebird, mas estava esperando sair o final release do 1.5 (tah difícil de sair neh? se não me engado estava anunciado desde Julho...)
Sei q vc é o especialista em FB... se vc não se importar... sem querer abusar... me diga o se ´rola´ e o que ´não rola´ com Firebird 1.0.3 e com o 1.5 quando ele ´sair do forno´ em relação à conexão Delphi-banco...
Delphi 6 + IBX 6.07
- com FB 1.0 ?
- com FB 1.5 ?
Delphi 6 + DBExpress (driver nativo)
- com FB 1.0 ?
- com FB 1.5 ?
Delphi 7 + IBX 7.07
- com FB 1.0 ?
- com FB 1.5 ?
Delphi 7 + DBExpress (driver nativo)
- com FB 1.0 ?
- com FB 1.5 ?
T+
Gostei + 0
30/01/2004
Afarias
|quando ele ´sair do forno´ em relação à conexão Delphi-banco...
Bom, quanto ao FB 1.5 não tenho ´testes´ concretos (ainda) -- mas bem q estou me programando para fazer um ´relatório´ sobre isto (quando sair, posto ele aqui -- caso alguêm ainda não tenha realizado)
Posso dizer o seguinte apenas::
1 - não há (ou deve haver) diferenças entre os Delphi 6 ou 7 -- O IBX ou DBX de ambos devem se comportar da mesma forma
2 - quanto ao FB 1.0 acredito q ambas soluções (IBX e DBX) já provaram não haver ´nenhum´ problema -- uma vez q o FB 1.0 é praticamente 100¬ compatível com o IB 6.0
3 - (FB 1.5) Tenho usado alguns sistemas feitos para IB (com IBX) contra bases de dados FB 1.5 -- sem haver nenhum problema ( ** mas torno a lembrar q não são testes totalmente conclusivos ** ) -- juntando isso a diversos relatos de pessoas q quase não tiveram problemas em usar IBX com FB 1.5, a princípio, me parece q a situação é favorável
4 - (FB 1.5) Não sei quanto ao DBX (meu Delphi é o 5) mas acredito que siga a mesma linha do IBX
5 - Para quem realmente pretende adotar o FB como solução de médio/longo prazo, é muito importante manter-se *antenado* às soluções ESPECÍFICAS para o FB (FIB Plus, IBO e FirebirdExpress (DBX)) -- afinal, o FB 1.5 é um pré-release do FB 2.0 -- ao mesmo tempo q o IB tb evolui pelo lado da Borland -- então, é possível q em um futuro estas ferramentas podem não se manter compatíveis, tornando o uso de IBX ou DBX (com driver para IB) impossível com FB -- sendo assim necessário passar para adotar uma dessas soluções
Este é apenas o meu entendimento.
T+
Gostei + 0
30/01/2004
Vinicius2k
Clareou muita coisa ! :D
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)