Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta SQL em BD Access 2003 com DELPHI 7


Beto Passini

Pergunta

Estou precisando apoio. Minha aplicação necessita consultar uma tabela no BD com a utilização de uma data como parâmetro. O meu problema está no script que devo inserir na String da Query.

A tabela Medicao possui três campos: data_medicao (Data/Hora), medicao1 (Número) e medicao2 (Número). A única forma que eu consegui consultar o campo medicao1 em uma determinada data foi através do seguinte script:

SELECT Medicao.medicao1

FROM Medicao

WHERE (((Format([Medicao.data_medicao],"dd/mm/yyyy"))=#5/28/2008#));

Se utilizado o script da forma como está na String da Query o resultado é positivo. O meu problema é como inserir um parâmetro para o campo data_medicao de forma que o DELPHI reconheça e seja possível fazer a consulta.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Beto Passini'!

Por que você não altera as configuraçõe de data no painel de controle para que fiquem com "dd/mm/yyyy"?

Isto não resolveria seu problema com formatação de data?

Link para o comentário
Compartilhar em outros sites

  • 0

Denis,

Eu já havia tentado verificar as configurações no painel de controle, porém a configuração já está em ""dd/MM/aaaa".

O motivo pelo qual o BD Access precisa receber a data invertida na consulta para retornar o campo solicitado eu não sei.

Fazendo a consulta tanto no Access quanto numa query do Delphi com o script abaixo o retorno é positivo.

Desta forma estou tentando descobrir como inserir um código na query de forma que eu possa incluir um parâmetro que receba uma data informada pelo usuário.

Beto Passini

Link para o comentário
Compartilhar em outros sites

  • 0

Denis,

O formato do campo data_medicao é Data abreviada, que no exemplo do próprio Access para a data de 19 de junho de 1994 é 19/06/1994.

Fiz alguns teste incluindo vários registros com datas diferentes e obtive os seguintes resultados:

1) Ao inserir 06/05/2008 e 05/06/2008 o Access aceitou como datas válidas, porém na consulta o resultado é invertido, ou seja, quando informo 06/05/2008 na consulta o campo retornado da consulta é o da data inserida no access como 05/06/2008 e vice-versa.

2) Ao tentar inserir 05/28/2008 o Access já acerta automáticamente, antes de gravar, para a data 28/05/2008. Neste caso a consulta feita com a data 28/05/2008 ou 05/28/2008 retorna positivamente.

Consegui abreviar a consulta no Access e que na query do Delphi também passa da seguinte forma:

SELECT medicao1

FROM Medicao

WHERE data_medicao = #05/28/2008#;

Vê o que você acha.

Beto Passini

Link para o comentário
Compartilhar em outros sites

  • 0
...

Consegui abreviar a consulta no Access e que na query do Delphi também passa da seguinte forma:

SELECT medicao1

FROM Medicao

WHERE data_medicao = #05/28/2008#;

Vê o que você acha.

Beto,

Trabalho com bancos de dados há muito tempo e sempre adapto minhas variáveis aos formatos que os tipos guardados nos bancos exigem.

Esta posição é a mais correta, na minha visão.

Siga em frente.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá eu uso da seguinte forma:

TABELA.Close;
        TABELA.SQL.Clear;
        TABELA.SQL.Add('Select * From TABELA);
        TABELA.SQL.Add('Where CAMPO_DATA between :Inicial and :Final');
        TABELA.Parameters.ParamByName('Inicial').Value := StrToDate(EDIT1.Text);
        TABELA.Parameters.ParamByName('Final').Value := StrToDate(EDIT2.text);
        TABELAeques.Open;

Neste caso eu tenho dois edit's e coloca uma data em cada um deles e a sql busca todos os registros entre essas duas datas. Para um edit apenas acredito que basta tirar um parametro desse ai...

Abraços... qualquer coisa posta ai

Alexandre

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...