FoxPro/Visual FoxPro - cargar datos en red?

 
Vista:

cargar datos en red?

Publicado por roberot (7 intervenciones) el 24/09/2009 00:16:13
Tengo un sistema ya confeccionado y quisiera saber si me ayudan con esta duda, igualmente todavia no probe nada.
Tengo una tabla que es productos y tengo que cargar aproximadamente 1000 tipos de productos.
Pregunto:
cuento con unas 20 maquinas para 20 usuarios, ¿ puedo hacer que todos cargen datos a la vez? Y si esto se puede debo crear una instruccion o comando para que me lo permita? otra pregunta, debo instalarlo en alguna compu en especial, la que haga de servidor o algo asi?. gracias
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:cargar datos en red?

Publicado por andy (228 intervenciones) el 24/09/2009 01:24:31
Trabajar con VFP en red es relativamente sencillo ya que el mismo VFP, se encarga casi de todo el tema de administrar la aplicacion en red.
Primero debes definir en que equipo vas a poner la base de datos(en red por supuesto), luego, en la aplicación solo debes bloquear el registro cuando lo quieres actualizar(modificar o eliminarlo), esto con la intención de que otro usuario no trabaje sobre el mismo registro, para darte un ejemplo sencillo:
Imagina una tabla "tclientes" ubicada en la carpeta "c:\datos\", esta carpeta debe estar compartida en esa pc(donde están los datos) y luego desde otra pc(donde está el programa) debes conectarte a la pc de datos por Mi Pc, Conectar a Unidad de Red(conectala en la unidad lógica "Z" para que funcione mejor el ejemplo).
Luego de establecida la conección entre los 2 equipos, procedes a escribir en el inicio de tu aplicación lo siguiente:
"Set default to z:\", con esta instrucción le estás indicando a la aplicación la ubicación de los datos, a partir de ese momento si tu dices "use tclientes", ya el programa sabe cual tabla va a abrir.
Ahora bien, cuando estas actualizando la tabla, utiliza la función "rlock()", esta devuelve verdadero cuando puede bloquear un registro, y el comando unlock que desbloquea el registro, ejemplo:

sele tclientes

locate all for codcliente=thisform.text1.value

if found()

if rlock()

replace codcliente with thisform.text1.value

replace nomcliente with thisform.text2.value

unlock

endif

endif

Igual para eliminarlo;

sele tclientes
locate all for codcliente=thisform.text1.value
if found()
if rlock()
delete
endif
endif

Lo que tienes que tener en cuenta es que en el archivo de inicio de tu sistema,
debes establecer una cesion de datos en red, para ellos es conveniente utilizar los siguientes seteos:

set exclusive off
set refresh to 1
set reprocess to automatic
DataSession=2

Ten en cuenta que para poder hacer ZAP, PACK o REINDEX deberas abrir las tablas en modo exclusivo, por ejemplo:
use mitabla exlusive
pack

Yo trabajo de la siguiente forma, mi sistema tiene subcarpetas \datos y \temp en ella guardo las tablas compartidas y las tablas temporales respectivamente. Luego instalo la totalidad de la aplicacion en cada maquina, mapeo la red , por ejemplo z:\aplicacion\datos, establezco la ruta al SERVIDOR (o a la maquina que hara las veces del mismo) con un SET PATH y lo guardo en otra tabla, donde tengo la configuracion general de la aplicacion.
A continuacion borro de las terminales la subcarpeta \datos y listo!!
Cada una de las terminales accede a los datos compatidos del servidor.
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:cargar datos en red?

Publicado por Juan Carlos  (128 intervenciones) el 24/09/2009 07:26:21
Hola Andy:
Interesante, podrias enviarme una copia de la tabla donde guardas la ruta, de tal manera que lo revice y pueda aplicar en mi sistema.

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:cargar datos en red?

Publicado por andy (228 intervenciones) el 25/09/2009 00:39:07
Hola Juan Carlos, la tabla no tiene nada especial, en ella guardo todos los datos Ingresados en un formulario, donde se cargan una serie de configuraciones tales como el nombre de la empresa, direccion, datos fiscales, la imagen de fondo,etc. y la posibilidad de utilizar o no, distintas opciones del programa. En ella hay un campo rutadato( texto 80) y para elegir la ruta de los datos es un boton cuyo codigo es:

ruta=GETDIR()
SELECT configuracion
rutadato=m.rutadato
REPLACE rutadato with m.rutadato+';'+ruta

En el archivo de Inicio de la aplicacion establezco el PATH usando el los datos de esa tabla:

USE configuracion
rutadato=m.rutadato
SET PATH TO (m.rutadato)
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:cargar datos en red?

Publicado por Juan Carlos Lopez Lopez (128 intervenciones) el 25/09/2009 22:06:13
Hola Andy; nuevamente infinitamente agradecido por tu aporte, voy a probarlo.

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