Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marostegan

[Resolvido] filtro de dias

Recommended Posts

Galerinha boa tarde!

 

Estou com um dúvida aqui que não consigo resolver....

 

Para filtrar dados cadastrados num determinado dia eu fiz o seguinte:

 

begin
with dm.q_vendas  do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas where dia like '''+ Edit3.Text + '%''');
  Open;
  edit3.clear;
end;
end;

 

MAS... eu precisava fazer um filtro, para ver dados dos dias, exemplo:

 

De: 10/10/2008 a 17/10/2008

 

 

e dai retornar todos os valores cadastrados de 10 a 17 de Outubro

 

e então o sistema mostrar pra mim todos os dados cadastrados nesse dia...

 

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu período de busca é um intervalo dentro de um mesmo ano? Se for, usando o between você consegue isso fácil...

 

begin
with dm.q_vendas  do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas where dia between '+ QuotedStr(dataInicial) + ' AND ' + QuotedStr(DataFinal));
  Open;
  edit3.clear;
end;
end;

Ps.: No caso, dataInicial e final seriam strings com as datas convertidas no formato que vai usar para pesquisar no banco.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu período de busca é um intervalo dentro de um mesmo ano? Se for, usando o between você consegue isso fácil...

 

begin
with dm.q_vendas  do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas where dia between '+ QuotedStr(dataInicial) + ' AND ' + QuotedStr(DataFinal));
  Open;
  edit3.clear;
end;
end;

Ps.: No caso, dataInicial e final seriam strings com as datas convertidas no formato que vai usar para pesquisar no banco.

 

[]'s

certo... mas vamos lá só para que eu possa entender melhor!

 

no meu caso a data inicial eu digitaria dentro do Edti1 e a data final dentro da Edit2

 

 

outro ponto que não entendi também... QuotedStr(dataInicial) da onde vem esse dataInicial?

 

 

obrigado pela ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

QuotedStr adiciona aspas antes e depois...

Qualquer coisa salve o SQL, e veja se esta correto como você deseja, para isto fazendo:

 

begin
with dm.q_vendas  do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from tbl_vendas where dia between '+ QuotedStr(dataInicial) + ' AND ' + QuotedStr(DataFinal));

  SQL.SaveToFile('c:\sql.txt');

  Open;
  edit3.clear;
end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

O dataInicial e dataFinal que coloquei na select foi pra representar onde você passaria as duas datas do intervalo... como strings já formatadas para o formato de data usado no seu banco de dados.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O dataInicial e dataFinal que coloquei na select foi pra representar onde você passaria as duas datas do intervalo... como strings já formatadas para o formato de data usado no seu banco de dados.

 

[]'s

 

certo... vou fazer o teste aqui.... dai posto o resultado.... obrigado amigo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que acontece? Como a SQL ficou? Qual problema ocorre ainda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo... andei tentando fazer desse jeito mas nao consegui:

 

tentei dessa forma:

 

begin
dm.q_clientes.Close;
dm.q_clientes.Sql.Clear;
dm.q_clientes.Sql.Add('Select * from tbl_clientes');
dm.q_clientes.Sql.Add('Where fim_contrato Beetwen :dataini and :datafim');
dm.q_clientes.ParamByName('dataini').AsDate := StrToDateTime(MaskEdit1.text);
dm.q_clientes.ParamByName('datafim').AsDate := StrToDateTime(MaskEdit2.text);
dm.q_clientes.Open;
end;

porém o seguinte erro é apresentado:

 

undeclared identifier: 'ParamByName'

 

o que será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tipo de componente é o dm.q_clientes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

dm.q_clientes.Parameters.ParamByName('dataini').AsDate := StrToDateTime(MaskEdit1.text);
dm.q_clientes.Parameters.ParamByName('datafim').AsDate := StrToDateTime(MaskEdit2.text);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ixi amigo... nao deu certo nao...

 

agora o seguinte erro é apresentado:

 

 

erro de sintaxe (operador faltando) na expressão de consulta 'fim_contrato Beetwen ? and ?'

 

 

o que será que é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Debugou para ver como está ficando a sql antes do open?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Debugou para ver como está ficando a sql antes do open?

opaa... :blink:

 

hehe... =///

 

desculpe a pergunta.... mas como é que faz isso? http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

 

obrigado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um breakpoint no programa antes de dar o open e veja se a sql está ok na propriedade text da query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opaa...

 

consegui fazer funcionar... aqui vai a solução!

 

obrigado!

 

begin
dm.q_clientes.Close;
dm.q_clientes.Sql.Clear;
dm.q_clientes.Sql.Add('Select * from tbl_clientes where fim_contrato Between :dataini and :datafim');
dm.q_clientes.Parameters.ParamByName('dataini').Value := StrToDate(MaskEdit1.text);
dm.q_clientes.Parameters.ParamByName('datafim').Value := StrToDate(MaskEdit2.text);
dm.q_clientes.Open;
end;

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.