Jump to content

dev botao

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


Luiz Neto
  • Este tópico foi criado há 1218 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á 1218 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.