Instanciando Objetos
Cuidado ao instanciar variáveis assim:
dim DB as new ADODB.Connection
Nesse caso a primeira vez que for acessada o objeto será carregado automaticamente. Caso você o destrua com set DB = Nothing , na próxima vez que você tentar usar-lo o objeto será carregado novamente, isso pode por algum acidente deixar lixo na memória.
Na maioria dos casos é mais recomendado usar o seguinte modelo:
dim DB as ADODB.Connection
set DB = new ADODB.Connection
Nesse caso o objeto será carregado quando você executar o comando 'set'. No caso do objeto ser destruÃdo por set DB = Nothing , se você tiver que acessa-lo novamente terá que carrega-lo novamente set DB = new ADODB.Connection senão um erro em tempo de execução ocorrerá.
Testes Condicional / IF
Cuidado nos testes, a diferença é pequena mas usar o modelo seguinte é mais lento porque o VB vai acessar a variável 'a' e 'b' mesmo que a variável a não tenha sido verdadeira (vb é burro):
if a = 2 and b =3 then
....
end if
Para evitar esse problema utilize a seguinte forma:
if a = 2 then
if b =3 then
....
end if
end if
A variável 'b' só vair ser acessada caso a primeira condição seja verdadeira.
Booleans
Cuidado:
Utilizar o modelo abaixo é mais lento:
if bolValor = false then
...
endif
Sempre utilize o seguinte modelo:
if not bolValor then
...
end if
if bolValor then
...
end if
IIF
É ótimo usar o IIf mas cuidado, ele pode ser mais de 300% mais lento doque usar a segunte sintaxe:
Sem IIf
if Variavel = "a" then
Variavel = "b"
else
Variavel = "a"
end if
'158 ms
O código fica maior, mas o desempeho também, vale a pena avaliar essa opção em rotinas que estão dentro de um loop, por exemplo.
Com IIf
Variavel = IIf(Variavel = "a", "b", "a")
'515 ms
Modulos e Classes
O Módulo é carregado na memória quando o programa inicia.
O Módulo não pode ser destruÃdo.
A Classe é carregada quando você instancia-la.
Depois de usada a classe pode ser destruÃda utilizando o set x = Nothing.
Utilizem módulos somente quando for estritamente necessário utilizar
váriaveis ou subs/functions globais.
Se alguém não concorda com algo nesse texto ou tem alguma coisa a acrescentar, me mande um email, talvez eu esteja equivocado.
gustavohe@gmail.com.br
Comments (0)
You don't have permission to comment on this page.