Veran, pues estoy dandome el tiempo de crear un Aplicacion simple con una base de datos en acces.
La base de datos, en acces, se encuentra en una "PC" llamado "Server" y que tengo otras 5 "PC's" que se llamaran, Cliente01, CLiente02,...... y Cliente05.
Mi Objetivo es que Las "PC's CLientes" obtengan datos de la Base de datos que se encuentra en la "PC Server".
Pues he probado con una simple aplicacion donde tengo la base de datos en acces que almacena:
Tabla: Empleados
Campos: Nombre, apellidos, cargo, telefono y direccion.
Pues he creado una simple aplicacion usando DATA's
Código:
Data1.BaseName
Data1.Recorset
Data1.AddNew
Data.Edit
Data1.Update
Etc, ect y ect. Es decir conexion permanente
Pues una ves ejecutado la aplicacion mis Textbox se cargan con los campos que quiero ya que estan enlazados a mi DATA
Pues luego compilo la aplicacion y la instalo en las 5 "PC's Cliente"
y al ejecutar puedo obtener los datos en las 5 "PC's Clientes" a la ves o al mismo tiempo
Pues llegue a lo que queria! Obtener datos de la Base de datos "Trabajo" que se encuentra en la "PC Server"
¡¡¡¡He aqui mi inquietud!!!!!
Si bien es cierto que he llegado a mi objetivo y bien por ello, pero a la ves siento una curiosidad sobre lo que estara pasando interiormente y de ahi a este tema.
1.- Me preguntaba si todas las PC's Clientes que estan conectadas a la base de datos "Trabajo" ¿habra algun problema?. Es decir si CLientes1 esta en el registro 5 y Clientes2 tambien esta en el registro 5, que estara pasando?
Sera correcto esto o talves luego de estar manipulando con la PC clientes1 y clientes2 llegue a estropear la base de datos. o supongamos que PC Cliente1 se le ocurre modificar el telefono del empleado Juan y, tambien, PC Cliente2 esta modificando el telefono del empleado juan.
¿Que ocurrira si ambos estan conectados a la base de datos con un DATA y modifiquen con:?
Código:
Data1.Recorsed.Edit
Simplemente digo: Habra algun problema o no pasa nada. Simplemete si Cliente1 cambia el telefono del empleado Juan por 3885017 y luego lo guarda con:
Código:
Data1.Recorsed.UpDate
Y despues cliente2 tambien cambia el telefono del empleado Juan por 3885017 y lo guarda. ¿no pasa nada, porque no ocurre ningun problema, porque si Cliente1 lo guarda pues cliente 2 tambien lo guarda ensima y ya?..
Por todo ello pensaba probrar de la siguente manera mediante:
Código:
Cn.Open ("etc, etc, etc=" \\SERVER\D\Trabajo.mdb")
Rs.Open "select * from Empleados ", Cn, etc, etc, ect etc
Primero abro la base de datos:
Tomo los datos que necesito
cierro la base de dato
Si trabajara de esta manera creo que no tendria problemas, ya que si CLiente1 se conecta a la BD, pues para cuando cliente2 se conecte a la BD encontrara cerrara la BD y podra comunicarse sin ningun problema. Y asi sucesivamente.
Pues asi todas las "PC clientes" estaran trabajando solo con tados obtenidos y no como el caso anterior que siempre estaba conectado a la BD mediente un DATA.
Pero tambien pensaba lo tedioso que es este segundo caso:
1.- Para empezar si tengo mil registros, pues estaria conectandome ala BD y cargar a mi aplicacion en un tabla temporal los mil registros. y para cada tabla seria lo mismo. tedioso, no?.
2- Cada ves que modifique un dato tendria que conectarme a la BD, guardar el dato modificado y cargar nuevamente los datos en una tabla temporal de mi aplicacion y desconectarmen de la BD para que los demas PC Clientes se conecten y no me encuentren cotilleando ahi y producir un posible error. Aparte de ello si despues de haber modificado el dato los demas "PC Clientes" no se enteraran de lo modificado hasta que se conecten a la BD y carguen los datos nuvamente, ¿no?.
Veran amigos todo lo que escribi este desde mi punto personal:
De ahi mi inquietud hacia uds. para que me saquen de esta duda: simplemente espero sugerencias o como uds. ya saben de estas cosas.
02 simples preguntas hacia uds.
1.- ¿Si utilizo el primer caso habra algun problema como pienzo o no pasa nada y lo dejo asi?
2.- ¿Si el primer caso es incorrecto, seria recomendable tomar el segundo caso de abrir y cerrar la BD inmediatamente o existe otra manera?
Saludos,
Pedro Jeri