Fórum RecordCount da IBQuery errado?????? #43384

24/03/2004

0

Olá! Fiz uma consulta simples em uma IBQuery do tipo:

SELECT * FROM CLIENTES WHERE NOME=´QUALQUER COISA  ´ AND ESTADO=´RJ´


A IBQuery retorna o [b:6ceabb031d]RecordCount[/b:6ceabb031d]=0 sendo que ele possui mais registros. Eu tinha que percorrer todos os registros e estava utilizando um [b:6ceabb031d]for i:=0 to RecordCount - 1 do...[/b:6ceabb031d], mas aí dava erro.

Resolvi o problema trocando o for por um: [b:6ceabb031d]while not eof do[/b:6ceabb031d], mas eu gostaria de saber porque a IBQuery retorna apenas um registro.

Alguém aí sabe?

bb!


Delphi32

Delphi32

Responder

Posts

24/03/2004

Afarias

o correto é realmente utilizar o WHILE NOT EOF ...

O RecordCount (por motivos de otimização) não é uma informação muito válida e sua forma de funcionamento depende dos componentes que está usando.

No IBX, ele informa apenas o número de registros no Buffer do dataSet, sendo assim, antes de chamar o RecordCount vc tem q forçar todos os registros serem trazidos (FETCH) do banco para o buffer do componente.

Para fazer isso, execute um FetchAll ou um Last.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar