Problema ao passar parametros para uma consulta
Fala Galera!
eu estou com problema nesse código:
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?!?!!?
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
Curtidas 0
Respostas
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 :
Espero ter ajudado...
T+
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
21/07/2004
mude
para
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]
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