FoxPro/Visual FoxPro - sistema en red

   
Vista:

sistema en red

Publicado por eduardo flacosakeo@hotmail.com (16 intervenciones) el 08/08/2013 17:31:58
Hola que talgente, tengo una duda con sistema que estoy haciendo en vfp6.
Resulta que tengo el sistema en una maquina y otras computadoras tienen acceso directo al sistema que esta en la primer pc, cuando abro el sistema desde cualquier maquina funciona bien pero, cuando lo abro tambien en otra maquina y quiero hacer algo me sale un error que dice que no puedo tener acceso al archivo acceso denegado. Las tablas las tengo como compartidas, ¿estoy olvidandome de algo?. Si mal no recuerdo creo que hay una propiedad de los formularios que tienen que ver para que puedan funcionar en varias pc, gracias. saludos.
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

sistema en red

Publicado por neo (1601 intervenciones) el 08/08/2013 20:08:25
Saludos!

Depende mucho de como tienes el acceso a las tablas, lo que me ha funcionado es abriendo las tablas desde Load del Form.

ejemplo:

open database mi_base_de_datos.dbc

use mi_tabla1 in 1 shared

use mi_tabla2 in 2 shared

y en la propiedad "Datasession" cambiar a 2

finalmente en el prg principal agregar

SET Exclusive OFF


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

sistema en red

Publicado por Luis Sayago jlsayago@hotmail.com (3 intervenciones) el 08/08/2013 20:43:43
Saludos, porque ya no te cambias a tablas Mysql o Sql ??
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

sistema en red

Publicado por many (84 intervenciones) el 09/08/2013 06:18:30
Mi amigo del alma, Saludo

La verdad que debería hacer lo que dice luis, ya yo lo estoy haciendo pero mientras tanto tratare de ayudarte.

Lo que dice Neo, a quien te tengo mucho respeto te puede dar problemas tomando en cuenta que tendría que abrir todas las tablas y fox es un poco enredado con esta en la red.

Entiendo lo siguiente:

1.- Coloca las tablas en un carpeta no importa en que maquina esten.
2.- En tu programa principal dale la ruta donde se encuentran las tablas ejemplo:
set default to d:\datos\ etc.

3.- Toma en cuenta que debes llamar los form indicando la ruta completa:
do form c:\sistema\articulos

Esto es porque esta dejando activa la direccion de las tablas.

Si tiene dudas escribe.
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

sistema en red

Publicado por eduardo flacosakeo@hotmail.com (16 intervenciones) el 09/08/2013 14:28:37
Gracias por responder muchachos. En primer lugar no me acostumbro a usar sql ya conozco bien lenguaje nativo de fox jeje. En cuanto al sistema lo raro es que cuando abro el sistema desde una maquina funciona bien, el inconveniente se produce cuando mas de una pc tratan de usar el sistema.

Otra duda, ¿hay alguna manera de validar que un archivo de excel este guardado en modo de compatibilidad de 5.0/95 para poder importar datos de un excel en tiempo de ejecucion?

Gracias muchachos, saludos. Eduardo.
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

sistema en red

Publicado por eduardo flacosakeo@hotmail.com (16 intervenciones) el 09/08/2013 14:50:07
Por ejemplo, tengo un boton que abre el getfile('xls') y selecciono el archivo excel, pero si no esta guardado en compatibilidad de 5.0/95 que muestre un cartel que diga "su archivo excel no es compatible, modifique a la version 5.0/95", porque sino sale el error en una ventana de fox con las opciones de cancel, suspender, pasar por alto, ayuda. Quiero que muestre un messagebox que yo tipee. 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

sistema en red

Publicado por Fidel (558 intervenciones) el 09/08/2013 16:31:13
Para utilizar tablas nativas en red:

1) Tener una (o más, según el caso) variable de configuración de dirección.
Por ejemplo: LcDir="\\192.168.0.4\SISTEMA\VENTAS" (PARA ip estática)
Por ejemplo: LcDir="\\SERVIDOR\SISTEMA\VENTAS"
Por Ejemplo: lcdir="F:\SISTEMA\VENTAS" (disco mapeado)

Para buscar la ruta, podés utilizar
lnFlag=16+32
lcdir=GETDIR("","Buscar Ruta de Archivos","Mi sistema",lnFlag)
IF EMPTY(lcDir)
RETURN
ENDIF
Luego, en alguna tabla local guardas este valor que se recupera al inicio de la aplicación.
Yo recomiendo tener la aplicación distribuida, aunque deban actualizarse las terminales en cada cambio de versión.


2) Apertura con SHARED explícito:
lcOpen=addbs(lcdir)+"TablaX"
USE (lcopen) IN 0 SHARED

3) Considerar el tipo de bloqueo. El bloqueo de registro será necesario toda vez que modifiques un dato grabado. Append Blank e Insert into bloquean automáticamente el registro generado.
3.1) Bloqueo manual:
SELECT TablaX
IF RLOCK()
REPLACE CAMPO1 WITH lcValor1, CAMPO2 with lcValor2 etc.
UNLOCK
ENDIF

3.2) Bloqueo automático
CursorSetProp("Buffering",5,"Tablax")
Tras las modificaciones (no lleva RLOCK() ni UNLOCK)
TableUpdate(.t.)

4) Tras la modificación o agregado de registros, conviene siempre terminar el proceso con
FLUSH
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

sistema en red

Publicado por neo (1601 intervenciones) el 09/08/2013 16:42:25
Si trabajas en una red de area local, con registros que no pasan los 500,000 Bien puedes usar los dbf nativos, aunque utilizar un motor de base de datos te abre un menu mucho mas grande de opciones, pero si le invertiras un poco más de tiermpo.

Siempre he utilizado las opciones antiguas tales como Append blank, replace, funciones como Seek, entre otros. Y siempre me da buenos resultados trabajando en red con más de 8 pc´s.

Yo pienso que el error te dá porque por algun lado abres alguna tabla en modo exclusivo.
Solo debes asegurarte que desde el inicio del sistema las tablas se ejecuten de manera compartida con Shared y Set Exclusive Off.

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

sistema en red

Publicado por eduardo flacosakeo@hotmail.com (16 intervenciones) el 09/08/2013 17:04:39
Hola muchachos, no se me soluciona el problema, tengo las tablas abiertas en shared y el set exclusive off, el sistema funciona bien salvo cuando dos pc usan el sistema, la que lo inicio primero funciona de 10 pero la segunda cuando lo ejecuta funciona bien hasta que comienza a hacer consultas por ejemplo y en algun momento salta el error. El error no se da siempre en un mismo lugar.
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
Imágen de perfil de Luis

sistema en red

Publicado por Luis (12 intervenciones) el 09/08/2013 19:15:25
Saludos!! no es por insitir, pero las dbf en red trabajan muy lentamente, y si haces consultas es mucho mas rapido las tablas sql, no tendriasa problemas con tus datos, las dfb se corrompen se dañan, son lentas, y los cdx?? igual, Animate a cambiar y actualizarte
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

sistema en red

Publicado por many (84 intervenciones) el 09/08/2013 23:06:11
Querido Eduardo

Como puede ver todo queremos ayudarte, aunque use dbf te seguiremos apoyando ya que todos venimos de ahí.

A mi me daban los concejos que hoy te están dando a ti y la vedad que no tengo como agradecerlo, para sistemas que pueden crecer es una perdida de tiempo usar dbf en red ya que para decir la verdad cuando crecen no hay solución para ello. Yo he perdido varios proyectos de un buen dinero porque las dbf no me han apoyado.


Te recomiendo lo que yo estoy haciendo:
Estoy trabando en dbf solo las emergencias del momento ya que ahora es que estoy aprendiendo mysql, y los sistema que tengo funcionando en dbf lo estoy tratando de transformar para que sus tablas estén en mysql.

Saludo y no te arrepentirá
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

sistema en red

Publicado por Luis Sayago (3 intervenciones) el 09/08/2013 23:52:59
DE ACUERDO!!

Hay mucha ayuda en la red, y te apoyamos aqui, es realmente muy facil, y veras la velocidad, igual te recomiendo que te cambies a VFp 9,,ya cambiale
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

sistema en red

Publicado por neo (1601 intervenciones) el 10/08/2013 22:22:18
Me gustaria ver como tienes tu prg inicial, sobretodo cuando invocas el set defa y set path tanto local como red..
es muy probable que por ahi esté el problema.


Ademas creo que ya tienes la carpeta de tu data compartida como lectura y escritura en windows..
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

sistema en red

Publicado por TONY RENGIFO DEL CASTILLO (7 intervenciones) el 09/08/2013 23:56:11
EN TU PROGRAMA DE INICIO LLAMA A LA RUTA DE DIRECORIO PRINCIPAL
CON
SET PATH TO
SET DEFAULT
Y LLAMA A TU BASE DE DATOS
DE LA SIGUIENTE FORMA
OPEN DATABASES &RUTA SHARED
DONDE &RUTA ES UN CAMPO DE UNA TABLA LIBRE, QUE ALMACENA UN CAMPO CON LA DIRECCION DE LA BASE DE DATOS
POR EJEMPLO D:/SISTEMA/DATA/BASE_DATOS.DBC

TUS TABLAS NO DEBEN SER ABIERTOS DIRECTAMENTE TIENES QUE ABRIRLOS CON CURSORES O VISTAS PORQUE SI NO PODRAN ACCEDER VARIOS USUARIOS AL MISMO FORMULARIO Y PEOR SI TIENES CARGADO UN GRID CON LOS DATOS DE LA TABLA DIRECTAMENTE, DEBES CARGAR EL GRID CON CUSRSORES EJEMPLO:
SELECT*;
FROM DATOS;
INTO CURSOR XDATOS

XDATOS ES EL CURSOR Y LO CARGAS EN EL GRID
AV VER SI TE SIRVE
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

sistema en red

Publicado por eduardo flacosakeo@hotmail.com (16 intervenciones) el 10/08/2013 22:59:38
gracias a todos por su ayuda y consejos. Si conozco el codigo sql pero nunca lo trabaje haciendo un sistema, tendre que verlo para actualizarme y manejar este lenguaje.
Tony voy a intentar hacer eso que me dijiste gracias a todos. 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