Resumen Consejos sobre bloqueos en Access


Esto ya lo envié hace un mes más o menos.

Sencillo, sigue estas recomendaciones:
- La base de datos (objeto Database) no es necesario ir abriendola y
cerrandola, solo basta con abrirla al principio del programa y cerrarla al
final. Los Recordset siempre hay que abrirlos, usarlos y cerrarlos.
- No uses controles DATA nada más que para la presentación en un DBGrid. En
caso de que necesites esto pon un Timer a 5-10 segundos en el formulario
principal con la orden DBEngine.Idle dbFreeLocks.
- Las lecturas sobre la base de datos deben ser, TODO en un mismo
procedimiento o función:
    1- Abrir el/los Recordset/s, solo con el/los Registro/s que quieras
leer, no abras toda la tabla y uses los Find...
    2- Realizar todas las lecturas necesarias.
    3- Cerrar todos los Recordsets.
    4- DBEngine.Idle dbFreeLocks (sobra ya que se han cerrado los
Recordsets, pero no esta de menos por si acaso :) ).
- Las modificaciones en la base de datos deben ser, TODO en un mismo
procedimiento o función:
    1- Abrir el/los Recordset/s, si es posible solo con el/los Registro/s
que quieres modificar. Si es para añadir, usa Top 1 en la sentencia SQL.
    2- On Error Goto (parte 8).
    3- Invocar BeginTrans (muy util cuando los cambios afectan a varias
tablas y varios registros).
    4- Realizar todas las modificaciones necesarias. Todas con su Update.
    5- Invocar CommitTrans.
    6- Cerrar todos los Recordsets.
    7- DBEngine.Idle dbFreeLocks (sobra ya que se han cerrado los
Recordsets, pero no esta de menos por si acaso :) ).
(En caso de Error, no olvidar el Exit Sub antes).
    8- Invocar Rollback. Esto deja todo como estaba antes de BeginTrans.
Esto te lleva al problema de dos usuarios modificando el mismo registro,
para ello puedes tener un Campo booleano en la base de datos que te marque
si está siendo editado o no. Compruebas que este False y pones True cuando
pulsa modificar (con los mismos pasos que te indico) y False cuando pulsa
Cancelar o cierra el formulario, una utilidad para desbloquear todos se hace
imprescindible (por los cortes de luz).
- La base de datos DEBE ser compactada dos veces a la semana por lo menos,
muy importante.
Con todo esto te aseguro que nunca tendrás problemas con los bloqueos de
registros.

-----Original Message-----
De: Alberto Rosenberg <alkatz@mecon.ar>
Para: vb-esp@ccc.uba.ar <vb-esp@ccc.uba.ar>
Fecha: viernes 1 de mayo de 1998 0:49
Asunto: (VB-ESP)Access Bloqueo


Amigos:

tengo un problema con los bloqueos en access, quisiera saber:
1 como se puede detectar hantes de actualizar un registro que esta
bloqueado
2 como puedo desbloquearlo, el problema es que aparentemente se
bloquea cuando dos usuarios cargan en una misma tabla, no hablo del
mismo registro.

Es la primera vez que desarrollo un programa para cargar en red y no
puedo encontrar la solucion, desde ya muchas gracias.

Alberto




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com