RecordCount = -1

Delphi

03/05/2003

Olá Galera !

Alguém saberia dizer porque as vezes ao fazer uma pesquisa através de uma query, quando é encontrado registros para essa pesquisa é retornado -1 para RecordCount ?

Obrigado.

Luiz :?:


Luger

Luger

Curtidas 0

Respostas

Rscrj

Rscrj

03/05/2003

Caro Luiz,

Quando você pede para retornar uma consulta, você usa uma variavel para isso, talvez esse possa ser o seu erro, utilize uma variavel inteira para guardar o número que você procurou e tente novamente.

Atenciosamente
rscrj


GOSTEI 0
Dor_poa

Dor_poa

03/05/2003

qual banco esta usando... ??


GOSTEI 0
Luger

Luger

03/05/2003

Olá galera, obrigado por responder !

Bem eu utilizo o banco de dados Oracle, e o meu projeto faz a seguinte pesquisa, verificando no banco para tirar uma prova esse código está cadastrado... bem eu sei que quando o recordcount é igual a zero (0) é porque não existe, não retornou nenhum registro....

O que eu não entendo é porque retorna -1... eu consegui solucionar isso usando <> de zero.... mas fiquei curioso pra saber porque retorna -1.

Segue o código de pesquisa !

query.Close;
query.ParamByName(´COD´).AsString:= ´1.10.11´;
query.Open;

If dmPM.qryConsPM.RecordCount = 0 Then
showmessage(´produto não encontrado´)
Else
showmessage(´produto já cadastrado´);

Obrigado.


GOSTEI 0
Motta

Motta

03/05/2003

TBDEDataSet.RecordCount

TBDEDataSetSee alsoExample

Indicates the total number of records associated with the dataset.

property RecordCount: Longint;

Description

Examine RecordCount to determine the total number of records in the dataset. Applications might use this property with RecNo to iterate through all the records in a dataset, though typically record iteration is handled with calls to First, Last, MoveBy, and Prior.

Note:Use RecordCount with care, because record counting can be a costly operation, especially for SQL queries that return large result sets. Generally, an application should only use RecordCount with Paradox and dBASE tables.


GOSTEI 0
Werlon Goulart

Werlon Goulart

03/05/2003

Tente usar o Query.IsEmpty já q se a consulta nao retornar nada (nenhum registro...) o IsEmpty estará setado com True, e se retornar estara setado como False.

Mas observe q em consultas com funções agregadas (Sum, Count e etc...)
este metodo ira falhar pois um registro ao menos ira ser retornado, mesmo q sua consulta nao tenha encontrado nenhum registro q satisfaça sua clausula Where.

Um Abraço
Werlon Goulart


GOSTEI 0
Rakov

Rakov

03/05/2003

o melhor jeito é utilizar o .isEmpty
tente usar o query.fetchAll para ver se soluciona seu problema
este ultimo pode deixar a aplicação lenta


GOSTEI 0
Anderson_blumenau

Anderson_blumenau

03/05/2003

não seria -1 para nenheum valor e 0 para o primeiro???


GOSTEI 0
Afarias

Afarias

03/05/2003

|não seria -1 para nenheum valor e 0 para o primeiro???


NÃO.

O RecordCount ínforma em geral o número de registros no buffer do DataSet. Entretanto, depende da implementação do DataSet para cada banco de dados.

Se retorna -1 é q o DataSet/banco de dados utilizado não suporta/implementa o RecordCount (note q muitas vezes, depende também das propriedades do DataSet).



T+


GOSTEI 0
POSTAR