Fórum ClientDataSet + Aggregates + InternalCalc = 2x AcessViolation & AcessViolation in module ntdll.dll & EInvalidPointer #606488
08/11/2019
0
Olá comunidade do Devmedia, Tudo bem com vocês?
Então vim aqui procurar um socorro porque estou com um problema que vem me tirando o sossego , o problema é bem simples imagino,mas não sei o que posso estar fazendo errado,já que sou iniciante em Delphi.
Descrição do problema :
Precisei usar um ClienteDataSet em meu projeto em determinada tela , e nas condições que os erros se apresentam já descobri que o erro está no CDS, pois em testes que executei aqui quando eu não o crio não ocorre estes erros.
Informações gerais:
Delphi : https://i.ibb.co/k8wvg3n/infodelphi.png
Computador : https://i.ibb.co/6ZzkXBG/infocomp.png
Trechos do código
- Criação:
- Fechando o Form:
Propriedades do ClientDataSet:
Somente postei estes trechos de código porque os erros que serão mostrados já ocorrem quando eu apenas abro e fecho o formulário em questão.
Erros ao fechar :
https://i.ibb.co/4FJCfg5/erro1.png
https://i.ibb.co/cTskwCh/erro2.png
https://i.ibb.co/Hd7xZn7/erro3.png
https://i.ibb.co/5MvJtLd/erro-4.png
Então é isso ,se alguém me ajudar ficarei muito agradecido,como dito anteriormente,sou iniciante em Delphi e mesmo que possa ser um problema básico ainda não tenho conhecimento necessário para resolvê-lo.
Então vim aqui procurar um socorro porque estou com um problema que vem me tirando o sossego , o problema é bem simples imagino,mas não sei o que posso estar fazendo errado,já que sou iniciante em Delphi.
Descrição do problema :
Precisei usar um ClienteDataSet em meu projeto em determinada tela , e nas condições que os erros se apresentam já descobri que o erro está no CDS, pois em testes que executei aqui quando eu não o crio não ocorre estes erros.
Informações gerais:
Delphi : https://i.ibb.co/k8wvg3n/infodelphi.png
Computador : https://i.ibb.co/6ZzkXBG/infocomp.png
Trechos do código
- Criação:
procedure TF_FinContaReceber.FormShow(Sender: TObject);
begin
Cds_Lanc.CreateDataSet;
Cds_Lanc.Open;
{...}
end;- Fechando o Form:
procedure TF_FinContaReceber.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Cds_Lanc.Close;
{...}
Action := caFree;
end;
procedure TF_FinContaReceber.FormDestroy(Sender: TObject);
begin
F_FinContaReceber := nil;
end;
Propriedades do ClientDataSet:
object Cds_Lanc: TClientDataSet
Aggregates = <>
AggregatesActive = True
FieldDefs = <>
IndexDefs = <>
Params = <>
StoreDefs = True
OnCalcFields = Cds_LancCalcFields
Left = 32
Top = 389
object Cds_LancSequencialLanc: TIntegerField
FieldName = 'SequencialLanc'
end
object Cds_Lancflag: TStringField
DisplayLabel = 'X'
FieldName = 'flag'
Size = 1
end
object Cds_LancVencimento: TDateField
FieldName = 'Vencimento'
end
object Cds_LancCodEnti: TIntegerField
FieldName = 'CodEnti'
end
object Cds_LancEntidadeNome: TStringField
FieldName = 'EntidadeNome'
Size = 67
end
object Cds_LancReferencia: TStringField
FieldName = 'Referencia'
Size = 65
end
object Cds_LancValor: TFloatField
DefaultExpression = '0'
FieldName = 'Valor'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancJuros: TFloatField
DefaultExpression = '0'
FieldName = 'Juros'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancDesconto: TFloatField
DefaultExpression = '0'
FieldName = 'Desconto'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancValorReceber: TFloatField
DefaultExpression = '0'
FieldKind = fkInternalCalc
FieldName = 'ValorReceber'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancSelecTotal: TFloatField
FieldKind = fkInternalCalc
FieldName = 'SelecTotal'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancSelecJuros: TFloatField
FieldKind = fkInternalCalc
FieldName = 'SelecJuros'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancSelecDesc: TFloatField
FieldKind = fkInternalCalc
FieldName = 'SelecDesc'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancSelecValor: TFloatField
FieldKind = fkInternalCalc
FieldName = 'SelecValor'
DisplayFormat = '#,###,###,##0.00'
end
object Cds_LancVendaCod: TIntegerField
FieldName = 'VendaCod'
end
object Cds_LancDataPagto: TDateField
FieldName = 'DataPagto'
end
object Cds_LancParcela: TStringField
FieldName = 'Parcela'
Size = 6
end
object Cds_LancDataEmissao: TDateField
FieldName = 'DataEmissao'
end
object Cds_LancFormaPagto: TStringField
FieldName = 'FormaPagto'
Size = 40
end
object Cds_LancCPFCNPJ: TStringField
FieldName = 'CPFCNPJ'
Size = 32
end
object Cds_LancDocumento: TStringField
FieldName = 'Documento'
Size = 15
end
object Cds_LancTotValor: TAggregateField
FieldName = 'TotValor'
Active = True
DisplayName = ''
DisplayFormat = '#,###,###,##0.00'
Expression = 'Sum(SelecValor)'
end
object Cds_LancTotReceber: TAggregateField
FieldName = 'TotReceber'
Active = True
DisplayName = ''
DisplayFormat = '#,###,###,##0.00'
Expression = 'Sum(SelecTotal)'
end
object Cds_LancTotDesc: TAggregateField
FieldName = 'TotDesc'
Active = True
DisplayName = ''
DisplayFormat = '#,###,###,##0.00'
Expression = 'Sum(SelecDesc)'
end
object Cds_LancTotJuros: TAggregateField
FieldName = 'TotJuros'
Active = True
DisplayName = ''
DisplayFormat = '#,###,###,##0.00'
Expression = 'Sum(SelecJuros)'
end
end
Somente postei estes trechos de código porque os erros que serão mostrados já ocorrem quando eu apenas abro e fecho o formulário em questão.
Erros ao fechar :
https://i.ibb.co/4FJCfg5/erro1.png
https://i.ibb.co/cTskwCh/erro2.png
https://i.ibb.co/Hd7xZn7/erro3.png
https://i.ibb.co/5MvJtLd/erro-4.png
Então é isso ,se alguém me ajudar ficarei muito agradecido,como dito anteriormente,sou iniciante em Delphi e mesmo que possa ser um problema básico ainda não tenho conhecimento necessário para resolvê-lo.
Isaias Souza
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)