Ir para conteúdo

POWERED BY:

Arquivado

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

augustoacf

pesquisa de data em firebird

Recommended Posts

onde esta o meu erro na pesquisa?eu estou fazendo uma pesquisa em que uma data digita pelo usuario em um DateTimePicker1, se esta pertense a uma fatura entre o periodo de 2 data no banco(firebird)estou usando o seguinte comando :IBQuery3.SQL.Text:=('select * from tb_fatura where sequencial=' + LABEL18.Caption + ' and dataini<= ''' + DateToStr(DateTimePicker1.DateTime) + ''' and datater>= ''' + DateToStr(DateTimePicker1.DateTime) + ''' and faturafechada= ''A''');IBQuery3.open;o erro que esta dando e o seguinte:conversion erro from string "20/02/2005"obs: (20/02/2005 foi a data digitada no datatostr)muito obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega,

 

Depdendendo do banco de dados, é necessário colocar a data no formato mm/dd/aaaa. Use FormatDateTime('mm/dd/yyyy', SuaData) se necessário.

 

Fiz algumas modificações no código para facilitar a leitura. Antes do método open, use ShowMessage(IBQuery3.SQL.Text) para exibir a string formada e analisar melhor a sintaxe.

 

IBQuery3.SQL.Text:=('select * from tb_fatura where sequencial = ' + LABEL18.Caption + ' and dataini<= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ' and datater>= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ' and faturafechada= ' + QuotedStr('A');IBQuery3.open;

LAbel18.Caption sempre terá um valor numérico válido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O firebird trabalha com padrão americano para datas(mes/dia/ano), para usar o nosso padrão substitua as barras por pontos, na hora de inserir no banco e na hora de pesquisar dê um stringreplace(datetostr(data), '/', '.', [rfreplaceall]) na variavel da data ;)

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.