![]() |
Páradox En Red
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é. |
Hola ingacg, parece que no tienes bien la configuración para el trabajo en red, leete este truco del club que te explica como hacerlo.
http://www.clubdelphi.com/vertruco.php?id=265 Saludos |
Prueba en esta dirección de un tema que ya se trato en el anterior historico, pero asegurate de tener bien configurado todos los equipos de la red donde va a correr el programa.
http://www.clubdelphi.com/foros/arch...t=ayuda+en+red Un saludo desde Canarias. |
Muchas gracias por haberse tomado la molestia de contestar mi pregunta, hecharé un vistaso a las ligas que me dicen y más tarde les inforaré cómo me fué. Espero poderles devolver el favor en futuras dudas que tengan.
---Pues efectivamente, eso era todo, de nuevo gracias, ya corre mi aplicación!---- Saludos desde México. |
hola amigos
amigos del foro quiero pedierles si serian tan amables de los link que estan mas arriba los pusieran a funcionar ya que tambien me intereza este tema :) gracias.
|
Hola
Debes compartir en un equipo una carpeta donde alojaras el archivo pdoxusers.net por ejemplo "red" Para trabajar en red las tablas paradox debes configurar el bdeadministrator en forma adecuada Vas a encontrar una pestaña que dice configuration, dentro de ella una opcion que dice Drivers y dentro de drivers Native, dentro de esta encontraras Paradox, esto es lo que queremos configurar En el panel derecho encontraras NET DIR "direccion de red" en este campo debes digitar la direccion de la carpeta creada, debes tener en cuenta que en el equipo donde esta creada la carpeta compartida la direccion debe ser igual al del resto de la red Te doy un ejemplo con un equipo llamado servidor \\servidor\red tambien puedes digitar la ip del servidor \\192.168.0.23\red servidor nombre del equipo donde compartiste la carpeta red este equipo siempre debe estar encendido indiferentemente que sea el servidor de la red o no Algo mas dentro de Configuration encontraras tambien "System" dentro de el "INIT" en el panel derecho encontraras LOCAL SHARE para la maquina donde tienes la base de datos paradox debe estar en TRUE para los demas equipos nodos que accesan a dicha base de datos debe estar en FALSE No dejes de leer lo que te han recomendado, vas a encontrar otras cosas que te pueden mejorar el rendimiento Consejo, si puedes migrate a firebird o interbase, son realmente bases de datos mucho mas estables que paradox:) |
gracias por haberme respondido
Cita:
mi amigo gracias por haberme respondido, pero quiero hacerte una pregunta, al momento de poner nuestra carpeta en red de forma compartida, y pongamos de ejemplo que una persona de mi compañia quiera aceder a mis bases de datos, y copiarla o hacer un desacato de informacion, que puedo hacer para que las personas no pongan ejemplo en el explorador \\server y ahi busque la carpeta de la bd compartida y me copie mi informacion o me haga desacato valga la redundancia? puedo poner la carpeta en modo oculto? o dime k hago:). ah, otra cosa, muchisimas gracias por tu respuesta |
Hola
En la carpeta red no tiene que estar la aplicacion ni los datos, solo se crea para que se cree el archivo pdoxuser.net, si alguien accesa a esta carpeta solo encontrara este archivo Te pregunto, como haces para acceder a la informacion desde las maquinas nodo? No es necesario compartir la carpeta donde estan ?:) |
Como ya dijo hecospina, la base de datos debe estar compartida, de otra forma los "clientes" no tendrán acceso a la Base de datos.
Si necesitas "esa protección", entonces no puedes usar paradox (al menos que yo sepa), puedes migrar a Firebird que un SGBBDD en el que no tienes que compartir la BBDD, sino que un programa en memoria en el servidor se encarga de aceptar las solicitudes (por SQL) de las consultas y devuelven los datos. Ahora, si en el servidor han compartido la unidad raiz o bien, tiene acceso cualquiera que pueda compartir la carpeta donde reside la BBDD... poco podrás hacer. Saludos |
Como ya lo comente
La carpeta "red" no debe estar en el servidor de datos, solo debe existir en un equipo, cualquiera de los de la red, incluso no tendria que tener tu aplicacion instalada, la unica condicion es que permanezca encendido cuando desees trabajar en tu aplicacion |
Me parece que en lugar de aclarar cosas, estoy liando más al personal.
Yo entiendo por carpeta "red" aquella que guardará el archivo ".net", todos los clientes deben acceder a él, por tanto debe estar compartida. Hecospina dice que "no debe estar en el servidor", creo que la frase correcta es: "no tiene por qué estar en el servidor". Ahora vamos con otro tema, la Base de datos, es decir tus archivos .db: esa carpeta sí debe estar compartida, para que obviamente todos los ordenadores puedan acceder a él y debe estar compartida con acceso global (permiso de escritura), (ya que un ordenador modificará los archivos al crear una nueva factura, etc). Paradox es una base de datos de escritorio, aunque permite que se ejecute en red y de modo compartido, pero no tiene un esquema de seguridad definido, por tanto, cualquiera que ponga \\server\< nombre carpeta base de datos> tiene acceso a la base de datos. |
Creo que es mucho rollo usar paradox en red...
Recomendaría migrar a Interbase 6, Firebird o MySQL... gratuitos por cierto. |
Este tema se pone mas interesante
Bueno yo buscando y buscando encontre dos formas de como se puede guardar informacion poniendo las .db en una pc servidor y la aplicacion en otra pc cliente.
la primera esta yendo donde dice FTP luego CPPBuilderWin32 y luego en tutoriales el unico que esta ahi es un manual que hice de la primera forma. el unico inconveniente de esta es que tendremos que crear un alias para ello, aunque se puede usar sin el alias. leanlo por favor y luego diganme que les parecio. la otra la baje de la pagina ajpdsoft.com tambien subi el ejemplo en FTP luego CPPBuilderWin32 luego elige ejemplos y luego paradoxnet en el ejemplo esta el manual en español pero hay cosas que no entendiendo, aunque ahi esta el ejemplo aqui esta la parte del codigo que no entiendo aqui se usa un tSession, un tdatabase,un ttable y un datasource ademas de un modulo.
Todo ese codigo lo pone el autor pero no entiendo si es en cada pc cliente k tengo k poner todos esos datos, o es en una pc cliente nada mas y luego se comparte la carpeta? o si tambien hay que ponerlo en la pc servidor o algo. chequen el ejmplo por favor. Si pudieran ponerle comentarios a estos codigos por favor:-) ademas creo k no necesitamos tantos codigos como lo dice el autor de ese tutorial. Ahora bien mi pregunta es para k sirve el archivo PDOXUSRS.net? Y por ultimo para k sirve donde dice LOCAL CHARE =true /false? CPPBuilderWin32 luego elige ejemplos y luego paradoxnet. |
Cita:
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 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 dse esta manera \\Juan 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 numero 0001 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 Database.Params[0].Path := \\Juan\qwerty Session.NetFileDir := \\Juan\qwerty\net 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 resete la pc, el borrado se realiza en el PRivateDir de cada PC. Saludos. |
Cita:
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. |
hola
hola como estan, mi problema esta en k no se k cual es la funcion de el archivo PDOXUSRS.net, y no se donde debo de entrar este supuesto archivo, y no se si ese archivo es hay que compartirlo para todo los usuarios o solo para la server
|
Jeremix
El archivo pdoxuser.net no se comparte, se comparte el directorio donde se crea, paradox realiza la creacion del mismo en forma automatica cuando ingresas a la aplicacion, solo debe existir uno en la red donde trabajes con la aplicacion, regularmente se crea en el equipo donde esta el servidor de datos en este texto encontraras como lo debes hacer : Cita:
|
PDOXUSRS.NET
Gobierna los directorios y los .LCK gobiernan los bloqueos |
gracias
muchas gracias por su aclaracion.
|
La franja horaria es GMT +2. Ahora son las 04:34:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi