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

Qual a maneira correta de se fazer esse filtro!


-Allan-

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0
formRelResumo.Query1.Filter:= 'DATVCTO, DATVCTO_1 >=' +

QuotedStr(MaskEdit1.Text) + 'and DATVCTO, and DATVCTO_1 <=' +

QuotedStr(MaskEdit2.Text);

Allan, isto está muito confuso.

Vamos observar como ficaria o valor atribuído à Filter, usando o seu código, se tivéssemos os valores das datas:

'DATVCTO, DATVCTO_1 >='+'"01/01/2009"' + 'and DATVCTO, and DATVCTO_1 <=' +'"31/01/2009"'

Agora juntando tudo no string final:

'DATVCTO, DATVCTO_1 >="01/01/2009"and DATVCTO, and DATVCTO_1 <="31/01/2009"'

Observe os campos em vermelho, eles estão "voando" no seu filtro e no "and" destacado, você deve observar que deve haver um espaço antes dele. Da forma como você colocou, ele está grudado à data - se não me engano isto só, já é motivo de erro.

O que seria mais apropriado é que a string do filtro ficasse com esta cara:

'DATVCTO_1 >="01/01/2009" and DATVCTO_1 <="31/01/2009"'

Mas pergunto, se esta sua consulta é para ser usada em um relatório, e você está usando query, por que é que você não faz este filtro na consulta colocada na propriedade SQL do componente?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Eu comecei a programar a pouco tempo, sou iniciante em Delphi, você poderia me mostrar como q eu faria usando SQL!
Allan, pelo componente que você usou (TQuery), você já teve uma introdução dos comandos SQL.

Aconselho você a ler algumas apostilas sobre SQL, o colega Jhonas outro dia indicou este link com algumas opções - veja a de SQL básico.

Deste post em diante, o colega Jhonas dá algumas explicações ao colega António44 sobre como filtrar os dados dentro de um período.

Voce encontrará muitos posts sobre este tipo de filtro, basta pesquisar por between.

Mas leia uma apostila sobre SQL básico, depois procure conhecer mais a fundo o SQL oferecido pelo banco de dados que você utiliza (existem algumas diferenças entre eles).

Tente então, montar sua consulta e se não conseguir, volte a questionar, mas informe sempre o banco de dados em uso, componente de acesso ao banco e nome da tabela e campos em questão, para que algum colega consiga montar um exemplo para melhor explicar sua dúvida.

Abraços

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,4k
×
×
  • Criar Novo...