FoxPro/Visual FoxPro - acceso compratido..

 
Vista:

acceso compratido..

Publicado por daniel espinosa (57 intervenciones) el 26/02/2004 21:25:52
hola amigos
se trata de lo siguiente, tengo una plicacion que maneja inventarios y cartera, ahora quiero empezar a hacer las modificaicones para que mi aplicacion quede trabajandoen red, he consultado bastante y he encontrado que con fox puede ser muy facil trabajar en red por los comandos que maneja, he consultado toda la ayuda, tambien varios libros y todos hablan de bloquear las tablas, bloquear rencabezados, registros y hasta almacenar datos en bufer, ahora la pregunta es cual es el sentido unico de estos bloqueos, o mejor dicho en que caso es que hay que utilizarlos, cuando este listando una tabla? Cuando este grabando un registro? Debo grabar con append blank? Si utilizara una tabla en un form para ser vista en una grid1 y esta tabla la necesito en otro equipo para grabar datos y necesito buscar con seek y por ende utilizar un index , como le hago?., amigos si logro conocer y entender cual es el fin unico de bloquear en cualquier forma que fox lo permite, podre lograr mi cometido… agradeceria no tanto ejemplo de aplicaciones en red, mas bien explicaciones de cómo es que prácticamente funcionan los bloques y cuando se deben utilizar y las posibles situaciones que se puedan presentar y que hay que tener en cuenta en programacion en red...
Gracias desde Medellín colombia

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:acceso compratido..

Publicado por Roman Suazo (2723 intervenciones) el 26/02/2004 22:11:14
Tu pregunta pues requiere de una respuesta muy extensa que no se podria desarrollar precisamente en un foro virtual (aunque espero que otras personas aporten algo para ampliar mi respuesta). Los bloqueos existen de dos formas automaticos y manuales,
los automaticos se dan cuando usas por ejemplo, tableupdate, estos bloqueso son importantes ya que el fox guarda cierta informacion en al cabecera de los archivos, por lo tanto es importante que esa informacion sea lo mas confiable posible. Esa es una de las razones por lo tanto que el uso de la tabla debe ser exclusivo en tiempo determinado (entre otras razones).
En ambiente donde exista cero posiblidad o minimas posibilidades de que varios usuarios esten trabajando con un mismo registro a la vez, el bloqueo automatico sera justo lo que ocupes (nada mas). De lo contrario seria recomendable usar los bloqueos
manuales, estos bloqueos son importante por muchas razones, por ejemplo, supongamos que dos usuarios esten usando el mismo registro a la vez, uno decide borrarlo y el otro seguir actualizando, Como reoslverias ese problemita? o que pasaria si dos usuarios esten actualziando el mismo registro a la vez, con la actualziacion de que usuariio te quedarias? Es un poco dificil resolver esos problemas, pero con los bloqueos se resuelve relativemente facil. Ojo, los bloqueos tienen sus desventajas, que pasaria si un usuario bloquea un registro y seguidamente se va a almorzar? en todo ese
lapso ningun otro usuario tendria acceso a ese informacion. Ademas vale recalcar que los bloqueso no siempre son populares, epro algunas veces osn un mal necesario.
Otro problemilla con los bloqueso es que hacen la sinterfaces un poco mas incomodas de usar.

Saludos
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

otro aporte por favor ?

Publicado por daniel espinosa (57 intervenciones) el 27/02/2004 16:07:05
gracias romasn, siempre me sorprende lo tanto que sabes de fox...
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:otro aporte por favor ?

Publicado por Roman Suazo (2723 intervenciones) el 27/02/2004 16:57:42
Voy a recalcar un poco mas en las ideas...
Lo mejor es usar buffers, el problema que pueda haber es que dos usuarios traten de
bloquear la tabla a la vez (al tratar de guardar los datos), en ese caso el tableupdate te informaria que hubo un problema, asi dandole la posibilidad al usuario de volver a ejecutar el ´save´de los datos posteriormente. Los bufferes SIEMPRE se deben usar con transacciones (BEGIN TRANSACTION) ,asi nos aseguramos que la informacion que se guarda en la tabla sera precisa. Checa el comando SET REPROCESS, y AERROR(), asi junto al ON ERROR, los errores que puedan ocurrir serian facil de atraparlos y encontrarles salida.

Ademas existen otros tecnicas de trabajar con las tablas, la cual seria con cursores, que
una que la informacion este validada, pasa esa informacion a la tabla real

Al fin y al cabo, todo dependeria del analisis que tu hayas hecho del sistema, lo mejor es
evitar que los usuarios trabajen con muchos datos a la vez (lo necesario estrictamente).

Los bloqueos solo son ncesarios en casos extremos (hay otras bases de datos que manejan estos asuntos automaticamente y de forma eficiente, SQL server, por ejemplo.)

Otro aspecto a considerar es si vas a realizar operaciones en lotes extensas, asi podrian ocurrir mas problemas de lo previsto. Estas operacione (de preferencia)solo deben ser realizados muy de vez en cuando y cuando solo un usuario este usando la tabla de forma exclusiva.

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

GRACIAS ROMAN

Publicado por danie espinosa (1 intervención) el 28/02/2004 00:03:23
gracias
cada vez que leo tus respuestas, me intereso mas en estudiar y copio nota de todo lo que dices... con esto y otras cosas que he consultado con otros foristas me empiezo a meter en la programacion multiusuario
gracias de nuevo
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