RecordCount sempre -1
Olá Galera, quando abro a minha tabela, ele me retorna o recourd count sempre -1
o que pode ser?
utlizo BDE - TQuery
Abraços...
o que pode ser?
utlizo BDE - TQuery
Abraços...
Tremonti
Curtidas 0
Respostas
Titanius
02/05/2006
É porque o delphi começa a contar apartir do Zero...
for i:=0 to 7 do
roda 8 vezes
porem geralmente nos Count do Delphi você mesmo tem que Dar o -1 pra pegar o Indice de um Item, por exemplo.
[]s
for i:=0 to 7 do
roda 8 vezes
porem geralmente nos Count do Delphi você mesmo tem que Dar o -1 pra pegar o Indice de um Item, por exemplo.
[]s
GOSTEI 0
Tremonti
02/05/2006
Cara, nada a ver
é o RecordCount da Tabela, traz sempre o a quantidade de registros
é o RecordCount da Tabela, traz sempre o a quantidade de registros
GOSTEI 0
Siam
02/05/2006
Tente Query.Last; Query.First; antes de utilizar o RecordCount
GOSTEI 0
Araujojunior
02/05/2006
Já verificou se a consulta realmente retorna resultados? pois a sintaxe está correta, Query1.RecordCount;
Tive problemas uma vez e foi pau no Delphi, soh que depois que reinstalei ficou bom.
Junior
Tive problemas uma vez e foi pau no Delphi, soh que depois que reinstalei ficou bom.
Junior
GOSTEI 0
Massuda
02/05/2006
O valor de .RecordCount só é garantido para alguns tipos derivados de TDataSet, como é o caso de TTable.
No caso de TQuery e semelhantes, o método mais rápido é executar uma SQL do tipo...
No caso de TQuery e semelhantes, o método mais rápido é executar uma SQL do tipo...
SELECT COUNT(*) FROM tabela WHERE...
GOSTEI 0
José Henrique
02/05/2006
Segundo Marco Cantù em ´Dominando o Delphi 6 - A Bíblia´ este comportamento é previsto quando o cursor é somente de avanço e dinâmico. O RecordCount = -1 indica que retornou registro(s) mas o tipo de cursor não permite saber quantos (talvez pelo custo?). A opção do Massuda é a indicada se precisamos do total de registros.
GOSTEI 0
Tremonti
02/05/2006
Galera, Nao deu Nada certo.
Fiz varios testes e nada funcionou.
Não sei o que pode ser, de jeito nenhum.
Acontece somente com esta query no Sistema, todas as outras eu dou um RecourCount e funciona. Será que é porque essa tem um campo Text do SQL?
Mais uma coisinha, quando navego estre os registros pela barra de rolagem, ele me da o seguinte erro:
Invalid BLOB handle in record buffer
Alguem tem como me ajudar, por favor.
Grande Abraço a Todos...
Fiz varios testes e nada funcionou.
Não sei o que pode ser, de jeito nenhum.
Acontece somente com esta query no Sistema, todas as outras eu dou um RecourCount e funciona. Será que é porque essa tem um campo Text do SQL?
Mais uma coisinha, quando navego estre os registros pela barra de rolagem, ele me da o seguinte erro:
Invalid BLOB handle in record buffer
Alguem tem como me ajudar, por favor.
Grande Abraço a Todos...
GOSTEI 0
Adriano Santos
02/05/2006
[quote:5a8a576c6c=´José Henrique´]Segundo Marco Cantù em ´Dominando o Delphi 6 - A Bíblia´ este comportamento é previsto quando o cursor é somente de avanço e dinâmico. O RecordCount = -1 indica que retornou registro(s) mas o tipo de cursor não permite saber quantos (talvez pelo custo?). A opção do Massuda é a indicada se precisamos do total de registros.[/quote:5a8a576c6c]
A resposta do [b:5a8a576c6c]José Henrique[/b:5a8a576c6c] com base na informação do Cantú está correta e eu também já tive este problema. Na época precisei usar o .Last e .First, mesmo assim ainda tinha problemas de vez em quando. Então nunca mais usei RecordCount, só o
Até mesmo porque hoje eu trabalho com DBExpress.
A resposta do [b:5a8a576c6c]José Henrique[/b:5a8a576c6c] com base na informação do Cantú está correta e eu também já tive este problema. Na época precisei usar o .Last e .First, mesmo assim ainda tinha problemas de vez em quando. Então nunca mais usei RecordCount, só o
SELECT COUNT(*) FROM TABELA
Até mesmo porque hoje eu trabalho com DBExpress.
GOSTEI 0
Adriano Santos
02/05/2006
[quote:57a0882ce3=´José Henrique´]Segundo Marco Cantù em ´Dominando o Delphi 6 - A Bíblia´ este comportamento é previsto quando o cursor é somente de avanço e dinâmico. O RecordCount = -1 indica que retornou registro(s) mas o tipo de cursor não permite saber quantos (talvez pelo custo?). A opção do Massuda é a indicada se precisamos do total de registros.[/quote:57a0882ce3]
A resposta do [b:57a0882ce3]José Henrique[/b:57a0882ce3] com base na informação do Cantú está correta e eu também já tive este problema. Na época precisei usar o .Last e .First, mesmo assim ainda tinha problemas de vez em quando. Então nunca mais usei RecordCount, só o
Até mesmo porque hoje eu trabalho com DBExpress.
A resposta do [b:57a0882ce3]José Henrique[/b:57a0882ce3] com base na informação do Cantú está correta e eu também já tive este problema. Na época precisei usar o .Last e .First, mesmo assim ainda tinha problemas de vez em quando. Então nunca mais usei RecordCount, só o
SELECT COUNT(*) FROM TABELA
Até mesmo porque hoje eu trabalho com DBExpress.
GOSTEI 0
Rogick
02/05/2006
Se for só para verificar se a Query veio vazia, use a expressão
É só uma dica, mas eu acho q as acima tb resolvem.
... not(Query1.Bof and Query1.Eof); ...
É só uma dica, mas eu acho q as acima tb resolvem.
GOSTEI 0
Adriano Santos
02/05/2006
Se for só para verificar se a Query veio vazia, use a expressão
É só uma dica, mas eu acho q as acima tb resolvem.
... not(Query1.Bof and Query1.Eof); ...
Pra saber se está ou não vazia eu uso:
if qryQuery.IsEmpty then ...
GOSTEI 0
Martins
02/05/2006
Tente usar:
A dica do Massuda é muito válida.
Seu Banco e Paradox? Qual a estrutura dessa tabela? Tem índices?
if Query1.IsEmpty then
{...}
A dica do Massuda é muito válida.
Seu Banco e Paradox? Qual a estrutura dessa tabela? Tem índices?
GOSTEI 0