Query1.RecordCount= -1 ????
03/07/2004
0
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
Posts
03/07/2004
Sandra
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!
03/07/2004
Marcelo.c
03/07/2004
Alexdias
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 !!!
03/07/2004
Alexdias
[u:9e26a19208][i:9e26a19208][b:9e26a19208][color=red:9e26a19208]STRTOINT LEIA INTTOSTR. [/color:9e26a19208][/b:9e26a19208][/i:9e26a19208][/u:9e26a19208]
04/07/2004
Dataclass
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.
05/07/2004
Paulo_amorim
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:
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é+
05/07/2004
Rômulo Barros
[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]
05/07/2004
Marcelo.c
10/07/2004
Alexdias
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
Clique aqui para fazer login e interagir na Comunidade :)