Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

clube mobile


Cursos grátis para toda base ACBr
+ Promoção Clube Mobile para o ACBr Pro

Saiba mais

adriano santos

click.png

click.png

click.png

click.png

click.png

click.png

Sugestão de alteração na unit pcnConversao.pas


Recommended Posts

Sugiro a seguinte alteração

function EnumeradoToStr2(const t: variant; const AString: array of string ): variant;
// Atencao não Funciona em Alguns Enumerados ja existentes
begin
// Melhorar para testar se o valor consta na string
  IF Not ((VarType(t) = varUnknown) Or (VarType(t) = varNull) Or (VarType(t) = varEmpty)) Then Begin
     result := AString[ integer( t ) ];
  end;
end;

 

Link to post
Share on other sites

Acho que não entendi o objetivo da alteração.

Pode explicar melhor o que ou qual situação precisa ser feita a validação?

Não vai quebrar o código já existente? Tem várias funções que chamam essa rotina.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to post
Share on other sites

É para evitar erro de execução na conversão quando t estiver vazia ou nula, tem situações com leitura do BD que podem gerar t nulo, isto é apenas para adicionar mais uma camada de verificação evitar o erro na execução.

Não irá quebrar o código, é exatamente por ela ser chamada em várias rotinas e com isso dispensar inúmeros testes se t está vazio pelo código. Tem algumas opcoes onde o campo é opcional e aí o valor 

de t será vazio e vai dar erro de conversão no integer (t).

Link to post
Share on other sites
  • 2 weeks later...
Em 28/05/2021 at 16:23, Luiz Neto disse:

É para evitar erro de execução na conversão quando t estiver vazia ou nula, tem situações com leitura do BD que podem gerar t nulo, isto é apenas para adicionar mais uma camada de verificação evitar o erro na execução.

Não irá quebrar o código, é exatamente por ela ser chamada em várias rotinas e com isso dispensar inúmeros testes se t está vazio pelo código. Tem algumas opcoes onde o campo é opcional e aí o valor 

de t será vazio e vai dar erro de conversão no integer (t).

Acho melhor não fazer esse teste na função. Veja bem, se você está chamando a função pra converter, seria melhor que você tivesse certeza da entrada antes.

Por exemplo, se você usar o seguinte comando nativo do Delphi, vai gerar uma exception:

  StrToInt('a');

 

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...