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] >