erro no SQL...

Delphi

18/09/2003

o que tem de errado aqui neste codigo.

query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´SELECT * FROM NASCIMENTOS ORDER BY ´´´ComboBox1.ItemIndex´´´´);
query1.open;

estou tentando colocar uma ordem numa query
usando o componente combobox.
neste combo existe os itens

LIVRO
FOLHA
TERMO
NOME

quando eu clico em LIVRO o programa ordena por LIVRO
quando eu clico em FOLHA o programa ordena por FOLHA
quando eu clico em TERMO o programa ordena por TERMO
quando eu clico em NOME o programa ordena por NOME

mas está dando erro.
o que ten de errado aqui?
como é o código certo?


Anjomd

Anjomd

Curtidas 0

Respostas

Marcelo.c

Marcelo.c

18/09/2003

Tente o seguinte:

No evento [b:dfaae07079]OnCloseUp[/b:dfaae07079] do Combobox:

var i: integer; s: String;
begin
  i:=ComboBox1.ItemIndex; // pega a pos. do item selecionado
  s:=ComboBox1.Items.Strings[i]; // Pega a String da posiçao i
  query1.Close; 
  query1.SQL.Clear; 
  query1.SQL.Add(´SELECT * FROM NASCIMENTOS ORDER BY ´+s); 
  query1.open; 
end;



GOSTEI 0
Adilsond

Adilsond

18/09/2003

Imagino que os campos de sua tabela sejam:

LIVRO,FOLHA,TERMO,NOME --> nesta ordem, mas não necessário o mesmo nome

então o seu sql ficaria assim:
begin
  with Query1 do
    begin
      if Active then
         Close;
      SQL.Clear;
      SQL.Add(´SELECT * FROM NASCIMENTOS ORDER BY ´ + IntToStr(ComboBox1.ItemIndex + 1));
      Open;
    end;
end;



GOSTEI 0
Alessandramorena18

Alessandramorena18

18/09/2003

Tente isso.
:D
case ComboBox_Pesquisa.ItemIndex of
0 :xCampo:=´Campo1´;
1 :xCampo:=´Campo2´;
2 :xCampo:=´Campo3´;
3 :xCampo:=´Campo4´;
end;


SQLDataSet_SA1010.Close;
SQLDataSet_SA1010.Active := false;
SQLDataSet_SA1010.CommandType := ctQuery;
SQLDataSet_SA1010.CommandText := ´SELECT * FROM NASCIMENTO ORDER BY ´+ xCampo +´´;
SQLDataSet_SA1010.Open;


GOSTEI 0
POSTAR