Pregunta

Tenemos un sistema basado en MS Access que se basa en los datos de back-end almacenados en la base de datos de MS Access en red. A veces esas bases de datos se corrompen cuando se producen problemas de red al azar. Así que pensamos que habría que añadir algún tipo de proceso que puede disparar de forma rutinaria fuera una reparación compacto y.

El problema es que esta base de datos se utiliza todo el tiempo por varios usuarios, y no hay garantía de saber que un cierto tiempo estará disponible cuando la base de datos no está en uso. Así que mi pregunta (s) son los siguientes.

1) Si la base de datos está siendo c / r'ed cuando una aplicación front-end (MS Access o .NET) intenta conectarse a él, ¿qué pasará? ¿Es esto correcto?

2) ¿Qué recomienda de manera que una buena solución para hacer que el front-end de aplicaciones de todo espera hasta que la base de datos de respaldo Microsoft Access está listo para su uso? El menor número de cambios necesarios para el front-end apps mejor.

Gracias!

¿Fue útil?

Solución

Esta es una cuestión relativamente preguntas más frecuentes, entre los desarrolladores de acceso.

Hay dos partes a la misma:

  1. el código de copia de seguridad y compactar la base de datos, que desea programar en el servidor.

  2. código que usted pone en su extremo delantero para conectarse automáticamente a todo el mundo a la vez que permite que el código en el # 1 para correr.

En general, una oficina sólo está abierta desde, por ejemplo, de 8 am a 6 pm, hora local, por lo que es generalmente seguro patada a todo el mundo la medianoche alrededor de modo que el extremo posterior está disponible para la copia de seguridad y compactación en, por ejemplo, 1am, en preparación para la copia de seguridad del servidor de archivos regular que podría suceder, por ejemplo, a las 2 am.

A VBScript para la copia de seguridad / compacto es relativamente fácil de escribir. Si necesita ayuda con eso, pregunte.

En la parte delantera, usted necesita tener una forma oculta que se abre cuando la aplicación está abierta con un temporizador en él que se ha configurado a patada en la medianoche y cierre la aplicación. Cómo elaborar desea conseguir con eso depende. peligros potenciales serían si un usuario ha iniciado un registro y está en un estado que no puede ser salvado (no reglas de validación por alguna razón). Que puede ser complicado (usted tiene que atrapar por el error, deshacer el registro del tocón y entonces se podría apagar), pero es mejor para diseñar sus aplicaciones para que los usuarios no pueden siempre crear registros que no se pueden guardar.

El punto clave es que usted tiene que planificar los dos extremos de esto, la programación y el cierre de las conexiones que se mantienen en el momento de su copia de seguridad / compacto está programado para ejecutarse.

Otros consejos

Por lo que entiendo, que tiene que compactar automáticamente la base de datos es una mala idea. Si hubo un error recuperable antes de la compactación, podría acabar con una base de datos totalmente ilegible después - que requieren una restauración de copias de seguridad.

1> Si los intentos de front-end para acceder a una base de datos que está siendo compactada / reparado, yo creo que el cliente front-end se cuenta la base de datos no está disponible y es expulsado sin contemplaciones. Creo que podría escribir un controlador de errores para esto, pero que requiere más VBA conocimiento de lo que tienen que ofrecer.

2> Si es posible, cuando se trata de múltiples clientes - un RDBMS en el backend siempre se obtienen mejores resultados, incluso si es Server Express de Microsoft SQL en una máquina Windows repuesto. Los datos se va a tener una mejor oportunidad de no conseguir dañados cuando suceden cosas malas '' (desconexiones de red, bloqueos del cliente, etc.). Un RDBMS con transacciones suele ser una buena ruta para esto.

En cuanto a una solución a esto, me temo que estoy falto de ideas mediante programación. Lo sentimos.

El libro de Garry Robinson sobre seguridad de acceso se ocupa de este problema. Vale la pena leerlo . En la página web de Garry (vb123.com) se vende una caja de herramientas con una serie de administración de seguridad y herramientas incluidas, entre ellos uno que le da a cada estación de trabajo conectada una advertencia y luego se apaga la parte delantera x segundos más tarde.

El libro es:

Base de Datos Mundial de Microsoft Access Protección y Seguridad

Si está trabajando con acceso en un entorno corporativo, es un tener y debe leer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top