ORMBr Fórum - Seja bem vindo

Versão Completa: Erro ao Excluir
Esta é uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Já tive este problema antes, atualizei os fontes e parou de acontecer mas depois da instalação com componente não sei se mudou algo nos fontes mas o erro ao excluir esta ocorrendo novamente.  porém atualize hoje os fontes e o erro persiste (Na Verdade não da erro apenas cai no methodo que esta comentado o código) não consigo ver onde esta o erro e porque ele esta enviando para este método, sendo que estava funcionando corretamente  e em algum momento aprontei algo que mudou isto. tem como me dar um socorro???

como estou usando no client:  TFDMemTable

Variável privada no  (Client) : 
           private
            oDataSnapMaster: IContainerDataSet<TSituacaoCadastral>;
          
no metodo excluir (Client) : .
  oDataSnapMaster.Delete();
  if oDataSnapMaster.DataSet.State in [dsInsert,dsEdit] then
    oDataSnapMaster.DataSet.Post;
  oDataSnapMaster.ApplyUpdates(0);

Método onde o código esta indo na depuração

unit ormbr.session.datasnap;

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;
(26-05-2019, 12:00 AM)ailtonbrc Escreveu: [ -> ]Já tive este problema antes, atualizei os fontes e parou de acontecer mas depois da instalação com componente não sei se mudou algo nos fontes mas o erro ao excluir esta ocorrendo novamente.  porém atualize hoje os fontes e o erro persiste (Na Verdade não da erro apenas cai no methodo que esta comentado o código) não consigo ver onde esta o erro e porque ele esta enviando para este método, sendo que estava funcionando corretamente  e em algum momento aprontei algo que mudou isto. tem como me dar um socorro???

como estou usando no client:  TFDMemTable

Variável privada no  (Client) : 
           private
            oDataSnapMaster: IContainerDataSet<TSituacaoCadastral>;
          
no metodo excluir (Client) : .
  oDataSnapMaster.Delete();
  if oDataSnapMaster.DataSet.State in [dsInsert,dsEdit] then
    oDataSnapMaster.DataSet.Post;
  oDataSnapMaster.ApplyUpdates(0);

Método onde o código esta indo na depuração

unit ormbr.session.datasnap;

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;
Bom dia, fiz o teste aqui, e aconteceu um AV, não sei se é isso, mas acabei de subir a correção do que testei, então atualize seus fontes e teste novamente.
(27-05-2019, 10:35 AM)Isaque Pinheiro Escreveu: [ -> ]
(26-05-2019, 12:00 AM)ailtonbrc Escreveu: [ -> ]Já tive este problema antes, atualizei os fontes e parou de acontecer mas depois da instalação com componente não sei se mudou algo nos fontes mas o erro ao excluir esta ocorrendo novamente.  porém atualize hoje os fontes e o erro persiste (Na Verdade não da erro apenas cai no methodo que esta comentado o código) não consigo ver onde esta o erro e porque ele esta enviando para este método, sendo que estava funcionando corretamente  e em algum momento aprontei algo que mudou isto. tem como me dar um socorro???

como estou usando no client:  TFDMemTable

Variável privada no  (Client) : 
           private
            oDataSnapMaster: IContainerDataSet<TSituacaoCadastral>;
          
no metodo excluir (Client) : .
  oDataSnapMaster.Delete();
  if oDataSnapMaster.DataSet.State in [dsInsert,dsEdit] then
    oDataSnapMaster.DataSet.Post;
  oDataSnapMaster.ApplyUpdates(0);

Método onde o código esta indo na depuração

unit ormbr.session.datasnap;

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;
Bom dia, fiz o teste aqui, e aconteceu um AV, não sei se é isso, mas acabei de subir a correção do que testei, então atualize seus fontes e teste novamente.


--->>

 apaguei a pasta baixei a que estava no site https://bitbucket.org/isaquepinheiro/ormbr/downloads/ sReinstalei inclusive desinstalei o componente SetupServerClient_Datasnap deixei a instalação limpa e tentei usar meu sistema, a opção de excluir continua com o mesmo comportamento, mas para tirar a duvida eu criei um exemplo basico limpo para testar para ter certeza que não é no meu sistema o erro. e me deparei coma mesma situação não excluir pois ele tenta passar pelo método 

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;

exemplo do client zipado em anexo  (tentei enviar video mas nao foi aceito aqui no forum)
(27-05-2019, 06:12 PM)ailtonbrc Escreveu: [ -> ]
(27-05-2019, 10:35 AM)Isaque Pinheiro Escreveu: [ -> ]
(26-05-2019, 12:00 AM)ailtonbrc Escreveu: [ -> ]Já tive este problema antes, atualizei os fontes e parou de acontecer mas depois da instalação com componente não sei se mudou algo nos fontes mas o erro ao excluir esta ocorrendo novamente.  porém atualize hoje os fontes e o erro persiste (Na Verdade não da erro apenas cai no methodo que esta comentado o código) não consigo ver onde esta o erro e porque ele esta enviando para este método, sendo que estava funcionando corretamente  e em algum momento aprontei algo que mudou isto. tem como me dar um socorro???

como estou usando no client:  TFDMemTable

Variável privada no  (Client) : 
           private
            oDataSnapMaster: IContainerDataSet<TSituacaoCadastral>;
          
no metodo excluir (Client) : .
  oDataSnapMaster.Delete();
  if oDataSnapMaster.DataSet.State in [dsInsert,dsEdit] then
    oDataSnapMaster.DataSet.Post;
  oDataSnapMaster.ApplyUpdates(0);

Método onde o código esta indo na depuração

unit ormbr.session.datasnap;

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;
Bom dia, fiz o teste aqui, e aconteceu um AV, não sei se é isso, mas acabei de subir a correção do que testei, então atualize seus fontes e teste novamente.


--->>

 apaguei a pasta baixei a que estava no site https://bitbucket.org/isaquepinheiro/ormbr/downloads/ sReinstalei inclusive desinstalei o componente SetupServerClient_Datasnap deixei a instalação limpa e tentei usar meu sistema, a opção de excluir continua com o mesmo comportamento, mas para tirar a duvida eu criei um exemplo basico limpo para testar para ter certeza que não é no meu sistema o erro. e me deparei coma mesma situação não excluir pois ele tenta passar pelo método 

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;

exemplo do client zipado em anexo  (tentei enviar video mas nao foi aceito aqui no forum)

Segue Unit com correção em anexo.
Ok, baixei unit e tudo correu dentro do esperado, funcionando

obrigado