FoxPro/Visual FoxPro - Podrían abundar un poco mas acerca de Prg en Red?

 
Vista:

Podrían abundar un poco mas acerca de Prg en Red?

Publicado por neo (296 intervenciones) el 25/10/2006 15:55:05
Saludos Comunidad...

Este mensaje va dirigido a Plinio y Ernesto:

Con el fin de agilizar el trafico por la red, creo que nos convendría saber un poco mas acerca de esto, por lo respecta a mi en particular, me interesa muchisimo, ya que yo programo para Red y de ahí que si existen otras alternativas como:

Agregar el ejecutable en cada terminal y una tabla libre en el cual se guarde la ruta. Pero como sería el proceso, es decir, que campos hay que crear en la tabla y de que forma asignarlos al ejecutable de red.

¿Afectaría al ejecutable local, la ruta?

Nota: Por lo que entendí, debo crear una tabla libre y asignarle un campo y en ese campo registrar la ruta, ej:

Tabla.ruta
campo ruta= \\Proyecto\Datos

No se si estoy bien, espero me orienten...

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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Plinio (7841 intervenciones) el 25/10/2006 19:35:40
entonces asi puedes referirte a la ruta de los datos con SET PATH to &campo_ruta y si tienes que abrir una base de datos o tblas

OPEN DATABASE &campo_ruta\mibasedatos.dbc SHARED

USE &campo_ruta\mitabla.dbf
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:Lo haria en todos los forms?

Publicado por neo (296 intervenciones) el 25/10/2006 20:18:42
Gracias Plinio por tus comentarios...son de gran utilidad.

Entonces debo cambiar el

Use mitabla1.dbf

Por:

Use &campo_ruta\mitabla1.dbf

Las tablas las llamo desde el Evento Load del formulario....

1.- ¿entonces tendría que modificar todos los forms que contengan tablas?

2.- ¿Y que pasa con el ejecutable local?

3.- ¿Acaso es que tendría que crear una tabla libre para el ejecutable local?

Creo que estoy un poco confundido......

Gracias de Antemano
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:Lo haria en todos los forms?

Publicado por jorge (423 intervenciones) el 25/10/2006 20:57:02
hola que tal, disculpen la intromision, lei un poco mas adelante que estan los mensajes dirigidos a los compañeros plinio y ernesto, pero me llama la atencion la confusion que tienes respecto al uso de tablas o bases de datos en red. Analicemos un poco los puntos que mencionas siendo logicos:
1) en efecto tendrias que modificar todos los FORM que contengan formularios
2) con el ejecutable local no pasa nada si haces los enlaces de ruta adecuadamente
3) puedes usar una tabla libre o un archivo de texto plano, o como quieras controlar el campo donde guardarias la ruta de acceso.

de lo anterior, yo lo hago asi ( lo cual funciona perfectamente bien)
1) mantengo una base de datos ( o tabla libre como prefieras) de instalacion, donde guardo todas las variables que haran que funcione de un modo o de otro la aplicacion, incluyendo un campo de ruta de acceso a la BD que contendra toda la informacion
2) al iniciar la aplicacion mediante un PRG, acceso a estas tablas (instalacion) leo la ruta de acceso y la coloco en una variable de uso publico de esta forma la mantengo en memoria para todos los formularios.
3) en cada formulario que se requiera, acceso a las tablas mediante el Entorno de Datos, donde, en los eventos OPEN TABLES y BEFOREOPENTABLES manipulo los acceso a datos ej, OpenTables:
Open Database &ruta\BaseDatos Shared
BeforeOpenTables:
THis.cursor1.database=ruta+"\baseDatos.dbc" --> ojo esto es para cada tabla, cursor1,2,3 etc..

asi es como lo estoy haciendo y como mencione funciona perfectamente bien.

Espero te sirva
Saludos a todos
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:Lo haria en todos los forms?

Publicado por Plinio (7841 intervenciones) el 25/10/2006 21:11:28
No tendriamos que cambiar en todos los formularios, el SET PATH y abrir la base de datos en la ruta ayuda mucho.
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:Lo haria en todos los forms?

Publicado por Plinio (7841 intervenciones) el 25/10/2006 21:10:12
Yo una campeta con el sistema, dentro de este hay una que se llama Tabla que contiene todos mis archivos de datos. hago algo como esto en el ejecutable

PUBLIC ruta_datos,ruta_programas
ruta_programas = CURDIR() &&la raiz de mi sistema
IF DIRECTORY("&ruta_programas\tabla") &&Si estoy en la principal
ruta_datos= "&ruta_programas\tabla"
ELSE &&Estoy en una terminal
IF FILE('tabla_ruta") &&Es una tablita libre que copio en cada terminal
SELEC 0
USE tabla_ruta AGAIN ALIAS tabla_ruta
ruta_datos= tabla_ruta.ruta
endif
ENDIF

SET PATH TO &ruta_programas,&ruta_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:Lo haria en todos los forms?

Publicado por Hector De los Santos (10 intervenciones) el 25/10/2006 21:25:28
Yo en lo personal tengo dos ejecutables uno para red y otro cuando se este via local, los estados o modos de entrada(Por red o local) lo manejo por variables.
Un ejemplo..
En mi prg para Cuando se esta via local:

*--------------------------------------------------*
* Modulo de Inicio del Sistema *
* Desarrollado Por: Hector R. De los Santos *
* Para: ************* *
* SI ESTAS VIA LOCAL *
*--------------------------------------------------*
_Screen.Visible= .F.
SET TALK OFF
SET ENGINEBEHAVIOR 70
PUBLIC cNet,cActivo
cActivo=1
cNet=0
SET MULTILOCKS ON

SET EXCLUSIVE off
SET DELETED on
SET SAFETY OFF
SET CENTURY off
SET DATE BRITISH
USE usuarios SHARED
SET NOTIFY CURSOR off
SET sysmenu off
_SCREEN.icon= "icono.ico"
_SCREEN.windowstate=2
DO FORM splash.scx
READ events

Mi Prg cuando estas via red
*--------------------------------------------------*
* Modulo de Inicio del Sistema *
* Desarrollado Por: Hector R. De los Santos *
* Para: Francisco H. Espejo CXA *
* SI ESTAS VIA RED *
*--------------------------------------------------*
SET TALK OFF
PUBLIC cNet,cActivo
cActivo=1
cNet=1
SET MULTILOCKS ON
SET DATE DMY
SET EXCLUSIVE on
SET DELETED on
SET SAFETY OFF
SET NOTIFY CURSOR off
USE usuarios SHARED
SET sysmenu off
_SCREEN.caption= "FHECA-> ENTRADA AL SISTEMA | On-Net"
_SCREEN.icon= "icono.ico"
_SCREEN.windowstate=2
SET message to ">>> Bienvenido Al Sistema FHECA >>>On->Net"
DO FORM splash.scx
READ events

*********
Ya en el formulario splash.scx hago preguntas de la variable cNet para establecer la ruta..
Ejemplo..En el evento Load del formulario splash.scx
If cNet=0
set default to c:\ruta
else
if cNet=1
set default to z:\ruta
endif
endif
Ya con establecer mi directorio una vez no debo hacerlo en los demas formularios, ni tampoco referirme a rutas especificas cuando vaya a usar tablas o reportes.

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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por charly (25 intervenciones) el 26/10/2006 14:47:45
perdonen la intromision pero amedita una pregunta el tema: cuando mi aplicacion esta contenida en un solo ejecutable (.exe), una terminal ejecuta el .exe localmente (en su memoria) y no necesita otros accesos (excepto a los datos) al servidor, o estoy equivacado? si es asi no veo la diferencia de velocidad entre colocar el exe en el servidor y en terminales (mayor costo de mantenimiento). Disculpen y espero su respuesta.
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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Ernesto Hernandez (4623 intervenciones) el 26/10/2006 17:09:09
Claro si tienes un servidor no hay problema. El tema fue tener el exe y los datos en una PC entiendo que se habla de una red punto a punto.

Ahora yo creo que aun asi hay diferencia de rendimiento en tu servidor o no no es lo mismo que tengas a 50 usuarios colgados de un EXE en tu servidor que tengas 50 usuarios accesando solo los datos de tu servidor.

Puedes hacer unas pruebas en el monitor de rendimiento de las herramientas administrativas de tu servidor

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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por charly (25 intervenciones) el 26/10/2006 17:22:59
si de acuerdo, en mi caso, hago incapie a la ingenieria de manipuleo de datos (vistas, consultas, etc) que a la distribucion de exe's por las pc's de la red. 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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Hector De los Santos (10 intervenciones) el 26/10/2006 17:14:52
Tienes razon:

Cuando mi aplicacion esta contenida en un solo ejecutable (.exe), una terminal ejecuta el .exe localmente (en su memoria) y no necesita otros accesos (excepto a los datos) al servidor, o estoy equivacado? Si es cierto solo necesita los acceso a datos ya lo demas debe estar en el compilado.
La rapidez no se si infliye en este tipo de diseños. Lo que si se es que se puede obtener la ruta del servidor y ser capturada en una variable de esta forma no se tiene dos ejecutables.
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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Hector De los Santos (10 intervenciones) el 26/10/2006 17:36:18
Nota: Recuerden que cuando se utiliza tablas nativas al momento que una terminal abre un ejecutable al accesar una tabla tambien te trae (abre) el archivo indice aunque no lo vaya a utilizar, ya con esto son mas archivos, a parte de la tabla y del ejecutable(si esta en el servidor). Por eso creoq el uso de ejecutables instalados en la terminal se debe tener mayor rendimiento pero eso se debe sentir cuando se tiene una alta cantidad de clientes.

Una Recomendacion: Usar un motor de base de datos como MSSQL,PostgreSQL(BUENISIMO, es Open) o SQL Server.

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
sin imagen de perfil

RE:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Ernesto Hernandez (4623 intervenciones) el 26/10/2006 20:01:39
Usar un motor de base de datos como MSSQL,PostgreSQL(BUENISIMO, es Open) o SQL Server.


totalmente de acuerdo

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:Podrían abundar un poco mas acerca de Prg en Re

Publicado por Luis Osorio (27 intervenciones) el 23/11/2006 19:01:41
La ayuda de VFP contiene numerosos ejemplos de como trabajar en red con el mejor performance. Si alguien necesita ayuda, envieme un correo [email protected]
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