Jump to content

dev botao

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


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

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 comment
Share on other sites

  • Moderadores

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 comment
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 comment
Share on other sites

  • 2 weeks later...
  • Consultores
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
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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 comment
Share on other sites

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

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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...