ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[Resolvido]access violation

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
DiogoDF83
Novato
Novato


Registrado: Sexta-Feira, 19 de Novembro de 2021
Mensagens: 20

MensagemEnviada: Qui Mar 17, 2022 5:33 pm    Assunto: [Resolvido]access violation Responder com Citação

Boa tarde pessoal
abaixo tenho o seguinte código para ordenar peli titulo do DBGRID

mas aparece um erro
nessa linha:

Código:

PedidosDst.AddIndex(Column.Field.FieldName, Column.Field.FieldName, [], '', '', 0)


erro d acces violation

Alguem poderia me dar uma ajuda?

Código:

var
  OrdenaDescAnt: Boolean;
  Idx: TIndexDef;
  PedidosDst: TClientDataSet;
begin
  PedidosDst := TClientDataSet(DataSource.DataSet);

  if not PedidosDst.Active then
     Abort;

  PedidosDst.IndexDefs.Update;

  if ColunaOrdenada <then> -1 then
    Idx := PedidosDst.IndexDefs.Find(Column.Field.FieldName)
  else
    Idx := nil;

  // Se estava configurado para ordem descendente ou se clicou em uma coluna diferente da anterior
  // Então ordena de forma ascendente
  if OrdenaDescAnt or (ColunaOrdenada <> Column.Field.FieldName) then
    begin
    // se index não estiver criado então adiciona, senão remove configuração descendente
    if (Idx = nil) then
      PedidosDst.AddIndex(Column.Field.FieldName, Column.Field.FieldName, [], '', '', 0)
    else
      Idx.Options := Idx.Options - [ixdescending];
    end
  else
    begin
    //se index não estiver criado então adiciona, senão adiciona configuração descendente
    if (Idx = nil) then
      PedidosDst.AddIndex(Column.Field.FieldName, Column.Field.FieldName, [ixdescending], '', '', 0)
    else
      Idx.Options := Idx.Options + [ixdescending];
    end;

  ColunaOrdenada := Column.Field.FieldName;
  PedidosDst.IndexName := Column.Field.FieldName;


Editado pela última vez por DiogoDF83 em Ter Mar 29, 2022 9:55 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Dom Mar 20, 2022 4:08 pm    Assunto: Responder com Citação

Access violation ocorre quando você tenta acessar um objeto que não existe, seja porque não foi criado ou foi criado e destruído e você esta tentando acessar este objeto destruído.

Execute o seu sistema com breakpoint e verifique cada linha de código.


Qualquer coisa volte a postar


Boa sorte!
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB