Saltar para o conteúdo principal
Versão: Próximo

Null

Null -> Resultado

ParâmetroTipoDescrição
ResultadoNull🡐Null value

Descrição

Null devolve o valor null de tipo null.

Esta função permite afetar ou comparar o valor null dos seguintes elementos da linguagem 4D:

Elementos da linguagemComentários
Valores de propriedades de objetosA comparação de Null com uma propriedade de objeto devolvido True se o valor da propriedade for null, senão false. Para simplificar o código, comparar Null também retorna true se a propriedade não existir no objeto (ou seja Undefined), ver exemplo 4.
Elementos de coleçõesQuando uma coleção for expandida adicionando elementos não adjacentes, todos os elementos intermediários obtêm automaticamente o valor null.
Variáveis de tipo objeto (C_OBJECT)Ver (*) abaixo
Variáveis de tipo coleção (C_COLLECTION)Ver (*) abaixo
Variáveis de tipo ponteiro (C_POINTER)Ver (*) abaixo
Variáveis de tipo imagem (C_PICTURE)(*) Atribuir o valor null a uma variável deste tipo apaga seu conteúdo. Neste caso, tem o mesmo efeito que chamar ao comando CLEAR VARIABLE
Variáveis variant (C_VARIANT)

Nota: este comando não pode ser utilizado com campos escalares do banco de dados. Os valores Null nos campos do banco de dados são gerenciados pelo motor SQL e são gestionados através dos comandos Is field value Null e SET FIELD VALUE NULL.

Exemplo 1

Se quiser atribuir e testar o valor null com as propriedades dos objetos:

 var vEmp : Object
 vEmp:=New object
 vEmp.name:="Smith"
 vEmp.children:=Null
 
 If(vEmp.children=Null) //true
 End if
 If(vEmp.name=Null) //false
 End if
 If(vEmp.parent=Null) //true
 End if

Nota: este exemplo requer que a notação objeto esteja ativada no banco de dados.

Exemplo 2

Se quiser atribuir e comparar o valor null a um elemento coleção:

 var myCol : Collection
 myCol:=New collection(10;20;Null)
 ...
 If(myCol[2]=Null)
  // se o 3ro elemento for  null
    ...
 End if

Exemplo 3

Esses exemplos mostram as várias formas de atribuir ou comaprar o valor null a variáveis:

  //variável objeto
 var $o : Object
 $o:=New object
 $o:=Null //equivalente a CLEAR VARIABLE($o)
 If($o#Null) //equivalente a If (OB Is defined($o))
 End if
  //variável coleção
 var $c : Collection
 $c:=New collection
 $c:=Null //equivalente a CLEAR VARIABLE($c)
 If($c#Null)
 End if
  //variável ponteiro
 var $p : Pointer
 $p:=->$v
 $p:=Null //equivalente a CLEAR VARIABLE($p)
 If($p=Null) //equivalente a If (Is Nil pointer($p))
 End if
  //Variável imagem
 var $i : Picture
 $i:=$vpicture
 $i:=Null //equivalente a CLEAR VARIABLE($i)
 If($i#Null) //equivalente a If (Picture size($i)#0)
 End if

Exemplo 4

Abaixo os diferentes resultados do comando Undefined assim como do comando Null com propriedades de objeto, dependendo do contexto:

 var vEmp : Object
 vEmp:=New object
 vEmp.name:="Smith"
 vEmp.children:=Null
 
 $undefined:=Null(vEmp.name) // False
 $null:=(vEmp.name=Null) //False
 
 $undefined:=Null(vEmp.children) // False
 $null:=(vEmp.children=Null) //True
 
 $undefined:=Null(vEmp.parent) // True
 $null:=(vEmp.parent=Null) //True

Ver também

Is field value Null
OB SET NULL
SET FIELD VALUE NULL