Fórum RecordCount da IBQuery errado?????? #43384
24/03/2004
0
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
Curtir tópico
+ 0
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+
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
Clique aqui para fazer login e interagir na Comunidade :)