Mais de uma opção na adoquery

Delphi

24/10/2018

Amigos, na minha tabela "Pessoas" tenho uma coluna para "status", que é preenchida por uma combobox com os itens "ativo, inativo, impossibilitado e desligado"
Quando a pessoa está com o status "desligado" é porque não faz mais parte do quadro de alunos. Mas se tiver ativo, inativo ou impossibilitado, ainda faz parte.

Pois bem, preciso de uma consulta que me retorne os nomes dos que fazem parte num dbgrid. Ou seja, todos os que estão ativos, inativos ou impossibilitados.

Fiz assim:

if Combobox1.Text = 'Membros' then
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.add('select * from CadPessoas');
AdoQuery1.SQL.add('where status = :ativo and :inativo and :impossibilitado');
AdoQuery1.SQL.add('Order by Nome');
AdoQuery1.Open
end;


Mas não dá certo. Retorna mensagem dizendo que as informações são inconsistentes ou incompletas.

Alguém pode me ajudar com esse código?
Edilson Santiago

Edilson Santiago

Curtidas 0

Respostas

Natanael Ferreira

Natanael Ferreira

24/10/2018

Coloque na condição da SQL para mostrar todos diferentes de 'desligado'.

 if Combobox1.Text = 'Membros' then
  begin
    AdoQuery1.Close;
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.add('select * from CadPessoas');
    AdoQuery1.SQL.add('where status <> ' + QuotedStr('desligado')); // Alterei esta linha
    AdoQuery1.SQL.add('Order by Nome');
    AdoQuery1.Open
  end;
GOSTEI 0
Edilson Santiago

Edilson Santiago

24/10/2018

Coloque na condição da SQL para mostrar todos diferentes de 'desligado'.

 if Combobox1.Text = 'Membros' then
  begin
    AdoQuery1.Close;
    AdoQuery1.SQL.Clear;
    AdoQuery1.SQL.add('select * from CadPessoas');
    AdoQuery1.SQL.add('where status <> ' + QuotedStr('desligado')); // Alterei esta linha
    AdoQuery1.SQL.add('Order by Nome');
    AdoQuery1.Open
  end;


Não consigo, pois tenho dois tipos de desligado, um a pedido e outro por abandono.
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

24/10/2018

Teste desta outra maneira:

if ComboBox1.Text = 'Membros' then
  begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.add('select * from CadPessoas');
    ADOQuery1.SQL.add('where status = ' + QuotedStr('ativo'));
    ADOQuery1.SQL.add(' or status = ' + QuotedStr('inativo'));
    ADOQuery1.SQL.add(' or status = ' + QuotedStr('impossibilitado'));
    ADOQuery1.SQL.add('Order by Nome');
    ADOQuery1.Open
  end;
GOSTEI 0
POSTAR