Multiusuario

Hola experto!... Mira, tengo una aplicación en Delphi que trabaja con una base de datos hecha en access... Pero necesito que esta aplicación ahora funcione en modo multiusuario, ya que se sumaran 3 clientes más(antes solo era local), ¿qué necesito hacer?... ¿Debo poner la base de datos en algún servidor?... ¿Y qué modificaciones le tendría que hacer a las aplicaciones clientes?.. En fin, ojala puedas orientarme...
Gracias.
Respuesta
1
En principio no tienes porque hacer ningún cambio, la aplicación funcionara igual de bien en 1 o 3 estaciones, mientras no abras la base de datos en modo exclusivo. El principal problema que te puedes encontrar es que trabajando 3 o más estaciones con una base de datos de access es que esta se dañe debido a errores en la red o a su tamaño excesivo o simplemente con el transcurrir del tiempo. Deberás tener mucho cuidado con ello. Si ves que la base de datos crece demasiado deprisa es que la cosa va mal. Entonces quizás necesites plantearte pasar a un gestor más potente como MSDE, que también es gratuito. En cuanto a aplicación lo que deberías controlar es el tema de la concurrencia, ¿qué pasara si dos estaciones modifican los mismos datos al mismo tiempo? Es algo que te recomiendo que controles a nivel de aplicación, si es que esta situación es susceptible de darse. Te he planteado los principales problemas que puedes encontrarte, para cualquier aclaración más concreta ya sabes donde encontrarme.

2 respuestas más de otros expertos

Respuesta
1
Gracias por lo de experto pero creo que esa palabra es un poco compleja de analizar, porque, si soy experto ¿por qué sigo aprendiendo? :-). Bueno, a ver si te puedo ayudar. Access es un sgbd (sistema gestor de base de datos) que no se orientó a la red y sí a su funcionamiento como local. No obstante, creo recordar que posee algunas opciones de configuración para evitar que dos usuarios accedan a la vez a un mismo recurso (bueno, lo que se conoce como concurrencia) pero como te digo no me acuerdo qué opción es (en la ayuda seguro que viene). Respecto a la aplicación, tienes que tener en cuenta que si está pensada para trabajar en local y con un usuario el hecho de que seas capaz de hacerla multiusuario dependerá, suponiendo que poseas el código, de tus conocimientos en el control de la concurrencia en Delphi, ya que, además de controlar los accesos a la bd tendrás que tener cuidado en los resultados de la aplicación. En fin, yo creo que es tarea compleja (refactorización del código, introducción de nuevos módulos de control de acceso, modificaciones en el módulo de bd) pasar de una aplicación (digamos de tamaño mediano) que trabaja en un entorno local a uno en red y puede ser posible que no merezca la pena aventurarse (esto debes evaluarlo tu) si estás solo(a) en el proyecto y puede ser posible que diseñando una nueva aplicación basada en la anterior pero orientada a red (control de acceso, use un sgbd orientado a red cliente/servidor como Sybase) ahorres trabajo. Bueno, quizás no era lo que esperabas pero es mi punto de vista.
Respuesta
1
Si tienes que tener una servidor para que ahí tengas la bd y las demás maquina busquen la info en cada maquina configura el odbc a la maquina que la tienes. Y podes poner un timer para que refresque la tabla en un cierto tiempo.
Y las modificaciones que tienes que hacerle en los clientes es que actualicen los registro cada tanto para que actualicen los datos.
Bueno espero haberte sido de ayuda

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas