El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario por favorayuda
Desconocido
Enviado - 8/5/2003
 
Hola a todos!!

Alguien podrías ayudarme con lo siguiente:

Acabo de hacer un proyecto el cual es un ejecutable,
éste proyecto en sí es el menú principal.
Desde éste programa (Exe) ejecuto varias dll's, cada una de las
dll's corresponden a algo en particular. Por ejemplo, una dll
de Catalogo, una dll de Ventas... y así hay una serie de dll´s
que yo puedo ejecutar dependiendo de los privilegos de cada usuario.

Pues bien, el problema que tengo en
éstos momentos es que cuando yo entro
al Menú principal llevó acabo la conexión
a la Base de Datos (SQL). Cuando yo ejecuto
o bien deseo accesar a una X pantalla la cual
está incluída en cualquiera de las dll's antes
mencionadas, lo que hago es heredarle la conexión
que traigo desde que accese al sistema, es decir,
la que traigo en el menú principal.
Cuando yo salgo del o de los procesos que ejecute (de la dll)
y posteriormente salgo completamente del sistema
(Salir del ejecutable), no se cierra completamente la aplicación,
se queda colgado algo por allí... yo pienso que se quedan colgadas las pantallas a las cuales accese, es decir,
a las dll's. He tratado de verificar como llevar acabo la terminación total
de éstas pero si la termino por completo como que la conexión que fue heredada
se pierde y después si deseo hace o accesar a
otra pantalla (de la misma dll o de otra) me envia mensaje de que la
conexión no está activa. ¿Alguien podría ayudarme en decirme como cerrar la dll cuando termino de utilizarla tratando de no cerrar la conexión heredada?

Muchas gracias...

Saludos!
 
Desconocido
Enviado - 19/5/2003
 
Cuando tu haces referencia a una dll debes crear una variable objeto creo que tu problema reside o bien que no destruyes las variables objetos o que pierdes referencia a las dll
en tu lugar trataria de ver si destruyo bien las dll referenciadas, no te olvides que cuando tu creas un objeto y destruyes el objeto que le hizo la referencia pero no el objeto referenciado este queda cargado en memoria y no puede acceder a el para destruirlo y por ende te ocupa dicho espacio de memoria y como la memoria es un recurso limitado llega un punto en que se te termina y se clava el sistema.
si en dichas dll accedes a una base de datos que tambien es un ojeto debes destruilo sino tambien te ocupa memoria y como perdiste el puntero o referencia a dicho objeto no podras destruirlo, el la ayuda que biene con visula te dice como se destruye e inician objetos
ej:

hago referencia

*seccion general
dim miclase as clasedll

creo el objeto

private sub form1_load()
set miclase=new tipoclasedll
end sub


destruyo la referencia y el objetro creado

private sub form1_unload()
set miclase=nothing
end sub

*seccion general
dim midatabase as datadase
dim mirecorset as recorset

creo el objeto

private sub form1_load()

set midatabase=opendatabase("base de datos")
set mirecorset=midatabase.openrecorset("tabla o sql")

with mirecorset
....
....
....
....
end with

*Cierro la tabla y la base de datos pero no *esta destruida la referncia

mirecorset.close
midatabase.close

end sub


destruyo la referencia y el objetro creado

private sub form1_unload()
set mirecorset=nothing
set midatabase=nothing
end sub

no olvides que cerrar una base de datos no es lo mismo que destruir la referencia a ella

cualquier duda escrivime a [email protected]
 
 

 

Contactos myStudio Network