Problema con tabla

Me pasa lo siguiente entro a un formulario productos, presiono un botón que carga una grilla mediante un selec y la hace visible con los datos requeridos, hago doble clic en cualquier campo de la primera columna de la grilla y me traspasa los datos correspondientes al formulario. Hasta aquí todo bien.
Ahora, por ejemplo hago clic en el botón modificar y luego intento guardar los cambios realizados y me arroja el mensaje indicándome que el archivo esta en uso. ¿Por qué sucede esto?
Esto me sucede al modificar los productos, pero lo más extraño es que prácticamente tengo el mismo código (pero trabajo con otra tabla)para guardar los cambios en el maestro de vendedores y me resulta todo bien.
Me estoy volviendo loca, no se que hacer, estoy pegada hace rato en esto.
Please ayudame
mi correo es [email protected]
PD: ocupo gatte memvar para depositar los datos en el fomulario.
Chao.

3 respuestas

Respuesta
1
Intenta a la hora de llamar a la tabla usar lo siguiente:
Por ejemplo
if !used("clientes")
Use clientes shared
Endif
Se le clientes
insert into ...
Respuesta
1
No, las variables de memoria no tienen nada que ver, bueno esto te puede ocurrir por:
Puedes estar abriendo la tabla en la que vas a guardar en modo exclusivo en cualquier parte del sistema, y cuando la vas a seleccionar para guardar los datos te arroja este error "Esta actualmente en uso"...
Intenta verificando esto, si no te da resultado escríbeme, ok, siempre sacare un tiempo para responderte...
Respuesta
1
Estuve mirando lo que me enviaste... encontré algunas cosas para observarte.
El tema es que no lo pude ejecutar porque me faltan algunas clases.
Pero de todos modos tienes que hacer lo siguiente:
Abre el formulario "Stock", vé a 'View' (Ver) -> 'Data Environment' (Entorno de datos) y agrega la tabla "MOVIMIEN". Siempre debes hacer eso en todos los formularios y agregar las tablas que vayas a usar en él.
NUNCA debes usar las siguientes instrucciones:
Close tables
Close databases
Close all
Use
Ya que estos son comandos de FOXPRO para DOS y no es bueno usarlos en Visual FoxPro, para eso existe el 'Entorno de Datos'
Por lo tanto, en el método "Mod" de tu formulario "Stock" debes cambiar las lineas:
Close tables
select 2
Use movimien in 2
Por la línea:
select movimien
Y no olvides agregar en el 'Entorno de Datos' la tabla 'Movimien'.-
---- OOo ----
El error que te daba, es justamente porque al ejecutar por primera vez el comando USE, te abre la tabla, pero al usarlo por segunda vez, la tabla ya está en uso... he ahí el error.
Por eso, NO hay que usar el comando USE en VFP.
Simplemente agregas en el Entorno de Datos las tablas que necesites y luego seleccionas las que quieres usar con el comando SELECT.
Saludos
Enviame el formulario y las tablas a [email protected]
Seguramente estas usando el comando USE en el formulario, y eso no se debe hacer.
Ok, te acabo de enviar mi proyecto.
Ojala puedas ayudarme.
Chao.
Antes que nada deberás tener un servidor y varias terminales.
Cuando se configura una red, el administrador de la red le da un nombre al servidor (ej.: SERVER).
En el servidor debes crear una carpeta en la cual grabarás tu .EXE, con las tablas, librerías de VFP y demás archivos. Supongamos que esta carpeta es: RUPANCO. Lo primero que debes hacer es establecerla como recurso compartido (Click derecho en la carpeta -> Compartir), darle acceso total y darle un nombre (ej.: RUPA).
Luego en el .PRG que arranca tu programa debes escribir las siguientes lineas:
SET DEFAULT TO \SERVERRUPA
SET PATH TO \SERVERRUPADATOS, \SERVERRUPAFORMS, \SERVERRUPAGRAPH, \SERVERRUPAICONS, \SERVERRUPAREPORTS
Debes asegurarte de que en ningún otro lugar del sistema se redireccione el PATH y el DEFAULT.
Por ultimo, en cada una de las terminales debes crear un acceso directo en el escritorio y en la linea de comandos poner por ejemplo: \SERVERRUPAMENU.EXE
En si el tema es más extenso, no es tan sencillo, pero a medida que vayas haciendo las cosas me vas preguntando. ¿Ok?
Saludos
Fernando Alvarez
Ah, termina esta pregunta y si quieres seguir con el tema hazme otra pregunta (no continúes con esta).
Te agradezco mucho tu dedicación en responderme.
Ahora, si sigo tus recomendaciones, como hago para que mi sistema me funcione en red, es decir, instalo el programa en 1 pc y desde otras 2 o3 pcs más accedo a mi sistema.
Chao.
Ok, eres super amable.
Ahora tu me dices que por ej. el pc servidor se llama SERVER y el nombre mi carpeta del sistema compartida es RUPA,
porque en el código me indicas SERVERRUPA y no SERVERRUPA.
Chao.
no se que sucede con la pagina de todoexpertos.com, pero no muestra las barras invertidas (\\\\\):
donde dice: SERVERRUPA debe decir:
<BARRA INVERTIDA><BARRA INVERTIDA>SERVER<BARRA INVERTIDA>RUPA
¿Se entendió?
Peeeerdoooonaameeee, por la demora, te agradezco mucho tu buena disposición.
Co nrespecto a mi pregunta para trabajar en red. Según los datos de tus respuesta, ¿eso es todo lo que se debe hacer?.
No, en el programa .PRG que arranca tu sistema debes poner las siguientes líneas:
SET EXCLUSIVE OFF
SET AUTOSAVE ON
SET OPTIMIZE ON
SET REPRO TO AUTOMATIC
SET MULTILOCKS ON
Ademas NUNCA debes usar los comandos:
PACK
ZAP
USE
Close data
Close all

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas