consulta sql com recordcount

15/02/2013

0

De: Francisco de Assis Nicolau

Estou tentando fazer com que uma consulta sql me retorne valores e não esta funcionando. Gostaria de obter ajuda. Abaixo posto parte do código que criei e não está funcionando:

procedure Tfrm_natOcorrencias.FormShow(Sender: TObject);
var
sql: String;
begin
sql := SELECT * FROM relatorio_ocorrencia;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_TotaGeral_auxilio.Caption := inttostr(ZQ_ContaAuxilio.RecordCount);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-01 Auxilio ao Público /Diversos / Socorro;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A01.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-02 Criança Desassistida / Abandono de Incapaz;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A02.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-03 Distúrbio Mental / Demente;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A03.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-04 Embriaguez;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A04.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-05 Parturiente / Parto;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A05.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-06 Acidente Pessoal;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A06.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-07 Auxilio Funeral;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A07.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-08 Auxilio ao Trânsito;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A08.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-09 Passgem escolar;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A09.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger);
Francisco Nicolau

Francisco Nicolau

Responder

Posts

15/02/2013

Douglas

Francisco,

nos "SELECT" demonstrado acima.

Algum deles retorna um suposto valor,

ou todos ficam sem valores mesmo ?
Responder

16/02/2013

Perivaldo Martins

Francisco,

nos "SELECT" demonstrado acima.

Algum deles retorna um suposto valor,

ou todos ficam sem valores mesmo ?


É isso aí Douglas, acho que está meio estranho esse código do colega, se ele puder nos informar o que está acontecendo, se está dando erro, qual o resultado que está sendo apresentado, poderiamos ter uma idéia de como ajudá-lo.

Esse código vai exibir o resultado da consulta em um grid, vários grids, conforme seleção, pq o código está no OnShow fo form não é isso?

procedure Tfrm_natOcorrencias.FormShow(Sender: TObject);
var
sql: String;
begin
sql := SELECT * FROM relatorio_ocorrencia;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_TotaGeral_auxilio.Caption := inttostr(ZQ_ContaAuxilio.RecordCount);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-01 Auxilio ao Público /Diversos / Socorro;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A01.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger); 


Vendo aqui com mais calma, percebo que vc quer exibir a quantidade de registros em alguns Label's, correto? Esse ZQ_ContaAuxilio é um componente de que tipo TQuery, TSQLQuery, ou o quê?

Boa sorte e bons códigos!
Responder

16/02/2013

Douglas

Bom Francisco,

já que na forma que você esta fazendo não esta funcionando.

faça desta forma abaixo para cada um deles:

procedure Tfrm_natOcorrencias.FormShow(Sender: TObject);
var
 I : integer;
begin
I := 0;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add('SELECT * FROM relatorio_ocorrencia');
ZQ_ContaAuxilio.Open;

ZQ_ContaAuxilio.First;

while not ZQ_ContaAuxilio.Eof do
begin
inc(I);
ZQ_ContaAuxilio.Next;
end;

lbl_TotaGeral_auxilio.Caption := inttostr(I);


E assim sucessivamente para os outros, não esqueça de sempre zerar a variável "I".

Obs: Já tive problemas com RecordCount, dele bugar na hora de obter uma massa de quantidade de registro.

Responder

16/02/2013

Douglas

Francisco,

nos "SELECT" demonstrado acima.

Algum deles retorna um suposto valor,

ou todos ficam sem valores mesmo ?


É isso aí Douglas, acho que está meio estranho esse código do colega, se ele puder nos informar o que está acontecendo, se está dando erro, qual o resultado que está sendo apresentado, poderiamos ter uma idéia de como ajudá-lo.

Esse código vai exibir o resultado da consulta em um grid, vários grids, conforme seleção, pq o código está no OnShow fo form não é isso?

procedure Tfrm_natOcorrencias.FormShow(Sender: TObject);
var
sql: String;
begin
sql := SELECT * FROM relatorio_ocorrencia;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_TotaGeral_auxilio.Caption := inttostr(ZQ_ContaAuxilio.RecordCount);

sql := SELECT COUNT(nat_ocorr) AS NatOcorr FROM relatorio_ocorrencia WHERE nat_ocorr=A-01 Auxilio ao Público /Diversos / Socorro;
ZQ_ContaAuxilio.Close;
ZQ_ContaAuxilio.SQL.Clear;
ZQ_ContaAuxilio.SQL.Add(sql);
ZQ_ContaAuxilio.Open;
lbl_total_A01.Caption := inttostr(ZQ_ContaAuxilio.FieldByName(NatOcorr).AsInteger); 


Vendo aqui com mais calma, percebo que vc quer exibir a quantidade de registros em alguns Label's, correto? Esse ZQ_ContaAuxilio é um componente de que tipo TQuery, TSQLQuery, ou o quê?

Boa sorte e bons códigos!


Realmente, Martins.

Mas como comentei anteriormente já tive problemas com o "RecordCount",

ao trazer uma grande quantidade de registros, a melhor forma de resolver

foi como citei acima. Porém vamos esperar o FeedBack do nosso amigo.

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar