USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Porque devo usar Set variavel = Nothing?
RMI@
CAMPO BELO
MG - BRASIL
ENUNCIADA !
Postada em 14/06/2005 18:45 hs            
Pessoal ainda não compreendi porque devo usar e quais são as variaveis que devo fazer este procedimento. Set variavel = Nothing
Alguém pode me explicar?
 
Obrigado.

EmoçõesRMI
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 14/06/2005 22:58 hs            
Hummm não sei se consigo explicar direito, como se deve mas vá lá...
Talvez eu dê umas (várias) voltas mas acho importante saber então vamos ver se consigo passar a idéia...
 
Algumas "variáveis" possuem métodos, atributos... estas "variáveis" são chamadas de objeto. No visual basic para vc ter acesso a estes métodos e atributos deve-se instanciar estas "variáveis". O que seria instanciar?
Seria como criar um elemento específico de determinada classe...
Por exemplo temos a classe de humanos e eu e vc seriamos uma instância desta classe. Somos uma ocorrência da classe humanos certo?
 
Com objeto é a mesma coisa... há "variáveis" q precisam não apenas ser declaradas mas serem instanciadas para q os seus métodos e atributos sejam usados. Pois o compilador sabe q existe uma variável tipo ADODB.Recordset por exemplo mas não sabe a referência.
Então vc associa o objeto ADODB.Recordset com a "variável objeto" digamos assim:
 
Dim rs as ADODB.Recordset
set rs = new ADODB.Recordset
 
Bom, agora q vc fez esta referência então para desfazer (liberando a memória alocada para isso) vc usa o nothing
 
set rs = nothing
 
Aí a "variável objeto" perdeu a referência com o objeto ADODB.Recordset...
entendeu??
Bom, qq explicação (mais simples, melhor ou corrigindo algo q disse) dos colegas pode esclarecer mais q isso q citei...
 
tentei
 
t+
TÓPICO EDITADO
 
Sandro
não registrado
Postada em 14/06/2005 23:42 hs   
Olá RMI,
 
A explicação do amigo ghost_jlp está perfeita, mas simplificando um pouco, definir uma variável para nothing faz com que o compilador (VB) destrua a variável em memória, liberando o espaço para ser utilizado por outras variáveis e mesmo pelo sistema operacional. Toda vez que você criar uma variável para se referenciar a um objeto, é recomendável usar Set Variavel = Nothing para se ter certeza de que a memória será liberada. Se não fizer isso, você continuará com o espaço alocado numa área de memória e poderá causar um erro de falta de memória, ou ainda "stack overflow", estouro da pilha, que fará com que o seuprograma seja fechado pelo Windows.
As variáveis que NÃO se referenciam a objetos em memória não podem receber a instrução Set Variavel = Nothing.
 
um abraço,
Sandro.
     
RMI@
CAMPO BELO
MG - BRASIL
Postada em 17/06/2005 13:32 hs            
Pessoal obrigado pela ajuda.
 
Quer dizer que se eu declaro...declaro... e não vou "zerando"  (Nothing), vai só "pesando" e ficando mais lento o sistema?
 
Tem como fazer um rotina que verifica quais as variaveis instanciadas e zerá-las sem especificar o nome de cada uma?
 
Obrigado

EmoçõesRMI
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página