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
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#3
(24-05-2018, 08:13 AM)Isaque Pinheiro Escreveu:
(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


Boa noite!!!

Isaque eu ainda encontro esse problema e agora na versão Firebird 2.5 e baixei os fontes mais atuais do GIT.
Responder
#4
(25-10-2018, 08:37 PM)Osiel Gomes Escreveu:
(24-05-2018, 08:13 AM)Isaque Pinheiro Escreveu:
(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


Boa noite!!!

Isaque eu ainda encontro esse problema e agora na versão Firebird 2.5 e baixei os fontes mais atuais do GIT.

Vamos lá

Você tem a Classe TModelContasPagar certo e tem a TModelTIPOCONTA que é uma filha dela blz. Agora vc criou o método construtor "Create()" em TModelContasPagar e nele instanciou TModelTIPOCONTA?

Assim:

constructor Create()
begin
   FTIPOCONTA := TModelTIPOCONTA.Create;
end;

dstructor Destroy()
begin
   FTIPOCONTA.Free;
end;

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder


Saltar Fórum:


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