Como retornar mais de 1 registro numa Query Interbase

Delphi

24/02/2003

Oi pessoal,

Estou fazendo uma pesquisa usando um componente IBQUERY
(SELECT * FROM TABELA WHERE NOME = ´X´)

Essa pesquisa está me retornando apenas 1 (UM?!) registro, porém eu sei que existem vários registros com esse critério no meu BD.

Percebi que isso está ocorrendo porque eu não possuo um DBGRID linkado ao meu IBQUERY. Sei que isso é uma espécie de ´otimização´ do Interbase, para retornar uma quantidade pequena de registros e dessa forma minimizar o tempo de pesquisa.

Porém nesse caso eu preciso do total de registros corretos (para lança-los em duas ListBox). Alguém poderia me informar como ´burlar´ essa otimização do Interbase e força-lo a me retornar TODOS OS REGISTROS existentes que atendam ao meu critério?

Obrigado,


Descolado


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

24/02/2003

Vc poderia dar um select count(*) from TABELA where NOME = ´X´, ou poderia dar um comando Last naquela sua query e utilizar a propriedade RecordCount da mesma (esta propriedade poderia estar errada no começo se os registro não estiverem no buffer), dando um comando First após isto.

Obs: Vc poderia dar o comando DisableControls na query antes do comando last para otimizar esta navegação, dando um EnableControls após o First.


GOSTEI 0
Navoid

Navoid

24/02/2003

cara use a clausula LIKE assim

****
SELECT * FROM TABELA WHERE NOME LIKE ´X´
****

creio que deve resolver


GOSTEI 0
Edson Tm.

Edson Tm.

24/02/2003

Faça:

(SELECT * FROM TABELA WHERE NOME like ´X¬´)

o ¬ funciona como curinga, assim, vai retornar todos os registro que começam com X.

Não se esqueça que o INTERBASE é CaseSensitive.


GOSTEI 0
Anonymous

Anonymous

24/02/2003

Para resolver seu problema, basta colocar as seguintes linhas de código:

Query.Last;
Query.First;

Christian Chagas.


GOSTEI 0
Anonymous

Anonymous

24/02/2003

Pessoal, obrigado pelas respostas!
Todas funcionaram, fico muito grato.

Um abraço,


Descolado


GOSTEI 0
POSTAR