consulta sql com recordcount
15/02/2013
0
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
Posts
15/02/2013
Douglas
nos "SELECT" demonstrado acima.
Algum deles retorna um suposto valor,
ou todos ficam sem valores mesmo ?
16/02/2013
Perivaldo Martins
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!
16/02/2013
Douglas
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.
16/02/2013
Douglas
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.
Clique aqui para fazer login e interagir na Comunidade :)