Fórum FireBird SQL Com Datas #307943

05/01/2006

0

:?: Olá a todos.
Uso FireBird + Delphi7 + ClientDataSet, com campo data da tabela definido como DATE. Verifiquei diversas dicas no Forum, mas não resolvi este problema. No Form uso MaskEdit, configurações regionais está DD.MM.AAAA, mas a rotina abaixo não filtra nem ordena nada.

M_Aux := ´SELECT * FROM PEDIDOSMESTRE A, CLIENTES B ´;

M_Aux := M_Aux + ´WHERE (A.Cli_Cod = B.Cli_Cod) ´;

Dmdados.SqlDtStPedidosMestre.CommandText := M_Aux;

// Data de Entrega
If EdtDtIt.Text = ´ / / ´ then
Begin
M_Aux := M_Aux + ´ And A.Ped_DtEntrega <= ´ + FormatDateTime(´DD.MM.YYYY´, StrToDate(EdtDtF.Text));
end
else
Begin
M_Aux := M_Aux + ´ And A.Ped_DtEntrega >= ´ + FormatDateTime(´DD.MM.YYYY´, StrToDate(EdtDtI.Text));
M_Aux := M_Aux + ´ And A.Ped_DtEntrega <= ´ + FormatDateTime(´DD.MM.YYYY´, StrToDate(EdtDtF.Text));
end;

M_Aux := M_Aux + ´ Order By ´ + A.Ped_DtEntrega + ´ Asc´;

dmdados.CliDtStPedidosMestre.Open;

Obrigado
Neto


Neto

Neto

Responder

Posts

05/01/2006

Gandalf.nho

No Firebird, as datas devem ser passadas como MM/DD/AAAA. Para evitar esse tipo de problema, use parâmetros para passar o valor.


Responder

Gostei + 0

05/01/2006

Neto

Obrigado pela colaboração.
Em alguns testes que fiz, usei parametros com FormatDateTime(...), mas não deu certo.
Poderia me dar um exemplo, usando este caso. Fico agradecido.
Abraços
Neto


Responder

Gostei + 0

06/01/2006

Gandalf.nho

Veja se isso dá uma idéia:

Query1.CommandText := ´SELECT * FROM tabela WHERE campo_data = :data´;
Query1.ParamByName(´data´).AsDate := valor_data;
Query1.Open;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar