RecordCount = 0 no OnCreate do Form
em um form preciso verificar quantos registros tem na query (que vai ser exibido em um DBCrtlGrid) para tomar decisões com base neste valor. O problema é que o RecordCount sempre retorna zero. Já observei e a query está ativa.
Quando o form é criado por mim (ou seja, quando comento a linha que faz o delphi criar automaticamente o form) tudo funciona perfeito, mas um outro código deixa de funcionar .
Como resolvo e porque o RecordCount sempre mostra zero?
Quando o form é criado por mim (ou seja, quando comento a linha que faz o delphi criar automaticamente o form) tudo funciona perfeito, mas um outro código deixa de funcionar .
Como resolvo e porque o RecordCount sempre mostra zero?
Raserafim
Curtidas 0
Respostas
Gandalf.nho
23/03/2005
Qual o seu banco de dados e o componente de acesso?
GOSTEI 0
Eniorm
23/03/2005
Veja, se vc usar o IBX ou algum componente semelhante, assim que abrir sua query, usa o FetchAll assim funciona, tipo veja ai:
Caso vc use um componente diferente, procure por algo semelhante na ajuda do mesmo.
Abraços,
IBQuery1.Open; IBQuery1.FetchAll;
Caso vc use um componente diferente, procure por algo semelhante na ajuda do mesmo.
Abraços,
GOSTEI 0
Gandalf.nho
23/03/2005
FetchAll não é muito recomendado, principalmente em rede, pq irá degradar a performance da aplicação ao trazer todos os registros para o cliente. O melhor a fazer nesse caso é usar um SELECT COUNT(*) FROM tabela
GOSTEI 0
Macario
23/03/2005
Ola para ter certeza de que a query esta vazia teste usando
Se retornar true verifique sua instrução SQL.
if Query1.isEmpty then ShowMessage(´Query vazia´);
Se retornar true verifique sua instrução SQL.
GOSTEI 0
Raserafim
23/03/2005
a base de dados que estou utilizando é o FireBird 1.5 com o componente de acesso MDO.
Macario, coloquei o código que vc citou no OnCreate e realmente está vazia. Porém se eu colocar este mesmo comando em algum outro evento, como o OnShow aí não está .
O problema é de fato o que relatei: o RecordCount sempre mostra zero, mesmo quando tem vários registros. Isso só acontece quando o form é criado automaticamente pelo delphi.
Macario, coloquei o código que vc citou no OnCreate e realmente está vazia. Porém se eu colocar este mesmo comando em algum outro evento, como o OnShow aí não está .
O problema é de fato o que relatei: o RecordCount sempre mostra zero, mesmo quando tem vários registros. Isso só acontece quando o form é criado automaticamente pelo delphi.
GOSTEI 0
Eniorm
23/03/2005
Qdo vc usa o Open (ou Active := True) na query on evento OnCreate, com qual instrução SQL está sendo executado?
GOSTEI 0
Macario
23/03/2005
raserafim posta o codigo aqui pra gente analisar :roll:
GOSTEI 0
Raserafim
23/03/2005
acabei de testar com várias query´s diferentes e com todas acontece a mesma coisa (ou seja, não é problema no código da query). Continua a mesma coisa: caso o form seja criado pelo delphi sempre retorna zero, caso eu comente a linha e crie eu mesmo o form então retorna o valor correto. para todas as querys.
GOSTEI 0