O Abominável NULL 


Null

Se você esta migrando para o VB e já se deparou com o tipo de dados NULL. Pode ter ficado um tanto confuso.

Afinal o que é NULL. ?  Vamos a definição do HELP:

Null
Um valor que indica dados ausentes ou desconhecidos em um campo. Você pode usar valores Null em expressões. Valores Null podem ser inseridos em campos dos quais informações são desconhecidas, assim como em expressões e consultas.

No Visual Basic, a palavra-chave Null indica um valor Null.

Alguns campos, como aqueles definidos como  contendo a chave primária, não podem conter valores Null.

Entendeu ??? 

Null é diferente de zero(0) , é diferente de uma string vazia ("") , e,  é diferente de uma variável que não foi inicializada (empty); o Null é alguma coisa indefinida...

O comportamento do Null quando usado em expressões pode enganar, vejamos :

    Null - Null      é igual Null  é não igual a zero ( 0 )
    Null + 7           é igual a Null e não igual a 7
   
Null = Null      é igual a Null e não igual a True

Muitas tabelas de banco de dados possuem campos que não contém valor. Um campo que não contém valor pode possuir um Null ( Nulo) ou uma sequência vazia ("").

Um valor Null pode indicar que a informação existe mas é desconhecida,  ou seja , se um campo "Telefone" não contém valores pode indicar que ou o cliente não possui telefone ou que o seu telefone não é conhecido. 

Geralmente usa-se Null para indicar que o campo não contém valores conhecidos. Usamos uma seqência vazia para indicar que , no caso do campo "Telefone",  o cliente não possui telefone.

Para que um valor Null seja inserido em um campo , defina a propriedade Required como Not ( ou deixe a caixa de opção desmarcada) e abandone o campo em branco. 

Para inserir uma sequência vazia atribua aspas duplas sem espaços ao campo. ("").

Para determinar se uma expressão ou campo é Null utilize a função Isnull. Assim para determinar se uma variável possui contém um Null fazemos:

Dim MyVar, MyCheck
MyCheck = IsNull(MyVar)   'Retorna False.

MyVar = ""
MyCheck = IsNull(MyVar)   ' Retorna False.

MyVar = Null
MyCheck = IsNull(MyVar)   ' Retorna True.
Empty

Representa uma variável que ainda não foi iniciada. Para verificar se uma variável possui um valor empty usamos a função IsEmpty. Assim para saber se uma variável foi inicializada temos:

Dim MyVar, MyCheck
MyCheck = IsEmpty(MyVar)   	' Retorna True.

MyVar = Null   ' Assign Null.
MyCheck = IsEmpty(MyVar)   	' Retorna False.

MyVar = Empty   ' atribui um Empty.
MyCheck = IsEmpty(MyVar)  	  ' Retorna True.
vbNullString

Representa uma sequência vazia e não é a mesma coisa que uma string em branco ("") . Geralmente é usada para passagem de parâmetros Null para um função.

Verificando uma sequência vazia

Como podemos então verificar se uma sequência de caracteres está vazia ( ""). Vejamos as possibilidades:

    Dim txt As String
    Dim blank As String

    branco = ""
    If Len(txt) = 0 Then ...   ' é a forma mais rápida
        If txt = vbNullString Then ...
        If txt = "" Then ... 
        If txt = branco Then ...

Se você for atribuir a uma variável o valor de  um campo de uma tabela que contém um Null
poderá obter um erro de execução. Para evitar isso faça o seguinte durante a atribuição:
Variavel = "" & rs!campo   'para variáveis strings
Variavel = 0 & rs!campo   'para variáveis numéricas

VB .NET e o NULL

O VB .NET não suporta Empty (IsEmpty) nem a propagação do NULL . Se você fizer Null +10 no VB .NET vai obter uma  mensagem de erro do tipo incompatível ( Type Mismatch).

É isto ai !!  até a próxima dica...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

     Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti