Tenho uma procedure que ordena o CDS de acordo com os campos que eu passar no parâmetro. Ele tenta criar o índice. Se já tiver um índice criado, ele monta outro com as mesmas características, só que descendente.
A questão é que não está funcionando direito. Vejam o código. Eu comento onde está o erro.
class procedure TDbUtils.OrderByField(FieldName: string;
DataSet: TClientDataSet);
var
ls_index :string;
ls_IndexName :string;
begin
with DataSet do
begin
//Monta nome do Índice
if Pos(';',FieldName) <> 0 then
ls_IndexName := Copy(FieldName,1,Pos(';',FieldName)-1)
else
ls_IndexName := FieldName;
if IndexName = 'IDX_'+ls_IndexName then
begin
ls_Index := 'IDX_'+ ls_IndexName +'_D';
IndexDefs.Clear;
with IndexDefs.AddIndexDef do
begin
Name := ls_index;
DescFields := FieldName;
Fields := FieldName;
Options := [ixDescending];
end;
IndexName := ls_Index;
end
else
begin
ls_index := 'IDX_'+ ls_IndexName;
IndexDefs.Clear;
(*
Com esse trecho de código funciona. Ele indexa normalmente.
with IndexDefs.AddIndexDef do
begin
Name := ls_index;
Fields := FieldName;
end;
IndexFieldNames := FieldName;
*)
{ Com esse código aqui não funciona }
IndexDefs.Clear;
with IndexDefs.AddIndexDef do
begin
Name := ls_index;
DescFields := '';
Fields := FieldName;
Options := [];
end;
IndexName := ls_Index;
end;
end;
end;
Alguém teria uma sugestão?
Obrigado
Francisco Thiago de Almeida
Enter & Plug Informática
Divisão: Desenvolvimento e Banco de dados
Franca / SP
msn: [EMAIL PROTECTED]
http://enterplug.no-ip.com/sistema_ctrc/
[As partes desta mensagem que não continham texto foram removidas]
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.