Ejecutable en puesto-cliente y datos en servidor

831 views
Skip to first unread message

alexana

unread,
Nov 9, 2012, 12:03:54 PM11/9/12
to publice...@googlegroups.com
Cuando se trabaja con un ejecutable en red, he leído en este grupo que es aconsejable poner en cada puesto-cliente el ejecutable y los datos en el servidor.
 
El problema es que tengo el ejecutable con el entorno de datos ya creado, usando el interno del formset, con las tablas apuntando al disco local "c:" y no conozco la manera de iniciar el ejecutable y decirle que la base de datos y las tablas asociadas se dirijan a "z:", por ejemplo, que es donde tengo el ejecutable del servidor. Lo que me hace es buscar la Bd y sus tablas en "c:".
 
Alguien me puede ayudar?. Gracias
 
Alexana

Allan Raúl Acuña

unread,
Nov 9, 2012, 12:16:12 PM11/9/12
to publice...@googlegroups.com
Estimada Alexana. 

Mis saludos antes que nada.

Te hago llegar lo básico que necesitas en tu main, es muy importante establecer la ruta de donde se
ejecuta tu Ejecutable y ademas instanciar las Carpetas que usas.


*=================================================================================================0
*!* Ir al directorio del ejecutable
If _vfp.StartMode = 0  && running inside the Visual FoxPro IDE
MiRuta = Left(Sys(16,0), Rat("\", Sys(16,0), 2))
Else
MiRuta = Addbs(Justpath(Sys(16,1)))
Endif

*=======================================================================================
Set Default To
Set Default To ("&MiRuta")
Set Path To (MeiRuta + "Formularios\;Programas\;Clases\;Librerias\;Menu\;Rpt\;Datos\;Imagenes\;Vcx\;Xfrx\;")

*=======================================================================================
Set ENGINEBEHAVIOR 70
Clear Screen

Set Sysmenu Off
Set Confirm On
Set Safety On
Set Delete On
Set Notify On
Set Multilock On
Set Talk Off
Set Exclusive Off
Set Scoreboard On
Set Refresh To 0.5
Set Reprocess To Automatic
Set Date Dmy
Set Status Bar Off
Set Sysmenu To
Set Sysmenu Automatic
_Screen.WindowState = 2
Set Talk Off
Set Safety Off
Set Exclusive Off

Open Database Locfile('data1.Dbc') && Busca la base de datos en las Carpetas Instanciadas en este caso DATOS\

Set Deleted On

_Screen.Visible = .F.
_vfp.Caption = "Iniciando Sistemas"


Do Form frmsesion
Read Events

*=================================================================================================

Prueba y me comentas, abajo te dejo mis datos de contactos.

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Fri, 9 Nov 2012 09:03:54 -0800
From: afan...@adsoft.es
To: publice...@googlegroups.com
Subject: [vfp] Ejecutable en puesto-cliente y datos en servidor
--
 
 
 

Fox Learner

unread,
Nov 9, 2012, 12:49:06 PM11/9/12
to publice...@googlegroups.com
Lic. Allan,

Para que es el SET SCOREBOARD ON?

En la ayuda SCOREBOARD solo aparece en la sección de palabras reservadas.

Saludos!

Luis Maria Guayan

unread,
Nov 9, 2012, 1:06:50 PM11/9/12
to publice...@googlegroups.com
SET SCOREBOARD ON/OFF es ignorado en Visual FoxPro

Es un comando de FoxPro para DOS y/o Windows y especificaba si se mostraba el cuadro indicador de Insert, Bloq.Num y Bloq. Mayús. (
Teclas  [INSERT], [NUM LOCK] y [CAPS LOCK]) en la vieja barra de estado SET STATUS ON


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 1:14:41 PM11/9/12
to publicesvfoxpro
En FoxPro 2.5 ya era ignorado ese comando.

Saludos.
Víctor.



--
 
 
 

Luis Maria Guayan

unread,
Nov 9, 2012, 1:15:14 PM11/9/12
to publice...@googlegroups.com
El 09/11/2012 15:14, Víctor Hugo Espínola Domínguez escribió:
En FoxPro 2.5 ya era ignorado ese comando.

Saludos.
Víctor.

Entonces es de la época de FoxBase o FoxPlus  :-)

Fox Learner

unread,
Nov 9, 2012, 1:53:41 PM11/9/12
to publice...@googlegroups.com
Gracias por la aclaración maestro Luis María y maestro Victor Hugo.

Cuanta historia detrás de Foxpro..

Saludos!

alexana

unread,
Nov 9, 2012, 2:16:39 PM11/9/12
to publice...@googlegroups.com
Gracias por tu respuesta, Allan, pero lo pongo en mi main y al iniciar en ejecutable en el puesto, me toma la base de datos del cliente "c:", pero no busca la base de datos del servidor "z:".
 
Alexana

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 2:21:18 PM11/9/12
to publicesvfoxpro
Hola Alexana

Muéstranos como tienes configurado el acceso directo a tu sistema.

Saludos.
Víctor.



--
 
 
 

Adolfo Leon Quintero Hoyos

unread,
Nov 9, 2012, 2:24:33 PM11/9/12
to publice...@googlegroups.com
CREA UNA CARPETA COMPARTIDA EN EL SERVIDOR Y APUNTA TODOS LOS CLIENTES hacia ella y listo

CREA UNA TABLA EN DBF CON UN CAMPO RUTA DONDE LE DAS LA IP Y CREAS el nombre de la base de datos con usuario y su clave

SALUDOS

ADOLFO

 
Alexana

--
 
 
 

alexana

unread,
Nov 9, 2012, 2:51:18 PM11/9/12
to publice...@googlegroups.com
Gracias Victor por tu interés.
 
El main.prg tiene lo siguiente:
 

set exclusive off
set talk off
set notify off
SET RESOURCE off
SET NEAR ON
SET CONSOLE OFF
SET TALK WINDOWS
SET NOTIFY OFF

_screen.WindowState = 2
_screen.AutoCenter = .t.
_screen.visible = .f.

clea

DO FORM \directorio\formularios\inicio.scx
READ events

El form inicio.scx es un conjunto de formularios donde tiene integrado el entorno de datos con todas las tablas de la base de datos.

En ese entorno de datos he añadido todas las tablas, que por defecto toma el disco c: y el directorio donde están.

Aunque toma el disco y directorio de c:, no es problema si mapeo el servidor, le pongo la letra "z:" y el acceso directo al ejecutable le digo que lo busque en "z:", pero entonces coge tanto el ejecutable como los datos de "z:", y lo que quiero es que el ejecutable lo coja de "c:" (cada puesto) y los datos de "z:" (el servidor).

Alexana

 

Allan Raúl Acuña

unread,
Nov 9, 2012, 2:52:08 PM11/9/12
to publice...@googlegroups.com
Adriana elimina rutas fijas, solo accede a los archivos


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Fri, 9 Nov 2012 14:24:33 -0500
Subject: Re: [vfp] Ejecutable en puesto-cliente y datos en servidor
From: todoso...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

ttw

unread,
Nov 9, 2012, 2:52:22 PM11/9/12
to publice...@googlegroups.com

Bueno lo que yo hago es pones esta sentencia en el main
indicandole que en la ruta especificada se encuentran los DBF para la Ejecucion

SET DEFAULT TO \\192.168.200.251\g\SISTEMAS\DB\

Marcelo Barberis

unread,
Nov 9, 2012, 2:59:43 PM11/9/12
to publicesvfoxpro
Lo que yo hago es cuando arranca por primera vez ejecuto un programa por ej. Cliente.prg, este programa se encarga de buscar donde esta la BD en el entorno de datos, doy por supuesto que la carpeta de tu BD tiene que esta compartida, bueno luego estos datos los guardo en una tabla.
Cuando ingreso al sistema si en red busca esa tabla y jala la referencia de la ubicacion de la BD y listo ingresa al sistema con la BD de t u servidor.



--
 
 
 



--
Ing. Marcelo Barberis Gutierrez
Sistemas Informaticos Inc
Villa Montes - Bolivia
Telef.: +591-76831064

Allan Raúl Acuña

unread,
Nov 9, 2012, 3:08:09 PM11/9/12
to publice...@googlegroups.com
Mira para que la aplicación te funcione en cualquier dirección, no debes dejar rutas fijas.

Cuando Instancias las carpetas a usar solo puedes llamar los archivos (dbf,scx,etc)

Comparte la carpeta en tu servidor y mapea en cada PC

\\server\\sistema
  • datos
  • reportes
  • miejecutable.exe


en tu main

*!* Ir al directorio del ejecutable
If _vfp.StartMode = 0  && running inside the Visual FoxPro IDE
MiRuta = Left(Sys(16,0), Rat("\", Sys(16,0), 2))
Else
MiRuta = Addbs(Justpath(Sys(16,1)))
Endif
Set Default To
Set Default To ("&MiRuta")
Set Path To (MiRuta + "Datos\;Reportes\")


*---------------------------------------------



Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Fri, 9 Nov 2012 11:52:22 -0800
From: rorme...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Ejecutable en puesto-cliente y datos en servidor



Bueno lo que yo hago es pones esta sentencia en el main
indicandole que en la ruta especificada se encuentran los DBF para la Ejecucion

SET DEFAULT TO \\192.168.200.251\g\SISTEMAS\DB\

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 3:14:54 PM11/9/12
to publicesvfoxpro
Reitero: Muéstranos como tienes configurado el acceso directo a tu sistema.

Saludos.
Víctor.



--
 
 
 

Alexana.png

alexana

unread,
Nov 9, 2012, 3:16:20 PM11/9/12
to publice...@googlegroups.com
Gracias a todos por vuestra respuestas, pero creo que el problema está en el dataenvironment del conjunto de formularios que ya tiene agregadas todas las tablas de la base de datos con la propiedad "database" de cada tabla en "c:\.....".
 
Hay alguna forma para decirle al dataenvironment del conjunto de formularios que busque en la ruta del servidor que le indique y que no se quede con la ruta preasignada de "c:"?
 
Hay otra manera de hacerlo?.
 
Gracias
 
Alexana

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 3:31:49 PM11/9/12
to publicesvfoxpro
Hola Alexana.

Tu problema está en la configuración del acceso directo o en el armado del proyecto.

Reitero: Muéstranos como tienes configurado el acceso directo a tu sistema.

Saludos.
Víctor.

--
 
 
 

Hugo Carlos Aguilar Zapata

unread,
Nov 9, 2012, 3:36:07 PM11/9/12
to publice...@googlegroups.com
Una alternativa es eliminar las tablas del dataenvironment del formulario, ya en tu ejecutable previamente con las rutinas que sugieren los compañeros abre la BD y sus tablas en la ruta correcta.
 
Así lo he hecho yo
 
Saludos

--
 
 
 

Armando Rodríguez Bermúdez

unread,
Nov 9, 2012, 3:41:13 PM11/9/12
to publice...@googlegroups.com

Prueba en el dataenvironment con this.cursorsource.mitabla = lcRutaDatos

 

Saludos

--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 3:41:46 PM11/9/12
to publicesvfoxpro
Hola Hugo

No es necesario que haga eso. Yo tengo un sistema donde todos los formularios usan entorno de datos, y funciona localmente y/o en red simplemente cambiando en el acceso directo la ubicación de las tablas.

Saludos.
Víctor.



--
 
 
 

Juan de Dios Corrales Leal

unread,
Nov 9, 2012, 3:54:17 PM11/9/12
to publice...@googlegroups.com
Yo hago algo como esto:

El dataenvironment lo hago que no me cargue datos al abrir el formulario, y tengo un metodo "abrebases" en mi form que lo llamo cada que quiero cambiar la ruta de trabajo que la tengo en "rtaser", si la tabla es tabla del dbc se cambia la propiedad Database de los cursores, si la tabla es una tabla libre se cambia la propiedad CursorSource de los cursores.

Yo marco en mi dataenvironment las tablas con la propiedad Tag de los cursores para saber cual es tabla libre y cual es tabla de un dbc.

*EJEMPLO:

_base=rtaser+"datos\cartera.dbc"  && aqui iria la ruta del dbc
_tabla=Fullpath("")+"DATOS\"        && aqui iria la ruta donde estan las tablas libres
With Thisform.DataEnvironment
    .CloseTables
    For x=1 To .Objects.Count
        tabla=.Objects(x)
        Do Case
        Case tabla.Tag=""
            tabla.Database=_base
        Case tabla.Tag="0"
            tabla.CursorSource=_tabla+tabla.Alias
        Endcase
    Next
    .OpenTables()
Endwith

Y con eso soluciono el problema de donde estan las tablas para mi sistema.

Ojala te sirva... SALUDOS!!!

Marcelo Barberis

unread,
Nov 9, 2012, 3:55:00 PM11/9/12
to publicesvfoxpro
no te olvides capturar la ubicacion de tu Bd en una variable publica por ej.
PCRUTABDEMPRESA=sys(5)+curdir()+'\Datos\tubase.dbc'
y en el entorno de datos en la opcion Codigo, metodo BeforeOpenTable
SET TALK OFF
THIS.CURSOR1.DATABASE = PCRUTABDEMPRESA


--
 
 
 

elkin dario uribe torres

unread,
Nov 9, 2012, 4:01:31 PM11/9/12
to publice...@googlegroups.com
Hola Alexana

Para que no presente problemas al momento de cargar las tablas y tome las rutas relativa a una variable te aconsejo:

1. En el prg principal crea variables publicas o propiedades donde se almacenen los valores.
2. Crea un archivo por decir "INI" y toma de alli los valores para cada equipo (servidor y terminales)
3. en todos los formularion en el entrono de datos seleccionas la propiedad "Auto Open Tablees" y la colocas en .F. o si es una clase solo lo cambiarias en la clase base
4. en el Load de cada formulario coloca las siguientes instrucciones:

thisform.SetAll("Database",gcDbPath+gcDbname,"Cursor")
thisform.dataenvironment.opentables()

 donde :
gcAppPath = "c:\Directorio aplicacion"
*gcAppPath = "Y:"   &&Acceso directo en Red
gcDBPath = alltrim(gcAppPath)+"\tablas\"   &&Lugar donde estan tus tablas

5. El archivo INI generado deberia contener algo parecido como esto si es para las terminales:

[Default]
NROSERIAL="y:"
NROCONTRASENA="\TABLAS\"
NROSENA="MIBASE.dbc"

O esto si es para el servidor

[Default]
NROSERIAL="c:\mi directorio"
NROCONTRASENA="\TABLAS\"
NROSENA="MIBASE.dbc"

6. para poder leer y almacenar las variables leidas del archivo estas son las funciones

public gcAppPath, gcDBPath, gcDBName

gcDBName = leer_archivo("c:\directorioquealmacenaelini\extra.ini",'Default','NROSENA')
gcAppPath = leer_archivo("c:\directorioquealmacenaelini\extra.ini",'Default','NROSERIAL')
gcDBPath = leer_archivo("c:\directorioquealmacenaelini\extra.ini",'Default','NROCONTRASENA')
gcDBPath = alltrim(gcAppPath)+gcDBPath


procedure leer_archivo

Parameters tcFileName, tcSection, tcEntry
* Lee un valor de un archivo INI.
* Si no existe el archivo, la sección o la entrada, retorna .NULL.
* PARAMETROS:
* tcFileName = Nombre y ruta completa del archivo.INI
* tcSection = Sección del archivo.INI
* tcEntry = Entrada del archivo.INI
* USO: ReadFileIni("C:\MiArchivo.ini","Default","Port")
* RETORNO: Caracter
*/ -------------------------------------------------------------------------- /*
Local lcIniValue, lnResult, lnBufferSize
Declare Integer GetPrivateProfileString In WIN32API ;
String cSection, String cEntry, String cDefault, String @cRetVal, ;
Integer nSize, String cFileName
lnBufferSize = 255
lcIniValue = Spac(lnBufferSize)
lnResult=GetPrivateProfileString(tcSection,tcEntry,"*NULL*",;
@lcIniValue,lnBufferSize,tcFileName)
lcIniValue=SubStr(lcIniValue,1,lnResult)
If lcIniValue="*NULL*"
* lcIniValue=.NULL.
lcIniValue = " "
ENDIF
Return lcIniValue


con esto te funcionaria sin necesidad de cambiar para nada la programacion en una lan.


Saludos


Elkin Uribe
Medellin - Colombia

El 9 de noviembre de 2012 15:16, alexana <afan...@adsoft.es> escribió:
--
 
 
 

Allan Raúl Acuña

unread,
Nov 9, 2012, 4:59:54 PM11/9/12
to publice...@googlegroups.com
Estimados considero que cuando se instancian las carpetas a ser usadas, no habrá que hacer variables publicas solo llamar el archivos como el OPEN DATABASE

En resumen: que se separa de donde se esta llamando el ejecutable + SET PATH


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Fri, 9 Nov 2012 16:01:31 -0500
Subject: Re: [vfp] Re: Ejecutable en puesto-cliente y datos en servidor
From: eduri...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

Robert Martínez

unread,
Nov 9, 2012, 5:13:02 PM11/9/12
to publice...@googlegroups.com

Te aconsejaré en base a lo que me ha funcionado desde Fox  2 hasta la fecha, nunca he utilizado dentro de mi codificación rutas absolutas esto hace que la portabilidad de tu sistema sea un poco accidentada, he preferido hacer uso del config.fp (cuando era Foxpro Dos) y el config.fpw en Visual Foxpro, si tienes tu sistema en red y los datos están en una carpeta compartida, puedes hacerlo de dos formas.

1.- Mapea la carpeta compartida, haciendo que tu PC local vea la carpeta remota como si fuera una unidad de disco el comando DOS para realizar esto es el siguiente.

> Net use m: \\servidor\datos /yes

Esto te creará una unidad m:  que puede usar en tu archivo config.fpw agregándolo a la variable PATH para que te lo incluya dentro de la búsqueda.

** Config.fpw

Path = m:

El efecto que tiene esto es que cuando intentas abrir cualquier tabla desde tu aplicación VFP automáticamente te busca en la unidad m:  para esto tu aplicación debe de estar en una carpeta de tu disco duro local junto con el archivo config.fpw,  en esta  carpeta no debe haber ningún archivo de datos de los que ya tienes en m:  .

2.- La 2da forma es no usar el “NET USE” y poner la dirección completa en la variable PATH

**Config.fpw

Path = \\servidor\datos

Todo funcionaría de la misma forma puesto que al abrir una tabla o base de datos VFP de forma automática la buscara en \\servidor\datos que es donde se supone tienes tus archivos de datos.

 

Para que esto te funcione correctamente en el C: de la maquina local no debes de tener los archivos de datos, puesto que tu dataenviroment hace referencia directa a una ruta en C: y VFP intenta abrir los archivos primero con las referencias directa, luego busca en la carpeta donde está el ejecutable y por último busca en las carpetas que hallas puestos en la variable PATH, si no la encuentra en ninguna de ella te lanza la ventana de error.

Hugo C.

unread,
Nov 9, 2012, 6:25:02 PM11/9/12
to publice...@googlegroups.com
Checa esto Fox Leaner. (En Ingles)


The History of FoxPro

Jhonny Zambrana

unread,
Nov 9, 2012, 6:57:53 PM11/9/12
to publice...@googlegroups.com
Creo que la solucion esta en:

en la PC de desarrollo o donde estas escribiendo tu sistema, debes crear una unidad z: y le apuntas ahi tu dataenvironment con eso y la unidad Z: mapenada en todas las pc cliente lo tienes solucionado.

Un abrazo y que estes bien.

Idalberto Gonzalez

unread,
Nov 9, 2012, 7:26:05 PM11/9/12
to publice...@googlegroups.com
Hola
 
Me parece que se estan complicando sin necesidad, lo que se hace simplemente es que se configura el shortcut con la ubicacion del ejecutable como origen y la ubicacion de la base de datos como destino y este valor se pasa como parametro en el programa principal.
 
Saludos,
Idalberto González P.

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 7:51:13 PM11/9/12
to publicesvfoxpro
Hola Idalberto

>Me parece que se estan complicando sin necesidad, lo que se hace simplemente es que se configura el shortcut con la ubicacion del ejecutable >como origen y la ubicacion de la base de datos como destino y este valor se pasa como parametro en el programa principal.

Casi, casi...

No hay necesidad de tocar nada en ningún lado!

Saludos.
Víctor.



--
 
 
 

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2012, 7:56:16 PM11/9/12
to publicesvfoxpro
Yo tengo un sistema donde todos los formularios usan entorno de datos, y funciona localmente y/o en red simplemente cambiando en el acceso directo la ubicación de las tablas.

Saludos.
Víctor.

Allan Raúl Acuña

unread,
Nov 9, 2012, 8:24:43 PM11/9/12
to publice...@googlegroups.com
Si lo que pasa que la amiga esta poniendo rutas fijas en sus fuentes, es por ello los códigos.


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Fri, 9 Nov 2012 16:26:05 -0800
From: idalb...@gmail.com

To: publice...@googlegroups.com
Subject: [vfp] Re: Ejecutable en puesto-cliente y datos en servidor

--
 
 
 

Walter R. Ojeda Valiente

unread,
Nov 9, 2012, 11:43:46 PM11/9/12
to publice...@googlegroups.com
Hmmmmm, eso siempre y cuando en la computadora del usuario no exista ya una unidad Z: apuntando a cualquier otro lado.

Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Fri, 9 Nov 2012 15:57:53 -0800
From: jhonny....@gmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Ejecutable en puesto-cliente y datos en servidor
--
 
 
 

Jhonny Zambrana

unread,
Nov 10, 2012, 1:24:39 AM11/10/12
to publice...@googlegroups.com
SI valga la aclaracion, por lo demas deberia funcionar sin mas toques.

Buen finde..

Norberto

unread,
Nov 10, 2012, 10:51:59 AM11/10/12
to publice...@googlegroups.com
En los formularios que acceden a datos pongo en DataEnvironment-BeforeOpenTables lo siguiente:

goApp.CambiarDataPath(THIS)

En mi clase app_application este método cambia los path a cada cursor:


LPARAMETERS toDataEnv
LOCAL lcDataPath,laCursors,lnStartPos,lcDataName,;
lcNewDataPath,lnI,lcObjClass, lcObjName, loCursor

WAIT WINDOW "Abriendo bases de datos, tablas y vistas..." NOWAIT
DIMENSION laCursors[1,1]
lcDataPath = THIS.cDataFolder
* Ver cDataFolder_access y cDataFolder_assign.Ya verificaron que existe
* y que venga con la \ al final
* Crear la lista de todos los cursores del Data Environment
=AMEMBERS(laCursors,toDataEnv,1)
=ASORT(laCursors, 2)
lnStartPos = ASCAN(laCursors, "Object")
IF lnStartPos <= 0
* No hay cursores en el data environment de este form.
RETURN
ENDIF
lnStartPos=ASUBSCRIPT(laCursors, lnStartPos,1)
FOR lnI = lnStartPos TO ALEN(laCursors,1)
IF laCursors(lnI,2) = "Object"
lcObjClass = "toDataEnv."+laCursors(lnI,1)+".class"
IF EVAL(lcObjClass)="Cursor"
lcObjName = "toDataEnv." + laCursors(lnI,1) + ".DATABASE"
lcDataName = ALLTRIM(EVAL(lcObjName))
* Modificar el path a la base de datos
* Ejemplo lcDataName = c:\ceos\data\ventas.dbc
* JUSTFNAME devuelve la parte correspondiente al nombre de archivo
* de una ruta de acceso y un nombre de archivo completos.
* JUSTFNAME(lcDataName) es ventas.dbc
* JUSTPATH(lcDataName) es c:\ceos\data
IF !EMPTY(lcDataName)
lcNewDataPath = lcDataPath + JUSTFNAME(lcDataName)
* Evaluar el objeto cursor
loCursor = EVAL( "toDataEnv."+laCursors(lnI,1) )
*Modificar la propiedad Database con el nuevo path
loCursor.Database = lcNewDataPath
ENDIF
ENDIF
ELSE
EXIT
ENDIF
ENDFOR

Para ver cDataFolder_access y assign fijate en mi post al tema Agregar Metodos y Propiedades
Norberto

alexana

unread,
Nov 10, 2012, 12:01:44 PM11/10/12
to publice...@googlegroups.com
Gracias a todos por esta avalancha de ayuda.
 
Me pongo a probar y luego os cuento.
 
Alexana

Walter R. Ojeda Valiente

unread,
Nov 10, 2012, 3:21:45 PM11/10/12
to publice...@googlegroups.com
Esa avalancha de ayuda has recibido porque tienes nombre de mujer, de haberte llamado Pedro, Juan, Roberto o algo así, ni por asomo, je.

;-)


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Sat, 10 Nov 2012 09:01:44 -0800
From: afan...@adsoft.es

To: publice...@googlegroups.com
Subject: [vfp] Re: Ejecutable en puesto-cliente y datos en servidor

--
 
 
 

Alberto Mancuso

unread,
Nov 10, 2012, 3:37:06 PM11/10/12
to publice...@googlegroups.com
Estoy con tigo walter , que poder tienen las mujeres , jeje
Yo alexana tengo un dbf con un solo campo donde gueardo el path de la ruta donde estan las tablas y despues hago esto :
public m.ruta
use rutaacceso
go top
m.ruta=alltrim(rutaacceso.ruta)
use
set path to (m.ruta)

saludos

--
 
 
 

Alejandro Isla

unread,
Nov 12, 2012, 7:22:43 AM11/12/12
to publice...@googlegroups.com
Una pregunta: cuando busca las tablas en c: ¿las encuentra o da un error?

Si tenes en tu data enviroment las tablas direccionadas a C: primero las busca ahí , si no las encuentra buscará en el dir de inicio, path, etc. etc.

Entonces:

1) Si todavía tenes las bases en el disco c:, borralas, mové a otro directorio, zip, desaparecelas :-)

2) Como bien te indicaron, o con el acceso directo inicias en el directorio  de red o le pones un set default en el main, etc.

lo importante es el punto 1)

Prueba y avisa.

Saludos, Alejandro
Reply all
Reply to author
Forward
0 new messages