Problema con BD en VFP

Hola experto, tengo una aplicación en VFP 6.0 cuyos componentes y direccionamiento están en el disco x: de un server con una red cableada, doméstica. Con el asistente de instalación creé el distribuible y lo instalé en las PC de la red. Funciona todo bien pero para ello debo colocar la base de datos en cada PC, si no no funciona. El problema es solamente con la BD ya que los formularios, informes, programas, etc, los tengo solamente en el server. Por ej, cuando abro un formulario, si la BD no está en esa PC, me dice que la BD no existe en c: de esa PC, pese a estar en el server y a que el formulario tiene instrucciones para abrir la BD del directorio del server. ¿Cómo hago para que se acceda a la BD del server sin tener que copiarla en cada PC? Gracias

3 respuestas

Respuesta
1
Ok, posiblemente cuando programas, tu no haces referencia a ningún path, es decir. Por ejemplo si tu proyecto esta en el directorio c:/Proyecto, entonces tu programa esta relacionado con ese directorio, y las tablas están en ese directorio. Ese si es problema jajaja no fijo no, lo que tienes que hacer es poner al inicio, en las primeras instrucciones de tu programa lo siguiente
xpath = Sys(5)+ Sys(2003)
Set Path to xpath
y ahi tienes el directorio, de la carpeta ... Entonces lo que puedes hacer es antes de seleccionar una bade de datos, o una tabla lo que haces es
select * from .\Base_De_Datos!tabla into cursor tabla
eso seria todo saludos
Respuesta
1
Primero que todo debes tener bien claro lo que en cuanto a redes de computadores se refiere, en este orden de ideas debes compartir la base de datos desde el servidor con sus respectivas restricciones de edición, eliminación y cifrado de archivos (más específicamente me refiero a compartir la base de datos en una unidad de red), ahora para resolver el inconveniente del sistema debes hacer que el sistema se conecte a la base de datos del servidor a través de una función que debería ir en el programa principal del proyecto ejemplo:
En este procedimiento extraemos y almacenamos en un campo de tipo memo de una tabla libre la ruta de la base de datos si la ruta no es válida:
Procedure ConectarBD
     Local lcRuta
     If !Used("Recursos") && Nombre de la tabla libre.
        Use "NombreRuta\Recursos In 0
     Endif
     Select Recursos
     Locate && Ubicarse en el primer registro que es en donde está almacenada la ruta.
     lcRuta = Recursor.Ruta
     If !File(lcRuta)  
        Messagebox("La ruta para conectarse a la base de datos es incorrecta.", 16, "Error")
       lcRuta = GetFile("dbc")
       If !File(lcRuta)
          Return .F.
       Endif
    Endif
    Open DataBase (lcRuta) Shared
Endproc
Llamar el procedimiento:
If ConectarBD() Then
   Continue con las demás tareas.
   Else
      Return .F.
Endif
Respuesta
1
Creo que depende del administrador de la base de datos que estés usando, si usas el de FOX el problema podría estar en que cada formulario esta con el DATA EVERIMONT (Click derecho sobre el formulario).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas