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

(Resolvido) Where no Query


Bettega

Pergunta

Bom dia.

Estou tentando fazer um filtro em uma query.

Tenho :

Uma variável mArq, que é o nome do arquivo a consultar.

4 RadioButton

  if Rb_Igual .Checked then Inicio.mSinal := ' = '  ;
  if Rb_Difer .Checked then Inicio.mSinal := ' <> ' ;
  if Rb_Maior .Checked then Inicio.mSinal := ' >= '  ;
  if Rb_Menor .Checked then Inicio.mSinal := ' <= '  ;

e dois edits

Ed_Campo e Ed_Filtro

Estou tentando fazer desta forma :

    Query1.Close ;
    Query1.SQL.Clear ;
    Query1.SQL.Add ( 'Select * from ' + mArq  ) ;

    Query1.SQL.Add ( 'where ' + Ed_Campo_F.Text + Inicio.mSinal + Ed_Filtro.Text ) ;
 

Já tentei colocar aspas em várias formas diferentes, mas sempre dá erro.

Somente o select sem o where, funciona.

 

Neste caso, a query é para arquivos Paradox. Posteriormente vou fazer para MySQL.

Por esta razão, se forem diferentes, favor postar as duas.

 

Obrigado.


 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tente assim

    Query1.Close ;
    Query1.SQL.Clear ;
    Query1.SQL.Add ( 'Select * from ' + mArq + 'where  ' + Ed_Campo_F.Text + '  ' + Inicio.mSinal + '  ' + Ed_Filtro.Text ) ;

Obs: Vooce deve respeitar os espaçamentos entre  as variaveis.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Invalid use of keyword

Token :=

Line Number: 1.

Verifique a sua variavel  Inicio.mSinal, pois a Select vai receber o conteudo dessa variavel...  ou esta   =  ou esta   :=

ou pode tentar assim

Var S : string;

S := 'Select * from ' + mArq + 'where  ' + Ed_Campo_F.Text + '  ' + Inicio.mSinal + '  ' + Ed_Filtro.Text;

   Query1.Active := false;
   Query1.SQL.Clear;
   Query1.SQL.Append(S);
   Query1.Active := true;

   showmessage(s);

OBS: o showmessage(s)  vai mostrar o conteudo da Select antes de executa-la.

Se houver alguma coisa  que não deveria estar na select, voce tem verificar o conteudo de suas variaveis.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo.

Fiz da seguinte maneira :

 

    Query1.Active := false;
    Query1.Close ;
    Query1.SQL.Clear ;

    Query1.SQL.Add ( 'Select * from ' + mArq ) ;

    if Rb_Igual.Checked then Query1.SQL.Add ( 'where ' + Ed_Campo_F.Text + ' =  "' + Ed_Filtro.Text + '" ' ) ;
    if Rb_Difer.Checked then Query1.SQL.Add ( 'where ' + Ed_Campo_F.Text + ' <> "' + Ed_Filtro.Text + '" ' ) ;
    if Rb_Maior.Checked then Query1.SQL.Add ( 'where ' + Ed_Campo_F.Text + ' >= "' + Ed_Filtro.Text + '" ' ) ;
    if Rb_Menor.Checked then Query1.SQL.Add ( 'where ' + Ed_Campo_F.Text + ' <= "' + Ed_Filtro.Text + '" ' ) ;

    Query1.SQL.Add ( 'order by ' + mIndex ) ;

    Query1.Active := true ;
    Query1.Open ;


A tua dica foi o que me fez ir no caminho certo.

A diferença foi nas aspas duplas.

Quando visualizei no showmessage, vi que faltava algo.

Obrigado,

Bettega.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...