Fórum Dúvida SQL #59847

01/06/2008

0

Saudações delphianas!!!!


Amigos(as), tenho uma tela onde o usuário digita uma determinada queixa e o sistema faz a busca, mostrando os dados no grid.

Primeiramente, estou utilizando delphi 2006 + dbxpress + sqlserver 2000

A rotina é a seguinte:
procedure TfrmQueixas.PesquisaQueixa(vQtde : integer);
begin
with cdsPesquisaQueixa do
begin
close;
CommandText := ´´;
CommandText := ´ SELECT CF_QUEI_COD, CF_QUEI_NOM, ´ +
´ CF_QUEI_CRI_USU, CF_QUEI_CRI_DAT, ´ +
´ CF_QUEI_UAL_USU, CF_QUEI_UAL_DAT, ´ +
´ CF_QUEI_UAC_USU, CF_QUEI_UAC_DAT ´ +
´ FROM CONF_QUEIXA ´;
// vQtde = 0 - Traz todos os registros
// vQtde = 1 - Traz apenas alguns (condição)
if vQtde = 0 then
CommandText := CommandText + ´ ORDER BY CF_QUEI_NOM´
else
CommandText := CommandText + ´ WHERE CF_QUEI_NOM LIKE ´ + QuotedStr(edtQueixa.Text + ´¬´) +
//´ OR CF_QUEI_NOM LIKE ´ + QuotedStr(´¬´ + ´ ´ + edtQueixa.Text + ´ ´ + ´¬´) +
´ OR CF_QUEI_NOM LIKE ´ + QuotedStr(´¬´ + ´ ´ + edtQueixa.Text + ´¬´) +
´ OR CF_QUEI_NOM LIKE ´ + QuotedStr(´¬´ + edtQueixa.Text) +
´ ORDER BY CF_QUEI_NOM´;
open;
if IsEmpty then
begin
edtQueixa.SetFocus;
close;
Application.MessageBox(´Queixa não localizada´, ´Informação´, MB_OK + MB_ICONINFORMATION);
ControlaItensPopup(1); // Desabilita Itens do Poupop
exit;
end
else
begin
btnSelecionar.Enabled := true;
ControlaItensPopup(0); // Habilita Itens do Poupop
end;
end;
end;

Até aí tranquilo. O grande problema está na ordenação, que deve ser feita da seguinte forma:
- ordenar os que começam, por exemplo, por febre; em seguida, por contenham febre, e por último, q terminam por febre.

- Ao invés disso
aa febre
aa febre bbbb
febre
c febre
febre aaaaaa

- Isso
febre
febre aaaaaa
aa febre bbbb
aa febre
c febre

Parece complicado, mas preciso fazer ordenar os dados dessa maneira, e estou encontrando dificuldade para isso.

Fico no aguardo, e qualquer sugestão será bem-vinda.

[]´s


Roger1976

Roger1976

Responder

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

Aceitar