• Domingo 2 de Junio de 2024, 07:51

Autor Tema:  Re: Bloqueo de base de datos en red  (Leído 4219 veces)

ccortes

  • Miembro activo
  • **
  • Mensajes: 91
    • Ver Perfil
Re: Bloqueo de base de datos en red
« en: Martes 8 de Julio de 2003, 23:22 »
0
Me pueden decir que debo de hacer para bloquear ya sea un registro especifico o toda una tabla de una base de datos que trabaje en red, es decir que cuando un usuario este trabajando sobre un registro especifico este no pueda ser accesado por otro usuario, ya sea el registro o toda la tabla.

La coneccion se establece con DAO, pero podria cambiarla a ADO

Gracias de antemano por su valiosa ayuda :think:
Carlos Cortés C

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Bloqueo de base de datos en red
« Respuesta #1 en: Miércoles 9 de Julio de 2003, 08:54 »
0
El parámetros 'Bloqueos' del método 'OpenRecordset' te permite abrir el recordset con el bloqueo que desees.

Set ObjetoRs = ObjetoDb.OpenRecordset (Origen, Tipo, Opciones, Bloqueos)

Valores para 'Bloqueos':

dbReadOnly: Previene que los usuarios hagan cambios al Recordset (predeterminado en espacios de trabajo ODBCDirect).

dbPessimistic: Utiliza el bloqueo pesimista para determinar cómo se pueden hacer cambios al objeto Recordset en un entorno multiusuario. La página que contiene el registro que está modificando está bloqueada mientras utiliza el método Edit (predeterminado en espacios de trabajo Microsoft Jet).

dbOptimistic: Utiliza el bloqueo optimista para determinar cómo se pueden hacer cambios al objeto Recordset en un entorno multiusuario. La página que contiene el registro que está modificando está bloqueada mientras se ejecuta el método Update.

dbOptimisticValue: Utiliza la concurrencia optimista basándose en valores de fila (sólo espacios de trabajo ODBCDirect).

dbOptimisticBatch: Activa la actualización optimista por lotes (sólo espacios de trabajo ODBCDirect).

Espero que esta info te sea de ayuda.

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Bloqueo de base de datos en red
« Respuesta #2 en: Miércoles 9 de Julio de 2003, 16:46 »
0
Hola CCortes:

Mira, se puede hacer de las dos maneras siguientes:

Si trabajas con DAO, en el recordset existe una propiedad llamada Lockedit que posee dos valores boolean, así:

Objdata.Recordset.LockEdits = True

Bloquea el registro para que otro usuario de la red no lo modifique o realice cualquier tipo de edisión en él.

Objdata.Recordset.LockEdits = False

Realiza lo contrario a lo anterior, lo libera del bloqueo.

Ahora, la manera más fácil es trabajar con ADO, ya que cuando cargas el recordset por defecto trabaja con diferentes aspectos para bloquear registros, estos son:


  • Bloqueo Optimista
  • Bloqueo Pepsimista
  • Otros bloqueos...

Y no te tienes que complicar mucho con código.

Si quieres averigua un poco más sobre
"bloqueos" en las ayudas del lenguaje de programación de preferencia.

Espero haber sido de ayuda.

Suerte!!
Saludos...

Mellileo!!