Fórum O que tem de Errado? #330153
27/09/2006
0
ele não consulta exatamente o periodo que desejo q aparece no dbgrid, ele consulta apenas os dias.
por exemplo:
Se peço um periodo entre 01/10/2006 a 10/10/2006 e na tabela tiverem registros de dias que começam com 01 e 10 ele mostra no dbgrid, como 01/08/2006 02/08/2006,
mas não me mostra o periodo real que quero.
Alguem sabe me dizer o que tem de errado?
procedure Tfrmcracha.BitBtn6Click(Sender: TObject);
var
Inicio : string;
Final : string;
soma : extended;
begin
Soma := 0;
Inicio := edit7.Text ;
Final := edit8.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text := ´SELECT naocobrar, totais, data FROM cracha WHERE data >= :pinicio and data <= :pfinal order by data ASC´;
adoquery1.Parameters.ParamByName(´pinicio´).Value := StrToDate(Inicio);
adoquery1.Parameters.ParamByName(´pfinal´).Value := StrToDate(final);
adoquery1.Open;
if not adoquery1.isempty then begin
adoquery1.first;
while not adoquery1.eof do begin
Soma := Soma + adoquery1.fieldbyname(´totais´).asfloat;
adoquery1.next;
edit4.Text := floattostr(soma);
end;
end;
soma := 0;
if not adoquery1.isempty then begin
adoquery1.first;
while not adoquery1.eof do begin
Soma := Soma + adoquery1.fieldbyname(´naocobrar´).asfloat;
adoquery1.next;
edit3.Text := floattostr(soma);
end;
end;
end;
end.
Vinicius/campolina
Curtir tópico
+ 0Posts
27/09/2006
Jc_analista
adoquery1.SQL.Text := ´SELECT naocobrar, totais, data FROM cracha
WHERE (data between :pinicio and :pfinal) order by data ASC´;
Gostei + 0
27/09/2006
Macario
Se o que voce necessita e apenas a soma dos campos [b:30297cfedc]NAOCOBRA[/b:30297cfedc]R e [b:30297cfedc]TOTAIS[/b:30297cfedc] faca o seguinte.
select sum(NAOCOBRAR) as NAOCOBRAR, sum(TOTAIS) as TOTAIS from CRACHA where DATA between :DATAINICIAL and :DATAFINAL
Agora atente ao tipo do campo ele e date? datetime? timestamp?
Qual SGBDR voce esta usando?
Qual driver de acesso?
Ps.: Para ordenacao nao ha necessidade de se indicar ASC, pois ja se trata de opcao default.
Gostei + 0
27/09/2006
Vinicius/campolina
ele não me traz o periodo q quero.
Gostei + 0
27/09/2006
Vinicius/campolina
o banco que eu uso é o access e uso os componentes ado.
o campo é do tipo datetime
Gostei + 0
27/09/2006
Macario
o banco que eu uso é o access e uso os componentes ado.
o campo é do tipo datetime[/quote:c585279ee6]
Ola.
Nao tenho experiencia com ACCES mas vamos ver.
ao inves de passar
adoquery1.Parameters.ParamByName(´pinicio´).Value := StrToDate(Inicio); adoquery1.Parameters.ParamByName(´pfinal´).Value := StrToDate(final);
tente
adoquery1.Parameters.ParamByName(´pinicio´).asDatetime := StrToDatetime(Inicio); adoquery1.Parameters.ParamByName(´pfinal´).asDatetime := StrToDatetime(final);
Verifique na propriedade PARAMS, do ADOQuery o datatype dos parametros, veja se estao para ftDatetime
Outro ponto, qual formato de data usado: dd/mm/yyyy ou mm/dd/yyyy,
dd/mm/yy ou mm/dd/yy.
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)