RecordCount da IBQuery errado??????
Olá! Fiz uma consulta simples em uma IBQuery do tipo:
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!
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
Curtidas 0
Respostas
Afarias
24/03/2004
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+
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+
GOSTEI 0