Problemas com pesquisa de datas utilizando ADO e Access

Delphi

14/07/2003

Seguinte: tenho um BD Access e estou acessando ele com componentes ADO (Delphi 7).

Minha dúvida é a seguinte: eu quero pesquisar registros que possuam a data anterior a data de hoje. Se eu fizer a consulta diretamente no Access, tipo SELECT DATA WHERE DATA < #DATADEHOJE, a consulta é retornada corretamente. Já no Delphi, por causa do ADO, a consulta não retorna nenhum resultado.

Alguém sabe o que deve ser feito? Já tentei inúmeras formatações para o campo de data e até agora nada resolveu.

Estou usando o componnete TADOQuery.


Gabrielgarcia

Gabrielgarcia

Curtidas 0

Respostas

Wdirley

Wdirley

14/07/2003

Muda o campo no access e no delphi de DATE para texto, desse modo funciona.


GOSTEI 0
Marcelo.c

Marcelo.c

14/07/2003

Acredito que ao colocar a data no formato mm/dd/yy na Query você resolverá seu problema.


GOSTEI 0
Gabrielgarcia

Gabrielgarcia

14/07/2003

Obrigado pela dica. A data em string realmente funciona.

Já a formatação da data em mm/dd/yy continua retornando resultados estranhos. As vezes funciona, as vezes não. Muito estranho.
Mas, mesmo assim, muito obrigado pela dica.


GOSTEI 0
Ilanocf

Ilanocf

14/07/2003

Veja se este exemplos te ajudam:

EXEMPLO 1:

DMDados.ConsCursos.Close;
DMDados.ConsCursos.SQL.Clear;
DMDados.ConsCursos.SQL.Add(´Select * From TB_Concludentes WHERE Colacao LIKE:P1 AND Documentacao=:P2 ORDER BY Aluno, Colacao, Digito, Curso´);
DMDados.ConsCursos.Parameters.ParamByName(´P1´).Value:=StrToDate(Edit2.Text);
DMDados.ConsCursos.Parameters.ParamByName(´P2´).Value:=´Documentação Completa´;
DMDados.ConsCursos.Open;

EXEMPLO 2:

DMDados.ConsCursos.Close;
DMDados.ConsCursos.SQL.Clear;
DMDados.ConsCursos.SQL.Add(´SELECT * FROM TB_Concludentes WHERE Colacao LIKE:P1 ORDER BY Aluno, Colacao, Digito, Curso´);
DMDados.ConsCursos.Parameters.ParamByName(´P1´).Value:=StrToDate(Edit1.Text);
DMDados.ConsCursos.Open;


GOSTEI 0
Gabrielgarcia

Gabrielgarcia

14/07/2003

ilanocf, obrigado pela dica.
Para todos os outros com o mesmo problema, a solução é somente passar a campo data como um parâmetro. Pequeno detalhe, mas que realmente complica a vida de quem é novo com ADO.


GOSTEI 0
POSTAR