Access - Bloqueo de registros

 
Vista:

Bloqueo de registros

Publicado por Daniel (1 intervención) el 14/10/2005 21:48:30
Hola amigos,
quisiera saber si en Access puedo efectuar bloqueo de filas.
me parece que soporta SELECT FOR UPDATE, sin embargo obtengo error de sintaxis.
Mi programa está en Visual Basic 6, conectándome con Microsoft.Jet.OLEDB.4.0
Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Bloqueo de filas mediante transacciones en Visual Basic 6

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 18:57:24
Hola, Daniel.

En Access, no es posible utilizar la cláusula "SELECT FOR UPDATE" directamente como en algunos otros sistemas de gestión de bases de datos. En su lugar, puedes lograr un comportamiento similar mediante el uso de transacciones.

A continuación, te proporciono un ejemplo de cómo puedes realizar un bloqueo de filas en Access utilizando transacciones en Visual Basic 6:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
 
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
 
' Establecer la cadena de conexión a tu base de datos de Access
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Ruta\Tubase.mdb"
conn.Open
 
' Iniciar una transacción
conn.BeginTrans
 
' Ejecutar una consulta de selección para bloquear las filas deseadas
rs.Open "SELECT * FROM TuTabla WHERE TuCampo = 'Valor' FOR UPDATE", conn, adOpenDynamic, adLockPessimistic
 
' Realizar las operaciones necesarias en las filas seleccionadas
' ...
 
' Confirmar la transacción
conn.CommitTrans
 
' Cerrar el recordset y la conexión
rs.Close
conn.Close
 
Set rs = Nothing
Set conn = Nothing

Asegúrate de ajustar la cadena de conexión a la ruta y el nombre de tu base de datos de Access, así como el nombre de la tabla y el campo que deseas bloquear.

Al utilizar `adLockPessimistic` al abrir el recordset, se logrará un bloqueo de lectura/escritura en las filas seleccionadas, permitiéndote realizar operaciones en ellas de manera segura.

Es importante tener en cuenta que el bloqueo de filas puede afectar el rendimiento en entornos con alta concurrencia, por lo que es recomendable utilizarlo con cuidado y evaluar las necesidades específicas de tu aplicación.

Espero que esta solución te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar