Problema ao passar parametros para uma consulta

Delphi

21/07/2004

Fala Galera!
eu estou com problema nesse código:
If CmbOrd1.Text = ´Data / Hora asc´ then Ord1 := ´DATA ASC, HORA ASC´;
If CmbOrd1.Text = ´Data / Hora desc´ then Ord1 := ´DATA DESC, HORA ASC´;
If CmbOrd1.Text = ´Prioridade´ then Ord1 := ´PRIORIDADE DESC´;
If CmbOrd1.Text = ´Situação´ then Ord1 := ´SITUACAO ASC´;

If CmbOrd2.Text = ´Data / Hora asc´ then Ord1 := ´DATA ASC, HORA ASC´;
If CmbOrd2.Text = ´Data / Hora desc´ then Ord1 := ´DATA DESC, HORA ASC´;
If CmbOrd2.Text = ´Prioridade´ then Ord1 := ´PRIORIDADE DESC´;
If CmbOrd2.Text = ´Situação´ then Ord1 := ´SITUACAO ASC´;

OrdCon := Concat(Ord1 + ´, ´ +Ord2);

With Query1 do begin
    Close;
    SQL.Clear;
    SQL.Add(´SELECT DATASOLIC AS DATA, HORASOLIC AS HORA, PRIORIDADE,SERSOLIC AS SERVICO , COD,  SITUACAO, USUARIO, SETOR, TIPO, INFORMATIVO, PDATAEXEC, PHORAEXEC´);
    SQL.Add(´FROM CpdOS where situacao in ("Pendente", "Em Andamento") and DATASOLIC <= :data_atual´);
    SQL.Add(´Order by :Ordem´);
    ParamByName(´data_atual´).asdate := Date;
    ParamByName(´Ordem´).asstring := OrdCon;
    Open;
End;


Aparentemente está tudo Ok, mas qdo eu clico no botão para rodar esse procedimento, me aparece uma mensagem de uso inválido de palavra chave, na linha 3 no ´By´ . Tipo, o delphi tá acusando erro no ´by´ do ´order by´

Alguém poderia me dar uma mãozinha com isso?!?!!?


Bueno

Bueno

Curtidas 0

Respostas

Vinicius2k

Vinicius2k

21/07/2004

Colega,

A cláusula ORDER BY não permite a passagem de parametros, logo seu parametro :Ordem não pode existir...
Sugiro que vc faça desta forma :
SQL.Add(´Order by ´+ OrdCon);


Espero ter ajudado...
T+


GOSTEI 0
Djjunior

Djjunior

21/07/2004

mude

If CmbOrd1.Text = ´Data / Hora asc´ then Ord1 := ´DATA ASC, HORA ASC´;


para

If CmbOrd1.Text = ´Data / Hora asc´ then Ord1 := [b:de56769574]DATASOLIC[/b:de56769574] ASC, [b:de56769574]HORASOLIC ASC[/b:de56769574]´;


os comandos order/group by, (se não me engano o where e having :? ) vc deve utilizar o nome real da coluna e não o alias

caso vc faça uma concatenação de colunas elas devem aparecer da mesma forma no order by que foram concatenadas no select :wink: [/b]


GOSTEI 0
POSTAR