Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Erro em ormbr.dataset.bind
#1
Pessoal tenho o seguinte código:

  containerContaPagar := TContainerFDMemTable<TModelContaPagar>.Create(Fconn.Conn, AQuery);
  containerTipoConta  := TContainerFDMemTable<TModelTIPOCONTA>.Create(Fconn.Conn, AQueryTipoConta, containerContaPagar.This);

O detalhe é que no meu Model do TModelContaPagar tem a seguinte Association:

 [Association(OneToOne,'ID_TIPO_CONTA','TIPO_CONTA','ID')]
 property TIPO_CONTA: TModelTIPOCONTA read FTIPOCONTA write FTIPOCONTA;

Acontece que se eu deixar essa duas linhas descomentadas ele dá erro de access violation que eu ainda não entendi o porque, o erro dá dentro da classe ormbr.dataset.bind
linhha 330 dentro da procedure TBindDataSet.SetFieldToProperty(ADataSet: TDataSet; AObject: TObject); exatamente em   LColumns := TMappingExplorer.GetInstance.GetMappingColumn(AObject.ClassType);
o engraçado que se eu habilitar as duas linhas ele fica passando várias vezes até dar o erro.


Banco Firebird 3.0
Alguma luz?
Responder
#2
(24-05-2018, 12:51 AM)Osiel Gomes Escreveu: Pessoal tenho o seguinte código:

  containerContaPagar := TContainerFDMemTable<TModelContaPagar>.Create(Fconn.Conn, AQuery);
  containerTipoConta  := TContainerFDMemTable<TModelTIPOCONTA>.Create(Fconn.Conn, AQueryTipoConta, containerContaPagar.This);

O detalhe é que no meu Model do TModelContaPagar tem a seguinte Association:

 [Association(OneToOne,'ID_TIPO_CONTA','TIPO_CONTA','ID')]
 property TIPO_CONTA: TModelTIPOCONTA read FTIPOCONTA write FTIPOCONTA;

Acontece que se eu deixar essa duas linhas descomentadas ele dá erro de access violation que eu ainda não entendi o porque, o erro dá dentro da classe ormbr.dataset.bind
linhha 330 dentro da procedure TBindDataSet.SetFieldToProperty(ADataSet: TDataSet; AObject: TObject); exatamente em   LColumns := TMappingExplorer.GetInstance.GetMappingColumn(AObject.ClassType);
o engraçado que se eu habilitar as duas linhas ele fica passando várias vezes até dar o erro.


Banco Firebird 3.0
Alguma luz?

Osiel, a extração de metadata do Firebird 3.0 é diferente das versões anteriores, na unit ormbr.metadata.firebird.pas tem os comandos SQL para extração, para o Firebird 3.0 tem que se criar uma unit ormbr.metadata.firebird3.pas  herdando a classe da seguinte forma TCatalogMetadataFirebird3  = class(TCatalogMetadataFirebird) e testar cada comando para analisar onde mudou
--------------------------------
Isaque Pinheiro
Projeto ORM Brasil
Responder


Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)