29-03-2019, 04:02 PM
Saudações!
Está ocorrendo um erro quando instancio um TContainerClientDataSet<M> cuja entidade M contenha uma coluna com nome maior que 31 caracteres, conforme exemplo abaixo.
No Dictionary, além de ter o nome grande, a coluna precisa ter um valor default. Sem o valor default o erro não ocorre.
---- Início do exemplo
Classe TPedido:
----
type
[Entity]
[Table('pedido', '')]
[PrimaryKey('codigo', NotInc, NoSort, False, 'Chave primária')]
Tpedido = class(TInterfacedObject, Ipedido)
private
{ Private declarations }
Fcodigo: Integer;
...
Fvalor_outras_despesas_acessorias: Currency;
...
public
...
[Column('valor_outras_despesas_acessorias', ftCurrency)]
[Dictionary('valor_outras_despesas_acessorias', 'Mensagem de validação', '0', '', '', taRightJustify)]
property valor_outras_despesas_acessorias: Currency read Fvalor_outras_despesas_acessorias write Fvalor_outras_despesas_acessorias;
Chamada onde ocorre o erro:
------
FContainerPedido := TContainerClientDataSet<TPedido>.Create(FConn.Conn, qryPedido);
Exception:
------
valor_outras_despesas_acessorias: Preparation of default expression failed with error "Violação de acesso ao endereço 009AE939 no módulo 'MeuServer.exe'. Leitura do endereço 00000034"
---- Fim do exemplo
Alguém já passou por esse problema e tem uma solução?
Está ocorrendo um erro quando instancio um TContainerClientDataSet<M> cuja entidade M contenha uma coluna com nome maior que 31 caracteres, conforme exemplo abaixo.
No Dictionary, além de ter o nome grande, a coluna precisa ter um valor default. Sem o valor default o erro não ocorre.
---- Início do exemplo
Classe TPedido:
----
type
[Entity]
[Table('pedido', '')]
[PrimaryKey('codigo', NotInc, NoSort, False, 'Chave primária')]
Tpedido = class(TInterfacedObject, Ipedido)
private
{ Private declarations }
Fcodigo: Integer;
...
Fvalor_outras_despesas_acessorias: Currency;
...
public
...
[Column('valor_outras_despesas_acessorias', ftCurrency)]
[Dictionary('valor_outras_despesas_acessorias', 'Mensagem de validação', '0', '', '', taRightJustify)]
property valor_outras_despesas_acessorias: Currency read Fvalor_outras_despesas_acessorias write Fvalor_outras_despesas_acessorias;
Chamada onde ocorre o erro:
------
FContainerPedido := TContainerClientDataSet<TPedido>.Create(FConn.Conn, qryPedido);
Exception:
------
valor_outras_despesas_acessorias: Preparation of default expression failed with error "Violação de acesso ao endereço 009AE939 no módulo 'MeuServer.exe'. Leitura do endereço 00000034"
---- Fim do exemplo
Alguém já passou por esse problema e tem uma solução?