La Web del Programador: Comunidad de Programadores
 
    Pregunta:  575 - BLOQUEO DE FICHEROS
Autor:  Emilio
En el tema del bloqueo de ficheros para trabajar en red, lo he conseguido pero solo puedo bloquear por paginas, osea 2048 bytes es decir si cada registro de mi base de datos ocupa 135 bytes hasta 2048 tengo un monton de espacio vacio, es decir que aproximadamente bloquea 16 registros, con el consiguiente problema que esto acarrea, ¿Podrias indicarme como o a alguien o algun lugar donde me pudiesen ayudar?.

  Respuesta:  Alvaro Navarro Chaves
El bloqueo en visual 5 es de dos páginas y por lo que se el visual 6 es mayor, sin embargo el bloqueo se puede hacer optimista o pesimista si lo bloqueas optimista le facilita que aunque se bloque la página solo el registro que entra en modo de edicion quede bloqueado dejando a las demás personas trabajar con los demas registros sin tener problema.
Aplica el bloqueo al accesar el registro y este eso si, si alguien modifica ese registro en ese mismo momento enviara un mensaje de error que debes controlar. Si deseas mas información es posible que te envie parte de la sintaxis ya comprobada de como se hace.

  Respuesta:  Rodrigo Treviño
efectivamente el bloqueo es por paginas de 2kb, la unica forma en que he podido solucionar ese problema es haciendo una rutina en codigo para bloquear el registo especifico, esta rutina (en realidad son dos)la utilizo cuando abro el registro, y cuando lo guardo. el truco consiste en añadir un campo boleano al registro, y cuando abro el registro verifico que este en si, y si lo esta entonces abro el registro y lo cambio a "no" (si esta en "no" quiere decir que esta siendo editado), y cuando guardo el registro con los cambios vuelvo a establecer el campo a "si", para permitir que sea editado.

esto es lo que hace en la practica el bloqueo, pero sobre los 2kb de la pagina.

el bloqueo aptimista te lo recomiendo solo si conoces el manejo de errores, y recuerda que el mensaje de error te lo da cuando tratas de guardar los cambios, no cuando lo abres.

saludos y espero haberte ayudado