erro filtrar data

10/07/2008

0

ola pessoal sou meio novato no delphi to fazendo um rpojeto no delphi 7 componente zeoslib firebird 2.0

fiz uma função para filtrar data por data iniical e final e um combobox onde sera tambem pesquisado o status do cliente esse e um caontas a pagar
mas quando faço a filtragem da erro e esse erro acontece sempre quando filtro com uma data em que o dia e maior que 13 a filtragem e o seguinte codigo

ZQUERY1.SQL.Clear;
ZQUERY1.SQL.Add(´SELECT * FROM RECEBER WHERE DataINI BETWEEN ´ + QuotedStr(MASKEDIT1.Text) + ´ AND ´ + QuotedStr(MASKEDIT2.Text)+´AND STATUS =´´PAGO´´´);
ZQUERY1.Open;

o erro q ocorre e o seguinte

SQL ERRO CONVERSION ERRO FROM STRING 18/07/2008 ERRO CODE OVERFLON OCCURRED DURING DATA TYPE CONVERSION

O QUE SERA ISSO JA ACONTECEU COM ALGUEM OU FIREBIRD É PROBLEMATICAO ASSIM MESMO?


Keliniciante

Keliniciante

Responder

Posts

10/07/2008

Paulo

Passe a data assim:
´2008-18-07´, entre aspas e ver se funciona ou assim:
´07-18-2008´


Responder

10/07/2008

Altingon

Eu sempre uso assim:

ZQUERY1.SQL.Clear;
ZQUERY1.SQL.Add(´SELECT * FROM RECEBER WHERE DataINI BETWEEN :dataini AND :datafim AND STATUS =´´PAGO´´´);
Zquery1.parambyname(´dataini´).asdate := strtodate(MASKEDIT1.Text);
Zquery1.parambyname(´datafim´).asdate := strtodate(MASKEDIT2.Text);
ZQUERY1.Open; 



Responder

11/07/2008

Luiz Henrique

Bom dia KelIniciante

Resolvi estes problemas de passagem de dados para Instrucoes-Firebird com funcoes especificas de conversao, inteiro, double(Real), strings, datas e etc...e nao tive mais dor de cabeca.
Para ilustracao da funcao conversao data(parametro tipo String, tenho por exemplo uma para parametro tipo TDateTime), fiz assim:

function fmtCToDtFB(__data: string): string;
begin
(* A funcao myctod(minha), testa convertendo a data...
para tipo TDateTime...
Sem Data, para nao dar erro, podera passar ´Null´
Logicamente, dependendo do objetivo, podera colocar constraint aqui
e retornar alguma mensagem, exceçao...fique a vontade, este exemplo
e uma ilustracao para mostrar a conversao que uso funcional
*)
if myctod(__data) = 0 then
result:= ´Null´
else
result:= Quotedstr(FormatDateTime(´mm/dd/yyyy´,myctod(__data)));
end;

Retornando sempre: ´mm/dd/yyyy´, padrao FB para datas corretas ou Null se nao informado a data.

Use la na tua SQL:
....Data = ´+fmtCToDtFB(eddata.edittext)...

Nao ficara mais dependente de configuracoes tipo windows por exemplo, ficara sempre com retorno correto.

Espero que te ajude, T+


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar