Fórum Problema ao passar parametros para uma consulta #243872

21/07/2004

0

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

Responder

Posts

21/07/2004

Vinicius2k

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+


Responder

Gostei + 0

21/07/2004

Djjunior

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]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar