Ir para conteúdo
  • Cadastre-se

[BUG Fix] ACBr_BoletoFR - TClientDataSet.CreateDataSet causa Invalid Parameter no Delphi 12


  • Este tópico foi criado há 255 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá.

Identifiquei um problema na unit ACBrBoletoFCFR.pas, a princípio com o Delphi 12 (não testei as versões anteriores), onde ao colocar o componente no formulário, é disparado o erro "Invalid Parameter".

Analisando o arquivo fonte dessa unit, identifiquei que o erro ocorre em todas as linhas onde haja o comando  <dataseXXXt>.CreateDataSet.

O problema ocorre porque se faz necessário declarar a unit MidasLIb no uses do módulo. Fazendo isso, o componente volta a funcionar normalmente.

ENTRETANTO, isso cria uma dependência enorme da distribuição da midas.dll.

 

O componente TClientDataSet é utilizado aqui apenas para a criação de um dataset somente em memória, sem uma tabela física. Eu acredito que o TClientDataSet possa ser substituido pelo  TFDMemTable, do Firedac, que não cria dependências externas.

 

Peço então aos mantenedores do projeto, que deem uma atenção para esse assunto e, se possível, possam realizar a correção da unit incluindo o MidasLib na sua cláusula Uses, ou realizando a substituição do TClientDataSet pelo TFDMemTable.

 

Desde já agradeço pela cordial atenção.

Francis Lay L. Silva

 

  • Curtir 1
  • Consultores
Postado

e como faria com as demais versões do delphi?

que não tem nativamente o firedac?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Da mesma forma que seria feita com o Lazarus, que não tem nem ClientDataSet ou FireDac.  Adaptar.

No caso do Delphi, é bem mais simples, um #IFDEF resolve o caso, basta checar a versão do compilador. Para compiladores mais recente, poderia utilizar o FireDac sem acoplamento, para versões mais antigas permanece utilizando o ClientDataSet, mas corrigindo a clausula Uses para incluir a MidasLib.

Mas se quiser simplesmente incluir a MidasLib na cláusula uses, não tem problema algum, vai atender todo mundo, e ninguém vai precisar ficar ajustando e recompilando o fonte a cada atualização.

Só sugeri o FireDac porque o MidasLib realmente vai exigir a presença do midas.dll, senão vai dar erro em tempo de execução, e até que alguém se atente que o problema foi ocasionado por um relatório de boleto, quanto tempo vai perder nisso?

Concorda?

  • Consultores
Postado

o problema é que tu limita isso a versão que tem firedac e isso é só nas recentes. como pode notar existem N empresas ainda com delphi 7 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 255 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.