Recordcount -1
Alguém sabe porque que ao executar a sintaxe abaixo o valor de retorno é -1. Utilizo banco Oracle 8.1.7
var
v_qtd: integer;
begin
v_qtd:=query1.recordcount;
// o valor de v_qtd é igual a -1.
A query1 é:
select * from funcionarios
where codemp = 300
order by nome
Obrigado.
var
v_qtd: integer;
begin
v_qtd:=query1.recordcount;
// o valor de v_qtd é igual a -1.
A query1 é:
select * from funcionarios
where codemp = 300
order by nome
Obrigado.
Airoosp
Curtidas 0
Respostas
Gandalf.nho
10/02/2005
[b:ac166ed616][color=red:ac166ed616]Notificação de Infração às Regras de Conduta :[/color:ac166ed616][/b:ac166ed616]
Tópico no fórum errado. Deveria estar no de Delphi.
Para maiores esclarecimentos pode mandar-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].
Tópico no fórum errado. Deveria estar no de Delphi.
Para maiores esclarecimentos pode mandar-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].
GOSTEI 0
Airoosp
10/02/2005
Não entendi, pois trata-se do Delphi com o Oracle. O resultado do recordcount eu quero mostrar em um form do Delphi.
GOSTEI 0
Gandalf.nho
10/02/2005
Caso você não tenha percebido esse fórum específico aqui é de Interbase/Firebird e não de Delphi. Quanto a notificação me distraí um pouco, era pra ser Delphi e não Oracle, mas já corrigi.
GOSTEI 0
Marcio.theis
10/02/2005
Isto ocorre por causa do comando select *, vc provavelmente deve de ter muitos registros na tabela, sendo que lhe retorno no RecodCount o -1, e para que isto não aconteça mais, especifique os campos que vc deseja trazer no sql.
GOSTEI 0
Afarias
10/02/2005
Não tem a ver com o SQL.
O RecordCount funciona diferente para ´bancos SQL´ (SGBD) e arquivos como xBase e Paradox.
O RecordCount é implementado diferentemente para cada tipo de componente (DataSet) que vc usa -- então, o q ele apresenta depende dos componentes q vc está usando -- Geralmente, ele diz apenas quantos registros tem no BUFFER do componente (ou não diz nada! como no seu caso)
Para SGBDs (como o Oracle) não tem como o RecordCount dizer quantos registros foram trazidos na consulta, a não ser q todos os registros sejam antes trazidos para o Buffer (.Last ou .FetchAll) mas ainda assim, alguns componentes nem mesmo implementam isso.
Para os componentes Unidirecionais (DBX por exemplo) então essa propriedade é inútil (visto q tais componentes não contem um buffer)
Geralmente usar o RecordCount não é uma boa prática quando se trabalha como SGBD -- se for usar, leia atentamente a documentação sobre ´como funciona´ específicamente para o conjunto de DataSets q vc está usando.
No mais estou trancando o tópico, visto q, como bem observou a colega Gandalf ele está completamente fora de contexto.
T+
O RecordCount funciona diferente para ´bancos SQL´ (SGBD) e arquivos como xBase e Paradox.
O RecordCount é implementado diferentemente para cada tipo de componente (DataSet) que vc usa -- então, o q ele apresenta depende dos componentes q vc está usando -- Geralmente, ele diz apenas quantos registros tem no BUFFER do componente (ou não diz nada! como no seu caso)
Para SGBDs (como o Oracle) não tem como o RecordCount dizer quantos registros foram trazidos na consulta, a não ser q todos os registros sejam antes trazidos para o Buffer (.Last ou .FetchAll) mas ainda assim, alguns componentes nem mesmo implementam isso.
Para os componentes Unidirecionais (DBX por exemplo) então essa propriedade é inútil (visto q tais componentes não contem um buffer)
Geralmente usar o RecordCount não é uma boa prática quando se trabalha como SGBD -- se for usar, leia atentamente a documentação sobre ´como funciona´ específicamente para o conjunto de DataSets q vc está usando.
No mais estou trancando o tópico, visto q, como bem observou a colega Gandalf ele está completamente fora de contexto.
T+
GOSTEI 0