Iniciar Sesión

Ver la Versión Completa : [Duda] Manejo de archivos en Red


moraber
8 de marzo de 2019, 23:17
Gracias Amigos del Foro, algun programador me puede ayudar a manejar archivos en red, que varios usuarios al tiempo usen archivos, leer, grabar, borrar, consultar etc, si que estos se bloqueen o se dañen, Gracias..

Breew
9 de marzo de 2019, 00:06
Hola Moraber.

Yo lo que hago es que cada vez que hago un acceso a un fichero , ya sea para grabar, consultar, etc es abrirlo , efectuar la accion concreta y cerrarlo acto seguido.
leo abro-leo-cierro.
modifico abro-grabo-cierro.

No he tenido problema nunca.


Gracias Amigos del Foro, algun programador me puede ayudar a manejar archivos en red, que varios usuarios al tiempo usen archivos, leer, grabar, borrar, consultar etc, si que estos se bloqueen o se dañen, Gracias..

Josber
9 de marzo de 2019, 12:16
cerrarlo acto seguido.
leo abro-leo-cierro.
modifico abro-grabo-cierro

Pero, eso ralentizará mucho el programa, ¿no?. Yo creo que es mejor usar los FILE STATUS y las DECLARATIVES, que, aunque sea un coñazo de programación, dan buen resultado.

Un saludo.-

Breew
9 de marzo de 2019, 16:13
Hola Josber.

Bueno, es lo que se ocurrio para tener el fichero ocupado el minimo posible.
La verdad es que no noto si se ralentiza o no. Funciona todo muy rapido.
De todas maneras, lo controlo todo con las declaratives, mas que nada para tener constacia de que hace lo que le pido ;)


Pero, eso ralentizará mucho el programa, ¿no?. Yo creo que es mejor usar los FILE STATUS y las DECLARATIVES, que, aunque sea un coñazo de programación, dan buen resultado.

Un saludo.-

JCantero
11 de marzo de 2019, 17:43
Hoy los sistemas operativos son muy rápidos a la hora de abrir un fichero, cerrarlo, leer y escribir.

Pero es cuestión de operatividad, seguridad y compartir la información.

Si diseñas un programa multipuesto, (por ejemplo una aplicación que mantenga datos de clientes) cuando un usuario lee un cliente para su mantenimiento, debe bloquearlo y avisar al resto de que se esta modificando o está en uso. Ya que no seria razonable que dos usuarios modificaran el mismo cliente sin avisar al ultimo en llegar. De lo contrario que datos del cliente seria modificado por que usuario.

Por eso, una consulta o listado abre en modo input y genera el informe sin bloquear a otros usuarios informacion.

Un mantenimiento debe abrir el fichero en modo i-o y bloquear el registro que se está modificando, borrando o dando de alta.

Esto es condición para determinar que una aplicación es multiusuario o multipuesto. Cuando se puede compartir base de datos de forma lógica y denegar el acceso a lo que sea necesario.

Otra cuestión mas complicada es el mantenimiento de por ejemplo un albaran (que contiene una cabecera con datos del cliente, forma de pago, etc y lineas de productos que se dispensan). En esta tarea hay multiples soluciones, pero la mas adecuada el bloquear la cabecera y dejar al usuario que tiene bloqueada la cabecera modificar las lineas de albaran.

Kuk
11 de marzo de 2019, 18:29
El asunto no es sólo el SO, sino que sobre todo los accesos E/S (o I/O en inglés), los discos son mucho más rápidos que antes. Y si es un SSD, mejora en varias veces el rendimiento.