FoxPro/Visual FoxPro - BD en directorio distinto al de la aplicación..

 
Vista:

BD en directorio distinto al de la aplicación..

Publicado por Romina (33 intervenciones) el 25/05/2006 12:47:02
Tengo un problema con mi aplicación y ya no se me ocurre donde puede estar el error.
Mi aplicación esta instalada en un directorio con su base de datos. Al ejecutar la aplicación ingreso la ruta de la base de datos que quiero abrir, ya que no quiero abrir la BD que esta en la carpeta de la aplicación, sino que necesito abrir BDs que se encuantran en otras rutas.
Una vez ingresada la ruta le hago un SET DEFAULT TO &ruta en todos los load() de los formularios.
Al ejecutar la aplicación, por mas que ingreso rutas distintas siempre me abre la BD que se encuentra junto a la aplicación.
En modo de diseño la tablas las abro en los entornos de datos de los formularios y trabajo, con las locales (que se encuentran en la aplicación). No se si el error estara aqui....
No se que es lo que estoy haciendo mal....
Desde ya muchas gracias por su ayuda.
Romina.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:BD en directorio distinto al de la aplicación..

Publicado por Roman Suazo (2723 intervenciones) el 25/05/2006 15:43:09
Ahi esta el error, ya que en las tablas del entorno de datos la direccion de la base de datos a usar ya esta escrita. Lo que debes de hacer es guardar direccion de la base de datos en alguna variable y reescribir la direccion en cada una de los cursores del entorno de datos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD en directorio distinto al de la aplicación..

Publicado por Jorge (423 intervenciones) el 25/05/2006 16:49:35
Buen dia, mira lo que debes de hacer es utilizar una variable como bien dice nuestro amigo Roman, donde guardes la ruta de acceso a la base de datos...
en cada formulario en el evento de BEFOREOPENTABLE ahi especificas para cada tabla
la ruta desde donde sera leida.... asi de sencillo, checatelo ...
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD en directorio distinto al de la aplicación..

Publicado por Romina (33 intervenciones) el 25/05/2006 16:58:49
antes que nada quiero agradecerles su tiempo en contestar mi consulta. Lo que si he probado es poner un set defa to &ruta en el beforeopentable del dataenvironment del formulario....pero sigue sin funcionar. ¿cómo tengo que hacer para asignárselo para cada tabla?.
Saludos.
Romina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:BD en directorio distinto al de la aplicación..

Publicado por Ernesto Hernandez (4623 intervenciones) el 25/05/2006 20:01:09
Por que no utilizas el SET PATh en tu programa principal y asi tu programa ya sabra donde buscar las bases

Yo utilizo algo asi por el estilo

SET PATH TO REPORTS, FORMS LIBS, PROGRAMS, FORMATOS, MENUS, DATOS, OTHER, FORMS, ;
INCLUDE, HELP, BITMAPS, ICONS, CALENDAR, FONTS, DOCUMENTOS

Otra solucion muy efectiva crea tabla RutaArchivos.DBF y guardas la direccion donde estara cada uno de tus tablas

y en el principal utilizas algo asi

USE RutaArchivos

DO WHILE !EOF()
mPRO_VAR=TRIM(PRO_DIR) && PRO_DIR guarda la direccion donde buscara los archivos

SKIP
ENDDO
USE

SET PATH TO &mPRO_VAR && ASigna la direccion de datos

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD en directorio distinto al de la aplicación..

Publicado por Jorge (423 intervenciones) el 26/05/2006 16:42:41
Hola, buen dia... mira no vas a utilizar el SET DEFAULT eso no es lo adecuado para lo que pretendes hacer....
utiliza en su caso algo asi como
en el entorno de datos, en el BEFOREOPENTABLE:
THISFORM.database.cursor1=&Ubicacion\Tabla

y asi sucecivamente para cada tabla que tengas en el entorno de datos
de esta forma lo que hara el compilador es asignarle una ruta a cada tabla involucrada en el formulario que utilices. como ves el set default no lo utilizas... puedes checar la ayuda para cada propiedad o evento para ampliar mas la duda (jejeje)...
Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BD en directorio distinto al de la aplicación..

Publicado por Romina (33 intervenciones) el 29/05/2006 11:20:22
Hola!. Antes que nada quiero agradecerte tus consejos con respecto a mi problema.
He hecho lo que me aconsejas, pero me sale el siguiente error para cada tabla del entorno de datos:
"Error instanting cursor objet. Cannot find c:\nueva\data\intervens.dbf in c:\nueva\data\ue.dbc".
Esta BD que hay en la ruta c:\nueva\data\ fue copiada con copy file de la BD vacía que tengo en la carpeta de la aplicación. ¿Crees que podra tener algo que ver el modo en que fue copiada?. No se porque no encuentra las tablas en la BD nueva....
Quizás tu te des cuenta donde está el fallo, porque yo ya no se que probar.
Saludos.
Romina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar