Count SQL nao ta funcionando...

24/11/2005

0

não estou conseguindo dar o Ar da Graça no meu Count...
Quando clico no botao, ele trava o programa...
está assim...

datamodule1.TbArqHist.SQL.Clear;
datamodule1.TbArqHist.SQL.add(´select count(*) as qtd from arq_hist where inscricao =1050´);

datamodule1.TbArqHist.ParamByName(´insc´).AsString:=edit1.text;
datamodule1.TbArqHist.open;
teste.Caption := datamodule1.TbArqHist.Fields[0].AsString;


Faz tempo q tenho esta duvida...
Obrigado.


Geisonc

Geisonc

Responder

Posts

24/11/2005

Geisonc

esqueci de avisar.. estou usando firebird. com o isql, funciona perfeito, mas no codigo do programa ele ta travando..


Responder

24/11/2005

Edilcimar

select count(*) ? não seria select count(nomecampo) as qtd?


Responder

24/11/2005

Emerson Nascimento

tente assim:

with datamodule1.TbArqHist do
begin
  SQL.Clear; 
  SQL.add(´select count(*) as qtd from arq_hist where inscricao = :insc´); 
  ParamByName(´insc´).AsString := edit1.text;
  Open; 
  teste.Caption := Fields[0].AsString;
end;



Responder

24/11/2005

Geisonc

não consegui nem colocando o campo no lugar de (*) e nem do jeito que o emerson.en explicou...

ele executa o comando porem o programa fica como (não respondendo) ...


Responder

24/11/2005

Emerson Nascimento

with datamodule1.TbArqHist do
begin
  Close;
  SQL.Clear;
  SQL.add(´select count(*) as qtd from arq_hist where inscricao = :insc´);
  ParamByName(´insc´).AsString := edit1.text;
  Open;
  teste.Caption := Fields[0].AsString;
end;


certifique-se de haver um índice nessa tabela pelo campo inscricao


Responder

24/11/2005

Geisonc

Indice ? desculpe a ignorancia, como assim..

na parte da criacao do banco, depois criacao das tabelas, criacao do gerador, criacao do trigger, eu paro por ai.

O que esta errado entao ?


Responder

24/11/2005

Emerson Nascimento

isso mesmo: índices!

o aumento de performance é brutal depois da criação dos índices.

CREATE INDEX ARQ_HIST_IDX1 ON ARQ_HIST (INSCRICAO);

depois do índice criado execute a instrução novamente e veja se a performance melhora.


Responder

24/11/2005

Geisonc

realmente ficou melhor a pesquisa, porem, para a consulta que eu quero no caso o select count, ainda ta travando... que saco, quando era em db eu conseguia fazer perfeitamente...

com o isql ele demora 1 segundo para fazer a pesquisa, entao creio eu que nao seje tao demorado a filtrar os campos....

uma pergunta... como eu estou criando o campo ´as qtd´, eu preciso coloca-lo do fields editor como campo calculado ? ou nao eh necessario... em todo caso, criei ele e tbem travou...

tá complicado o negocio...


Responder

24/11/2005

Delphi32

me diga o seguinte:

1) Quais são os componentes que você está usando para acessar o banco de dados?

2) O componente TbArqHist é de que tipo? (IBTable, IBQuery, etc.)

Se funciona pelo isql deveria funcionar também pelo programa, então acredito que haja algum erro de configuração nos componentes...


Responder

24/11/2005

Geisonc

Utilizo Firebird/Interbase,

componentes IBDatabase, IbQuery. As configuracoes do database estao voltatas para o banco criado, cada query conectada ao banco e com instrucoes se select * para cada tabela em cada query, que sao 7 no total. Uma query esta conectada na tabela arq_hist, na qual tenho que fazer varias pesquisas e tenho que fazer em varias tabelas, porem a base das pesquisas é atraves desta instrucao que nao da certo... ele trava o delphi de uma maneira que eu tenho que finalizar o delphi (ctl alt del), para poder voltar a usar o pc.

Funciona perfeitamente em ISQL, chega a lacrimejar os olhos....


Responder

25/11/2005

Geisonc

********
Fiz um banco de dados de teste em firebird, com uns campinhos chucros, para ver se contava, e CONTOU......

mostrou certinho quantos registros tem na tabela.. etc...

e no projeto oficial nao conta nem por decreto, e ainda trava...

alguem tem alguma sugestao ?


Responder

25/11/2005

Geisonc

Bom, tirei TODOS os componentes do modulo, e coloquei o basico + a tabela que eu to tentando fazer funcionar....

DEU CERTO !

agora vou colocando as outras e vou tentando...

por enquanto

Muito Obrigado.


Responder

Assista grátis a nossa aula inaugural

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