Una opción son las transacciones, pero cargan bastante el sistema respecto al chain con bloqueo.

En sql, si trabajas con cursores puedes conseguir bloqueo a nivel de registro. De todas maneras, no parece muy conveniente tener bloqueado un registro desde que el usuario entra a la pantalla de modificación hasta que confirma los cambios, ya que puedes provocar que se te queden procesos colgados.

Nosotros, tanto en acceso rpg como sql, marcamos 'en uso' los registros en una tabla de bloqueos, para indicar que se están utilizando, y cuando un programa quiere acceder a un registro en modo exclusivo consulta la tabla de bloqueos y si el registro no está en ella lo añade y ya lo tiene en exclusiva. La ventaja respecto al bloqueo de registro es que no se te quedan los procesos colgados esperando a que se liberen los registros (o se produzca el timeout de espera de registro). Así, si un usuario quiere entrar a modificar un registro que ya está modificando otro usuario, sin necesidad de esperar le podemos decir que el registro está siendo utilizado, e incluso el usuario que lo tiene.

Una última observación: el acceso con sql está bien para recuperar los registros de una consulta, calcular totales, etc., pero para los típicos accesos a registros sueltos que se hacen en un mantenimiento, el chain no tiene rival. Ten en cuenta además que cada sentencia sql que uses dentro de un rpg consume recursos, por lo que se desaconseja un uso excesivo de sql en programas de servicio.


Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Auditoría y Organización



Javier Mora wrote:
Una duda más al respecto:

En programación tradicional, al realizar un CHAIN o READ sobre un archivo definido de actualización el sistema bloquea automáticamente el registro, hasta realizar un UPDATE, UNLOCK o cerrar el archivo.

Si no me equivoco, un SELECT como sustituto de un CHAIN no bloquea el registro. Y entre esta operación un un UPDATE podría pasar mucho tiempo, por ejemplo en una pantalla de mantenimiento.

¿Cómo se resuelve esta pega?

Un saludo,


Javier Mora

__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

  
begin:vcard
fn;quoted-printable:Fernando P=C3=A9rez
n;quoted-printable:P=C3=A9rez;Fernando
org;quoted-printable:;Auditor=C3=ADa y Organizaci=C3=B3n
email;internet:[EMAIL PROTECTED]
tel;work:Ext. 627
x-mozilla-html:TRUE
version:2.1
end:vcard

__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a