Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Campos Nullable
#1
Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!
Responder
#2
(15-03-2019, 03:35 PM)Deivison Davi Albring Escreveu: Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!

Olá, o Nullable tem exatamente essa finalidade de permitir valores NULO, se tiver um valor default, ele perde sua finalidade, o que vc está propondo tem divergência, caso queira um valor padrão, remova o Nullable<> e deixa o delphi de fornecer o valore default que tem no tipos primitivos.

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#3
(19-03-2019, 07:01 AM)Isaque Pinheiro Escreveu:
(15-03-2019, 03:35 PM)Deivison Davi Albring Escreveu: Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!

Olá, o Nullable tem exatamente essa finalidade de permitir valores NULO, se tiver um valor default, ele perde sua finalidade, o que vc está propondo tem divergência, caso queira um valor padrão, remova o Nullable<> e deixa o delphi de fornecer o valore default que tem no tipos primitivos.
Obrigado pela resposta Isaque!


Só pra ver se eu entendi!
Então significa que, sempre que eu tiver um campo um campo nullable que tiver o valor NULL, eu vou conseguir povoar a classe dele, mas nao vou conseguir passar esse valor para uma variável sem o .getValueOrDefault?
Responder
#4
(19-03-2019, 08:29 AM)Deivison Davi Albring Escreveu:
(19-03-2019, 07:01 AM)Isaque Pinheiro Escreveu:
(15-03-2019, 03:35 PM)Deivison Davi Albring Escreveu: Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!

Olá, o Nullable tem exatamente essa finalidade de permitir valores NULO, se tiver um valor default, ele perde sua finalidade, o que vc está propondo tem divergência, caso queira um valor padrão, remova o Nullable<> e deixa o delphi de fornecer o valore default que tem no tipos primitivos.
Obrigado pela resposta Isaque!


Só pra ver se eu entendi!
Então significa que, sempre que eu tiver um campo um campo nullable que tiver o valor NULL, eu vou conseguir povoar a classe dele, mas nao vou conseguir passar esse valor para uma variável sem o .getValueOrDefault?

Sim, ou checar se o valor dele não é null, antes de atribuir o valor dele a um componente ou a uma var que seja ,ou até mesmo definir sua var do mesmo do tipo Nullable<>

  Isaque Pinheiro
  Fundador do Projeto ORM Brasil
  ORMBr SAC - Assine e faça parte dessa história ajudando o projeto a crescer.

Responder
#5
(19-03-2019, 09:58 AM)Isaque Pinheiro Escreveu:
(19-03-2019, 08:29 AM)Deivison Davi Albring Escreveu:
(19-03-2019, 07:01 AM)Isaque Pinheiro Escreveu:
(15-03-2019, 03:35 PM)Deivison Davi Albring Escreveu: Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!

Olá, o Nullable tem exatamente essa finalidade de permitir valores NULO, se tiver um valor default, ele perde sua finalidade, o que vc está propondo tem divergência, caso queira um valor padrão, remova o Nullable<> e deixa o delphi de fornecer o valore default que tem no tipos primitivos.
Obrigado pela resposta Isaque!


Só pra ver se eu entendi!
Então significa que, sempre que eu tiver um campo um campo nullable que tiver o valor NULL, eu vou conseguir povoar a classe dele, mas nao vou conseguir passar esse valor para uma variável sem o .getValueOrDefault?

Sim, ou checar se o valor dele não é null, antes de atribuir o valor dele a um componente ou a uma var que seja ,ou até mesmo definir sua var do mesmo do tipo Nullable<>
Certo, Obrigado!
Responder


Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)