Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ThaisN

Atribuir null a variavel numérica

Recommended Posts

Olá a todos,

 

Tenho um problema simples, mas até agora náo encontrei uma soluçao. Necessito gravar null em uma variavél e passar esse valor a um campo numérico do Oracle.

Si atribui vbnull a variável, o campo fica com 1 e se atribuo vbnullString, o campo fica com 0. O que eu quero é aramazenar realmente NULL e náo um valor. Como faço?

 

Desde já obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nao sei muito VB.

Mas em VB.Net tem.

 

Existe isso ?

 

Dim Variavel As Integer
Variavel = Nothing ' Nothing é o mesmo que nulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nao sei muito VB.

Mas em VB.Net tem.

 

Existe isso ?

 

Dim Variavel As Integer
Variavel = Nothing ' Nothing é o mesmo que nulo.

Obrigada pela resposta.

Eu já tinha provado com Nothing e dá erro. :( Parace que só funciona com objetos no VB...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo quando náo passo valor para a variável que passo para o banco (que em teoria está nula) é gravado o valor 0 e náo null.

 

Alguma outra idéia? :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o oracle não aceite valores nulos, assim como o access. No access, quando declara um campo como numérico, ele automaticamente já fica como 0 se não passar nada.

 

Porque precisa que o valor seja nulo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o oracle não aceite valores nulos, assim como o access. No access, quando declara um campo como numérico, ele automaticamente já fica como 0 se não passar nada.

 

Porque precisa que o valor seja nulo?

 

 

O valor pode ser nulo no Oracle. Se eu faço o Update fora da minha aplicaçao funciona corretamente. Eu preciso que o valor seja nulo porque quando o usuário for consultar o valor incluído/modificado vai aparecer 0 onde náo deveria aparecer valor, o que náo é correto. Além disso, se eu fizer um tratament para mostrar o campo vazio no caso de ser 0 também náo é correto, pois o campo pode realmente ter sido atualizado com 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você deixar o campo em branco ele nao entra como nulo ? No Sql tem a opção de deixar o campo como ALLOW NULL, que é ACEITA NULO.

No Oracle tem ?

 

E se você igualar a variável a DbNull, funciona ? Ou a Null mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, esse campo aceita nulo.

Se eu deixo o campo como nulo ele grava 0.

Se eu coloco vbNull ele grava 1.

Se eu faço´:

variavel = Null

o VB náo aceita. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

No momento eu simplesmente verifico se o meu campo text do formulário está null ou vazio (""). Neste caso, eu náo passo nada para a variavel que actualizo o Oracle e, náo passando nada, grava 0.

O que eu necessito é uma maneira que a variável seja relamente NULL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se tipo você fizer assim:

 

Dim outraVariavel as Integer

If Variavel Is vbNull Or Variavel = 0 Then
   outraVariavel = Null
Else
   outraVariavel = Variavel
End If

Dae você coloca essa "outraVariavel" no Insert.

Sql.CommandText = "Insert Into Tabela(Campo1, Campo2, Campo3) Values ('Oi', 'Tudo'," & outraVariavel & ")"

Nao sei se é assim, estou chutando taah woiewoei =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se tipo você fizer assim:

 

Dim outraVariavel as Integer

If Variavel Is vbNull Or Variavel = 0 Then
   outraVariavel = Null
Else
   outraVariavel = Variavel
End If

Dae você coloca essa "outraVariavel" no Insert.

Sql.CommandText = "Insert Into Tabela(Campo1, Campo2, Campo3) Values ('Oi', 'Tudo'," & outraVariavel & ")"

Nao sei se é assim, estou chutando taah woiewoei =)

 

Não tem Null no VB6

 

--

 

 

Ta inserindo como? Insert? Concatenando os valores ??

 

Tentou

insert into tabela (campo_num) values (null)
???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa postar o código de como está fazendo seu insert.

Se estiver fazendo por string, o que o Scorpio postou funcionará, mas se estiver usando as propriedades addnew e update não.

 

Você disse que está tentando passar o valur nulo para sua variável. Isso não é possível, pois quando declara uma variável como inteiro, se você não adicionar nada a ela, já tem o valor 0 como padrão.

 

Para passar um valor null para seu banco basta nem sequer adicionar a linha.

Por exemplo, vamos supor que esteja fazendo algo assim:


dim i as integer

if text1.text <> "" then
   i = val(text1.text)
end if

rs.adnew
rs("nome") = "Fulano"
rs("quantidade") = i
rs.update

Fazendo dessa maneira, mesmo que o valor da sua text fosse vazio, para o bd você está passando como 0.

Para dar certo teria que fazer algo assim:


dim i as integer

rs.adnew
rs("nome") = "Fulano"

if text1.text <> "" then
   i = val(text1.text)
   rs("quantidade") = i
end if

rs.update

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.