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

Como filtrar registros no DBGRID


Guest --paulo.feitosa --

Pergunta

Guest --paulo.feitosa --

[color="#FF8C00]Olá turma no ScripBrasil, beleza?

Alguém sabe me dizer qual o código para filtrar dados em um banco para aparecer no dbgrig somente os registros que satisfaçam uma condição?

Já tentei com Query1.SQL.ADD(´select * from Arquivo´)

Query1.SQL.ADD(´where CAMPO = :paramentro1´)

Query1.SQL.ADD(´order by CAMPO´)sem sucesso.Obrigado pela ajuda.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Sua Query não deu certo porque você não indicou para ela o que é ":parametro". Tente assim:

Query1.SQL.ADD(´select * from Arquivo´);
Query1.SQL.ADD(´where CAMPO = :paramentro1´);
Query1.SQL.ADD(´order by CAMPO´);
Query1.Params[0].AsFormatoCampo := DadosParaCampo;

Onde "AsFormatoCampo" é o formato do seu campo: String, Float, Integer, Date... E "DadosParaCampo" é o valor variável que "CAMPO" vai receber. Pode ser um Edit ou qualquer outro componente.

Se for usar uma tabela, sete a propriedade Filtered para True, e preencha a propriedade Filter. Exemplo: Table1.Filter := 'CODCLIENTE = 100'.

Editado por Duduh_Capixaba
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --paulo.feitosa --
Sua Query não deu certo porque você não indicou para ela o que é ":parametro". Tente assim:

Query1.SQL.ADD(´select * from Arquivo´);
Query1.SQL.ADD(´where CAMPO = :paramentro1´);
Query1.SQL.ADD(´order by CAMPO´);
Query1.Params[0].AsFormatoCampo := DadosParaCampo;

Onde "AsFormatoCampo" é o formato do seu campo: String, Float, Integer, Date... E "DadosParaCampo" é o valor variável que "CAMPO" vai receber. Pode ser um Edit ou qualquer outro componente.

Se for usar uma tabela, sete a propriedade Filtered para True, e preencha a propriedade Filter. Exemplo: Table1.Filter := 'CODCLIENTE = 100'.

Testei mas não funcionou, mesmo asssim obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

  • 0
Alguém sabe me dizer qual o código para filtrar dados em um banco para aparecer no dbgrig somente os registros que satisfaçam uma condição?

já existem no forum varios posts que exemplificam a sua duvida, de uma olhada

http://scriptbrasil.com.br/forum/index.php...tru%E7%F5es+sql

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Alguém sabe me dizer qual o código para filtrar dados em um banco para aparecer no dbgrig somente os registros que satisfaçam uma condição?

já existem no forum varios posts que exemplificam a sua duvida, de uma olhada

http://scriptbrasil.com.br/forum/index.php...tru%E7%F5es+sql

abraço

Obrigado pela ajuda amigo. Mas não consegui resolver, mesmo incluindo a linha que estava faltando.

Link para o comentário
Compartilhar em outros sites

  • 0
Alguém sabe me dizer qual o código para filtrar dados em um banco para aparecer no dbgrig somente os registros que satisfaçam uma condição?

Já tentei com

Query1.SQL.ADD(´select * from Arquivo´)
Query1.SQL.ADD(´where CAMPO = :paramentro1´)
Query1.SQL.ADD(´order by CAMPO´)
sem sucesso.
paulo.feitosa, vamos começar do início... Tirando aquela bagunça de [colors], fica mais fácil ver o que você postou e sinceramente não me parece que seja o que você tem no seu código. Se for, sequer está compilando, porque as você está utilizando acento agudo (´) para delimitar as strings, ao invés de aspas simples ('), donde resultaria que seu código teria esta cara:
Query1.SQL.ADD('select * from Arquivo')
Query1.SQL.ADD('where CAMPO = :paramentro1')
Query1.SQL.ADD('order by CAMPO')
Entrando na questão do parâmetro, citada pelo colega Duduh_Capixaba, você aparentemente deseja filtrar as informações tendo o CAMPO um valor específico. Pela falta de informação inicial, o colega sugeriu uma passagem de parâmetro de uma forma que não é a aceita pelos componentes da paleta ADO (p.e., params[idx].AsInteger). Neste caso, você deverá tentar da seguinte forma:
Query1.Close;
Query1.SQL.ADD('select * from Arquivo')
Query1.SQL.ADD('where CAMPO = :paramentro1')
Query1.SQL.ADD('order by CAMPO')
Query1.Parameters[0].Value := <valor a ser filtrado>;
Query1.Open;

sendo que onde aparece <valor a ser filtrado> deve ser substituido pela origem da informação que você está utilizando - pode ser um Edit onde o usuário digitou o que deseja filtrar.

Se for fazer uma filtragem de um campo string, tipo o nome de uma pessoa ao algo similar e desejar que esta busca seja parcial, ou seja, o campo contenha em parte de seu conteúdo o valor sendo filtrado, neste caso você terá que usar LIKE no lugar de "=".

É importante lembrar que este ADOQuery deve estar ligada a um Datasouce, que por sua vez está ligado ao DBGrid. Caso contrário, mesmo executando a query, você não vai ver nada.

Como o colega Jhonas já citou, há muitos tópicos sobre este assunto aqui no forum, dê uma pesquisada para ver as possibilidades (são várias).

Por fim, ainda há a possibilidade de não ser nada do que citei, então, tente dar mais informações, como por exemplo:

- qual a mensagem de erro que você recebe? (original - sem tradução);

- o erro ocorre ao compilar o programa ou quando já está em execução;

- tipo dos campos importantes na avaliação do problema.

É este tipo de falta de informação que me fez colocar a pequena nota em destaque na minha assinatura, ali embaixo. :rolleyes:

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