Ver Mensaje Individual
  #4  
Antiguo 24-09-2008
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Reputación: 19
RebeccaGL Va por buen camino
Cita:
Empezado por ingacg Ver Mensaje
Hola!

Estoy desarrollando una aplicación que contiene una base de datos en páradox, a la cual deberán accesar más de una pc conectadas en red, la base está en una de ellas, pero cuando un segundo usuario desea accesar a dicha base el bde manda un error ".lck", supongo el el primer usuario tiene bloquedo el directorio donde se encuentra la bd, si alguien de uds sabe a que se debe y como puedo hacer que la accesen n usuarios a la bd, se lo agradeceré.
Lo que tienes que haces:

Crear un componente TDatabase y un TSession

Luego tienes que direccionar, indicarle a tu sistema donde va a leer el PDOXUSRS.NET Ejemplo.

Session.NetFileDir := c:\
Session.PrivateDirr := c:\Temp

Pero tienes que direccionar de acuerdo a las convenciones de RED

Session.NetFileDir := \\Juan\qwerty\Net
Session.PrivateDirr := \\Juan\qwerty\Temp

Ojo, Todas las aplicaciones deben apuntar a este archivo, al decir aplicaciones me refiero a un mismo programa y no a todos los programas que puedas hacer, osea si tienes un sistema llamado qwerty y lo instalas en tres pc's el sistema qwerty debe apuntar a un solo \qwerty\net\PDOXUSRS.NET al del servidor, pero el qwerty\PrivateDir\Temp es unico para cada sistema no debes compartirlo con ningun otro sistema sino te dara error.

Tienes que reforzar tus tablas creando rutinas de eliminacion y creacion de indices, esto es necesario cuando se te corrompan los indices y se malogren los borras y los rehaces.

Para que tu sistema funcione en red:

Asignas al componente Database y Session asi.
Supongamos que tu PC es el servidor y se llama Juan

Database.Params[0].Path := \\Juan\qwerty
Session.NetFileDir := \\Juan\qwerty\net
Session.PrivateDir := \\Juan\qwerty\Temp

Donde \\Juan es el nombre de tu PC
Ahora si quieres leer las tablas de otra PC por ejemplo la pc de alberto tienes que poner es:

Database.Params[0].Path := \\Alberto\qwerty
Session.NetFileDir := \\Alberto\qwerty\Net
Session.PrivateDir := \\Juan\qwerty\Temp

Ojo no debes redireccionar el PrivateDir ese dejalo donde se ejecuta tu sistema \\Juan\qwerty\Temp

Ahora porque se escribe de esta manera \\Juan\qwerty
Porque segun las convenciones de red asi estan establecidas.

Mira tu Pc se llama Juan
Y lo creaste en c:\Delphi\Proyectos\qwerty

Presionas el boton derecho del mouse y compartes la carpeta qwerty y marcas las dos casillas, ahora solo tendras que poner el nombre de tu PC y la carpeta compartida osea asi: \\Juan\qwerty es una forma abreviada que funciona de acuerdo a las convenciones de red.

Cuando instales tu sistema en otra Pc, tienes que tener ya creado un modulo donde tu le indiques al sistema de donde va a leer las tablas por ejemplo:

Instalas el sistema qwerty en la PC Juan - servidor
Instalas el sistema qwerty en la PC Alberto - cliente
Instalas el sistema qwerty en la PC Pedro - cliente

En la pc Juan el servidor lo dejas como esta.
en las dos siguientes direccionas solo el Session.NetFileDir que apunten a la pc de Juan oseas asi:

PC Juan
[b]Database.Params[0].Path := \\Juan\qwerty
[b]Session.NetFileDir := \\Juan\qwerty\net
[b]Session.PrivateDir := \\Juan\qwerty\Temp

PC Alberto
Database.Params[0].Path := \\Juan\qwerty
Session.NetFileDir := \\Juan\qwerty\net
Session.PrivateDir := \\Alberto\qwerty\Temp

PC Pedro
Database.Params[0].Path := \\Juan\qwerty
Session.NetFileDir := \\Juan\qwerty\net
Session.PrivateDir := \\Pedro\qwerty\Temp

Tambien tienes que crear rutinas de borrado de archivos *.LCK cuando algun usuario resetee la pc, el borrado se realiza en el PrivateDir de cada PC. y Tambien tienes que crearte rutinas de actualizacion de registros, si en la pc de Alberto se ingreso o modifico un nuevo registro este debe reflejarse en forma inmediata en el servidor. usa (CallBacks).

Conclusion:
Tres sistemas iguales puede apuntar a un mismo PDOXUSRS.NET
Mas no el PrivateDir es unico para cada Sistema.

Saludos.

Última edición por RebeccaGL fecha: 24-09-2008 a las 16:02:18.
Responder Con Cita