consulta sql com recordcount
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);
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
Curtidas 0
Respostas
Douglas
15/02/2013
Francisco,
nos "SELECT" demonstrado acima.
Algum deles retorna um suposto valor,
ou todos ficam sem valores mesmo ?
nos "SELECT" demonstrado acima.
Algum deles retorna um suposto valor,
ou todos ficam sem valores mesmo ?
GOSTEI 0
Perivaldo Martins
15/02/2013
Francisco,
nos "SELECT" demonstrado acima.
Algum deles retorna um suposto valor,
ou todos ficam sem valores mesmo ?
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!
GOSTEI 0
Douglas
15/02/2013
Bom Francisco,
já que na forma que você esta fazendo não esta funcionando.
faça desta forma abaixo para cada um deles:
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.
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.
GOSTEI 0
Douglas
15/02/2013
Francisco,
nos "SELECT" demonstrado acima.
Algum deles retorna um suposto valor,
ou todos ficam sem valores mesmo ?
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.
GOSTEI 0