Se o seu problema for ordenar no DBGrid, você não precisaria fazer 
isto na Sentença, faz no DBGrid. Veja esta função abaixo. Ela, 
inclusive, colore o título do Grid de vermelho da coluna ordenada:

Você precisará usar um CDS ligado a Query pra ela funcionar.


procedure OrdenaDataSetGrid(var CDS: TClientDataSet; Column: TColumn; 
var dbgPrin: TDBGrid);
const
  idxDefault = 'DEFAULT_ORDER';
var
  strColumn : string;
  i : integer;
  bolUsed : boolean;
  idOptions : TIndexOptions;
begin

  strColumn := idxDefault;
  if Column.Field.FieldKind in [fkCalculated, fkLookup, fkAggregate, 
fkInternalCalc] then Exit;
  if Column.Field.DataType in [ftBlob, ftMemo] then Exit;
  //
//  for i := 0 to dbgPrin.Columns.Count -1 do dbgPrin.Columns
[i].Title.Font.Style := [];
  for i := 0 to dbgPrin.Columns.Count -1 do
    dbgPrin.Columns[i].Title.Font.Color := clActiveCaption;
  //
  bolUsed := (Column.Field.FieldName = CDS.IndexName);
  //
  CDS.IndexDefs.Update;
  for i := 0 to CDS.IndexDefs.Count - 1 do
  begin
    if CDS.IndexDefs.Items[i].Name = Column.Field.FieldName then
    begin
      strColumn := Column.Field.FieldName;
      case (CDS.IndexDefs.Items[i].Options = [ixDescending]) of
         True : idOptions := [];
         False : idOptions := [ixDescending];
      end;
    end;
  end;
  //
  if (strColumn = idxDefault)  or (bolUsed) then
  begin
    if bolUsed then CDS.DeleteIndex(Column.Field.FieldName);
    try
      CDS.AddIndex(Column.Field.FieldName, Column.Field.FieldName, 
idOptions, '', '', 0);
      strColumn := Column.Field.FieldName;
    except
      if bolUsed then strColumn := idxDefault;
    end;
  end;
  //
  try
   CDS.IndexName := strColumn;
   Column.Title.Font.Color := clRed;
   Column.Title.Caption := Column.Title.Caption;
 //  Column.Title.Font.Style := [fsbold];
  except
   CDS.IndexName := idxDefault;
  end;
  //
end;


[]s



Walter Alves Chagas Junior
Belo Horizonte - MG - Brazil
[EMAIL PROTECTED]
http://www.geocities.com/SiliconValley/Bay/1058
MSN: [EMAIL PROTECTED]
SKYPE: WalterChagasJr


--- Em delphi-br@yahoogrupos.com.br, "Hudson" <[EMAIL PROTECTED]> 
escreveu
>
> Ola gente,
> 
> estou com uma duvida, e gostaria de compartilhar aqui na lista...
> 
> tenho que fazer uma consulta sql like " dados %" em mais de uma 
campo exemplo:
> 
> select * from cliente where dp1 like "'+ Edit1.Text +'%" or dp2 
like "'+ Edit1.Text +'%" or dp3 like "'+ Edit1.Text +'%" or dp4 
like "'+ Edit1.Text +'%" or dp5 like "'+ Edit1.Text +'%" or dp6 
like "'+ Edit1.Text +'%"'
> 
> o problema e que apos feito isso tenho que jogar em uma coluna no 
dbgrid e dar order by......
> 
> alguem ja teve essa duvida, poois não tenho como separar estes 
campos, já tem mais ou mesno 30,000 registro na tabela...
> 
> Atenciosamente Hudson Dias
> www.alcancedigital.com.br
> MSN: [EMAIL PROTECTED]
> Skype: hudson_bh
> Tele: (31)3434-6304
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a