Consulta entre datas.
Galera boa noite, com um pequeno problema e preciso da ajuda dos colegas.
o problema é o seguinte:
tenho que fazer um relatório de caixa, quero colocar as datas e o sistema me retornar as datas detro do periodo que eu informei a ele.
Com SQL no FireBird eu consegui fazer mais quando eu vou ao delphi eu não conssigo fazer.
Meu código no delphi ta assim!
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between´ +Edit1.Text+ ´and´ +Edit2.Text´);
Q_Date.Open;
Qual é o erro?
Alguem pode me dar uma ajuda de como solucionar ess problema?
agradeço.
o problema é o seguinte:
tenho que fazer um relatório de caixa, quero colocar as datas e o sistema me retornar as datas detro do periodo que eu informei a ele.
Com SQL no FireBird eu consegui fazer mais quando eu vou ao delphi eu não conssigo fazer.
Meu código no delphi ta assim!
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between´ +Edit1.Text+ ´and´ +Edit2.Text´);
Q_Date.Open;
Qual é o erro?
Alguem pode me dar uma ajuda de como solucionar ess problema?
agradeço.
Jarabeucp
Curtidas 0
Respostas
Joaoshi
25/08/2008
Colega,
Lembrando que para passar datas no Firebird no padrão DD/MM/YYYY os seus edits (edit1 e edit2), devem estar DD.MM.YYYY (separados com ponto).
Espero ter ajudado.
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between ´ + QuotedStr(Edit1.Text) + ´ and ´ + QuotedStr(Edit2.Text)); Q_Date.Open;
Lembrando que para passar datas no Firebird no padrão DD/MM/YYYY os seus edits (edit1 e edit2), devem estar DD.MM.YYYY (separados com ponto).
Espero ter ajudado.
GOSTEI 0
Jarabeucp
25/08/2008
Colega,
Lembrando que para passar datas no Firebird no padrão DD/MM/YYYY os seus edits (edit1 e edit2), devem estar DD.MM.YYYY (separados com ponto).
Espero ter ajudado.
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between ´ + QuotedStr(Edit1.Text) + ´ and ´ + QuotedStr(Edit2.Text)); Q_Date.Open;
Parcero obrigado pelo hlep, deu certo
valeu.
quarquer duvida e eu puder ajudar estamos ai.
GOSTEI 0
Jarabeucp
25/08/2008
Amigo postei acima q a solução q o amigo deu tinha resolvido o problema.
só que hoje fazendo alguns teste observei q só funciona quando eu pesso p filtrar datas diferentes, quando coloco nos Edits a mesma data ou seja p ele filtrar tudo q eu recebi no dia da um erro.
como soluciono o problema?
no erro fala ´ouvi um erro de conversão de string´.
D já agradeço.
só que hoje fazendo alguns teste observei q só funciona quando eu pesso p filtrar datas diferentes, quando coloco nos Edits a mesma data ou seja p ele filtrar tudo q eu recebi no dia da um erro.
como soluciono o problema?
no erro fala ´ouvi um erro de conversão de string´.
D já agradeço.
GOSTEI 0
Joaoshi
25/08/2008
Colega, qual o tipo do campo [b:f25b37a317]dat_venci[/b:f25b37a317] ?
GOSTEI 0
Jarabeucp
25/08/2008
Colega, qual o tipo do campo [b:7503a32cdf]dat_venci[/b:7503a32cdf] ?
O tipo de campo que eu uso é DATE.
GOSTEI 0
Joaoshi
25/08/2008
Poderia colar o código da forma que esta dando erro ?
GOSTEI 0
Jarabeucp
25/08/2008
Poderia colar o código da forma que esta dando erro ?
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between´ +QuotedStr(Inicio.Text)+ ´and´ +QuotedStr(fim.Text)); Q_Date.Open;
Ia está o código, ele só da erro se as datas enicio e fim forem iguais se forem datas diferentes ele não da erro.
GOSTEI 0
Joaoshi
25/08/2008
O que esta sendo informado em Inicio.text e Fim.text ?
Lembrando depois do Between tem que ter um espaço.
Antes e depois do AND tem que ter um espaço.
Para passar datas nos comandos SQL deve ser no formato MM/DD/YYYY (mes dia ano), no Firebird para datas no formato DD/MM/YYYY deve ser separadas por . DD.MM.YYYY.
Espero ter ajudado.
Lembrando depois do Between tem que ter um espaço.
Antes e depois do AND tem que ter um espaço.
Para passar datas nos comandos SQL deve ser no formato MM/DD/YYYY (mes dia ano), no Firebird para datas no formato DD/MM/YYYY deve ser separadas por . DD.MM.YYYY.
Espero ter ajudado.
GOSTEI 0
Rodolfo.pirolo
25/08/2008
O que voce pode fazer tambem é colocar as datas como parametros da sua pesquisa.
Aproveitando o seu código ficaria mais ou menos assim:
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between :ddt_ini and :ddt_fim´);
Q_Data.Sql.Params[0].asdatetime := a_sua_data_inicial;
Q_Data.Sql.Params[1].asdatetime := a_sua_data_final;
Q_Date.Open;
Com isto resolve o seu problema de formatação de data.
Abraços
Rodolfo
Aproveitando o seu código ficaria mais ou menos assim:
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between :ddt_ini and :ddt_fim´);
Q_Data.Sql.Params[0].asdatetime := a_sua_data_inicial;
Q_Data.Sql.Params[1].asdatetime := a_sua_data_final;
Q_Date.Open;
Com isto resolve o seu problema de formatação de data.
Abraços
Rodolfo
GOSTEI 0
Jarabeucp
25/08/2008
amigos que me ajudaram nesse problema, ja solucionei o problema, quando solucionei ainda não tinha visto a postagem do amigo [b:56bc545df7]rodolfo.pirolo[/b:56bc545df7] mais a solucionei o problema do mesmo geito que ele indica no post.
se alguem tiver com a mesma duvida a solução do amigo [b:56bc545df7]rodolfo.pirolo[/b:56bc545df7] funciona 100¬.
mais a todos muito obrigado.
se alguem tiver com a mesma duvida a solução do amigo [b:56bc545df7]rodolfo.pirolo[/b:56bc545df7] funciona 100¬.
mais a todos muito obrigado.
GOSTEI 0