Query1.RecordCount= -1 ????

03/07/2004

0

[size=18:28ef538dbd][/size:28ef538dbd]
QUERY1.RECORDCOUNT= -1 ????

OLÁ AMIGOS ESTOU USANDO OS COMPONENTES QUERY , DATASOURCE E DATABASE PARA ME CONECTAR AO BANCO DE DADOS ACCESS 97 , COM DELPHI 5 PORÉM SE FIZER UMA CONSULTA POR EXEMPLO EM UMA TABELA DE CLIENTES RECEBO QUERY1.RECORDCOUNT= -1 , ALGÉM SABERIA O PORQUE ? , POIS SE AOS INVES DE USAR ESTA CONEXÃO EU USAR A CONEXÃO ADO , TUDO FICA PERDEITO , OU SEJA , EU RECEBO O NUMERO DE REGISTROS DA MINHA TABELA CLIENTE.

EX :

procedure TForm1.BitBtn1Click(Sender: TObject);
var v_count:integer;
begin
QUERY1.CLOSE ;
QUERY1.SQL.CLEAR ;
QUERY1.SQL.ADD(´ SELECT * FROM CLIENTE ORDER BY NOME ´) ;
QUERY1.OPEN;
V_COUNT:=INTTOSTR(QUERY1.RECORDCOUNT);
end;

end.

[color=green:28ef538dbd][b:28ef538dbd][i:28ef538dbd]Título em maiúsculas editado. Procure digitar em minúsculas. Leia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=44affb2f0d30faf6a903e3cdbfd791eb][u:28ef538dbd]Regras de Conduta[/u:28ef538dbd][/url]. (Marcelo.c – Moderador)[/i:28ef538dbd][/b:28ef538dbd][/color:28ef538dbd]


Alexdias

Alexdias

Responder

Posts

03/07/2004

Sandra

alexdias,

O método RecordCount da query retorna um número Integer e sua variável v_count também é do mesmo tipo. Por qual razão faz a conversão para String? Não seria isso o problema? Verifique!


Responder

03/07/2004

Marcelo.c

Isso realmente acontece com o Access se você estiver utilizando BDE. O RecordCount funciona apenas com Paradox e DBF. Creio que utilizando componentes ADO o RecordCount funcione.


Responder

03/07/2004

Alexdias

[color=blue:29e231ca6a]AO PRIMEIRO COLEGA . . . [/color:29e231ca6a]

DESCULPE-ME POIS O EXEMPLO EU CRIEI SEM TESTA-LO SOMENTE PARA DAR UMA NOÇÃO DO PROBLEMA , MAS A SUA OBS FOI VALIDA POREM COM O CODIGO QUE MANDEI COM O PEQUENO LAPSO O DELPHI NEM COPILARIA , POIS ACUSARIA O ERRO , NO ENTANTO , OU A VARIAVEL SERIA DO TIPO STRING , OU ENTAO RETIRARIA DO CODIGO A PARTE
[size=18:29e231ca6a][color=red:29e231ca6a][u:29e231ca6a][i:29e231ca6a][b:29e231ca6a]STRTOINT[/b:29e231ca6a][/i:29e231ca6a][/u:29e231ca6a][/color:29e231ca6a][/size:29e231ca6a] MAS O PROBLEMA AINDA E REAL .


[color=blue:29e231ca6a]AO SEGUNDO COLEGA . . . [/color:29e231ca6a]
COMO EU JA HAVIA MENSIONADO COM ADO EU SEI QUE FUNCIONA MAS O MEU PROBLEMA COM ADO x ACCESS É OUTRO , POIS O MESMO NÃO FUNCIONA COM SENHA ( ´ MELHOR DIZENDO ATE HOJE EU NAO CONSEGUI E NINGUEM SOLICITADO PARA ME AJUDAR CONSEGUIU POIS QUANDO AMIGOS E COLEGAS FAZEM TESTES RECEBEM - TESTE CONNECTION SUCCEEDED - JA NA ETAPA FINAL DE CONEXÃO , PARAM O TESTE POREM QUANDO VC TENTA INSERIR OU GRAVAR UM REGISTRO DA ERRO´) EU JA FIZ VARIOS TESTES E NUNCA CONSEGUI MAS SE VC OU ALGUEM TIVER ESSA REAL RESPOSTA PODEMOS CONVERSAR E FICAREI MUITO AGRADECIDO !!!


Responder

03/07/2004

Alexdias

[size=18:9e26a19208][color=blue:9e26a19208]AO PRIMEIRO COLEGA . . . [/color:9e26a19208][/size:9e26a19208]

[u:9e26a19208][i:9e26a19208][b:9e26a19208][color=red:9e26a19208]STRTOINT LEIA INTTOSTR. [/color:9e26a19208][/b:9e26a19208][/i:9e26a19208][/u:9e26a19208]


Responder

04/07/2004

Dataclass

Alex,

não entendi teu problema com Senha usando Access x ADO...pois meus bancos sempre tem senha(explica melhor , pode ser que eu tenha entendido errado).

Caso tu só precises saber a quantidade de registros tu podes usar o COUNT no SQL.


Responder

05/07/2004

Paulo_amorim

O RecordCount funciona apenas com Paradox e DBF.


Olá

Marcelo, creio que vc esteja enganado. Eu uso RecordCount com outros bancos como Oracle, MSSQLServer e MySQL, e nunca me deu problemas...
Entretanto não sei se com o Access tem isso, nesse caso vc deve estar certo :wink:

AO PRIMEIRO COLEGA . . . STRTOINT LEIA INTTOSTR.

Não se deve ler nada!
Qualquer tipo de conversão que vc tentar fazer ali vai dar erro...
o certo eh
V_COUNT := QUERY1.RECORDCOUNT;

pois v_count eh inteira, RecordCount retorna um valor inteiro...

Até+


Responder

05/07/2004

Rômulo Barros

Acho que o código abaixo pode te ajudar: :wink:

[list:0ca1034536]procedure TForm1.BitBtn1Click(Sender: TObject);
var v_count:integer;
begin
QUERY1.CLOSE ;
QUERY1.SQL.CLEAR ;
[color=red:0ca1034536]QUERY1.SQL.ADD(´ SELECT Count(*) FROM CLIENTE´) ; [/color:0ca1034536]
QUERY1.OPEN;
V_COUNT:= QUERY1.Fields[0].AsInteger;
end; [/list:u:0ca1034536]


Responder

05/07/2004

Marcelo.c

Marcelo, creio que vc esteja enganado. Eu uso RecordCount com outros bancos como Oracle, MSSQLServer e MySQL, e nunca me deu problemas...
Pode ser, nunca usei com SGDBs. Neste caso utilizo IBX ou DBExpress. Obrigado por esclarecer. :wink:


Responder

10/07/2004

Alexdias

Caros colegas continuo com problemas ...
Pois o exemplo que tentei usar foi meramente ilustrativo ...

Ao Colega Marcelo.C , não posso usar seu exemplo abaixo pois ...
´ procedure TForm1.BitBtn1Click(Sender: TObject);
var v_count:integer;
begin
QUERY1.CLOSE ;
QUERY1.SQL.CLEAR ;
QUERY1.SQL.ADD(´ SELECT Count(*) FROM CLIENTE´) ;
QUERY1.OPEN;
V_COUNT:= QUERY1.Fields[0].AsInteger;
end; ´
poi esse exemplo não me seria util , mas agradeco a sua tentativa , mas aqui vai uma situação real . . .

eis uma situação real . . .
edinicio,edfim são dois componentes do tipo tedit , Tvendatot é minha tabela fisica do Access , nota_fiscal um field da minha tabela então . . .

dm.qvendatot.close;
dm.qvendatot.sql.clear;
dm.qvendatot.sql.add(´select * from tvendatot where nota_fiscal>=´´+edinicio.text+´´´+´ and nota_fiscal<=´´+edfim.text+´´´+´ order by nota_fiscal´);
dm.qvendatot.open;
IF dm.qvendatot.RecordCount=0 THEN
BEGIN
showmessage(´NADA ENCONTRADO !!!´);
edinicio.setfocus;
END
ELSE
BEGIN
IF messagedlg(´SERA IMPRESSO ´+inttostr(dm.qvendatot.recordcount)+´ PEDIDO ( S ) .´+
#10+´DESEJA CONTINUAR ?´,mtconfirmation,[mbyes,mbno],0)=MRYES THEN

e por ai a fora . . .

Ao outro Colega que disse sempre usar senha com Access X ADO por fazer entre em contato deixe um e-mail que eu entro em contato pois sinceramente eu tenho serios problemas com ado e senha . . .

a todos um muito obrigado pela atenção e interesse

alex dias


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar