border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 19-02-2008, 01:33:20
Un Nuevo Amigo
 
Registrado: feb 2008
Posts: 16
Diego912 Valoración +2
Predeterminado Duda acerca de ABRIR y CERRAR la DB

Hola comunidad! Hasta ahora venia desarrollando algunas cosas en VB6 y ACCESS 2000 con un metodo de apertura de base de datos que la abria y cerraba (la DB) cada vez que hacia una consulta...

Hoy estuve probando de generar la conexion cuando inicio la aplicacion (en el Form_Load) y cerrarla cuando cierro la aplicacion (en el Form_QueryUnload)... y funcionan mucho mas rapido las consultas, ya que a veces dentro de una consulta incluyo una funcion "getCodigoCliente()" (o similares) que a su vez adentro generan oootra conexion y eso, hecho de la manera relatada en el 1er parrafo, ponia un poco lentas las consultas... y de la manera en que lo hago ahora es mucho mas veloz.

Mi duda es si peligra la integridad de la DB tener mucho tiempo abierta una conexion... O si tiene alguna contra-recomendacion...?

Muchas gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 19-02-2008, 06:21:43
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

La integridad de las bses de datos y de cualquier otro fichero peligra si existen actualizaciones y cortes del suministro eléctrico previo a la descarga del cache, sobre todo porque pueden actualizarse los registros de datos y no hacerlo las tablas de índices o viceversa, con lo que puede quedar en un estado inconsistente.

Esto también puede suceder si la abres, modificas (en ese momento corte eléctrico) y cierras, aunque lógicamente reduces drásticamente la probabilidad de corrupción.

La solución es sencilla, en cada equipo un sistema de alimentación ininterrumpida y sin dudarlo en el equipo servidor; no existe otra opción y no cabe en la cabeza que no se disponga de estos equipos de seguridad relatvamente económicos, a costa de poner en peligro los datos.

Una mala manipulación de la DB y no respetar las recomendaciones del fabricante, pueden también dar 'al traste' con los datos contenidos, pero este si que es un problema ajeno a su comportamiento.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 20-02-2008, 01:43:06
Un Nuevo Amigo
 
Registrado: feb 2008
Posts: 16
Diego912 Valoración +2
Predeterminado

Ahhhh bien... O sea, en resumen: por estar abierta una conexion no se va a dañar... Se dañaria si se corta la luz o algo asi..?
Responder Con Cita
  #4 (permalink)  
Antiguo 20-02-2008, 10:20:06
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.431
J.M.Movilla Valoración +2
Predeterminado

Hola Diego912:

La respuesta que te da Acalanto "La solución es sencilla, en cada equipo un sistema de alimentación ininterrumpida" es primordial. Si quieres tener protegida tu DB es indispensable ante todo disponer de un SAI; es un equipo relativamente barato, que puede considerarse MUY barato si valoramos sus beneficios.

Si tienes esa mínima prevención, ya te aseguro yo que las DB no se dañan por el hecho de tenerlas abiertas todo el día, y accediendo a ellas cientos de usuarios. No es bueno abrirlas y cerrarlas cada vez que hagas una consulta. Otra cosa es el recordset!!! Yo abro la conexión a la/s base/s de datos al iniciar la aplicación y la/s cierro sólo cuando finalizo el programa; pero cada vez que accedo a un nuevo formulario (al menos, a los formularios "hijos de primer rango") abro los recordsets necesarios, y cierro todos al salir de ese formulario, seteándolos a Nothing.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 22-02-2008, 01:56:53
Un Nuevo Amigo
 
Registrado: feb 2008
Posts: 16
Diego912 Valoración +2
Predeterminado

Cita:
Empezado por J.M.Movilla
No es bueno abrirlas y cerrarlas cada vez que hagas una consulta. Otra cosa es el recordset!!! Yo abro la conexión a la/s base/s de datos al iniciar la aplicación y la/s cierro sólo cuando finalizo el programa; pero cada vez que accedo a un nuevo formulario (al menos, a los formularios "hijos de primer rango") abro los recordsets necesarios, y cierro todos al salir de ese formulario, seteándolos a Nothing.
Exactamente asi lo habia hecho ahora... exactamente asi... Antes abria y cerraba conexion todo el tiempo, le quita muchisima performance eso...

Muchas gracias por las respuestas muchachos!!!
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Duda Acerca de como Conectar Base de Datos Eficientemente ¿? dares_ Visual Basic 6.00 1 23-10-2007 18:18:05
Duda acerca de campos de enunciados sql ismaelst Crystal Reports 1 15-02-2007 21:34:36
Duda Acerca de String de Conexión zape Visual Basic 6.00 3 26-12-2006 22:35:41
Cerrar y abrir formularios crow78 Visual Basic.NET 2003 & 2005 3 15-05-2006 16:34:56
abrir y cerrar consola de CD-ROM lord_carcas Visual Basic 6.00 1 24-04-2006 22:41:24


La franja horaria es GMT. Ahora son las 04:34:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right