Bloqueo pesimista con ADO, ACCESS y SQL
Estoy desarrollando un mantenimiento de tablas y tengo un problema con el bloqueo de registros.
Este mantenimiento es para acceder desde varios puestos de trabajo y necesito bloquear un registro cuando este siendo modificado por algún usuario pero la instrucción "pessimistic" no lo bloquea. Con los CONTROL DATA va de maravilla pero no los debo utilizar. He de utiliar ADO y los objetos RECORDSET con apertura vía SQL. La apertura de la tabla la hago como sigue:
*****************************
Set CNN = New ADODB.Connection
Set rstArticulos = New ADODB.Recordset
CNN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sPathBase & ";"
CNN.Open
RstArticulos. Open "SELECT * FROM Articulos ORDER BY Referencia", CNN, adOpenDynamic, adLockPessimistic
***********************
He probado incluso con la instrucción "rstArticulos.LockType = adLockPessimistic" antes de abrir la tabla pero nada de nada, no bloquea el registro y permite editarlo aunque supuestamente esté "pillado" por otro usuario (otro PC).
Con los CONTROL DATA, al ejecutar el método EDIT lo bloquea bien, perfecto, pero los objetos RECORDSET de ADO para ACCESS 2000 no llevan el método EDIT. No se si será por esto o por utilizar instrucciones SQL (necesito usarlas) o si puedo solucionarlo de otra forma pero aquí os expongo mi problema a ver si me echáis una mano.
Este mantenimiento es para acceder desde varios puestos de trabajo y necesito bloquear un registro cuando este siendo modificado por algún usuario pero la instrucción "pessimistic" no lo bloquea. Con los CONTROL DATA va de maravilla pero no los debo utilizar. He de utiliar ADO y los objetos RECORDSET con apertura vía SQL. La apertura de la tabla la hago como sigue:
*****************************
Set CNN = New ADODB.Connection
Set rstArticulos = New ADODB.Recordset
CNN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sPathBase & ";"
CNN.Open
RstArticulos. Open "SELECT * FROM Articulos ORDER BY Referencia", CNN, adOpenDynamic, adLockPessimistic
***********************
He probado incluso con la instrucción "rstArticulos.LockType = adLockPessimistic" antes de abrir la tabla pero nada de nada, no bloquea el registro y permite editarlo aunque supuestamente esté "pillado" por otro usuario (otro PC).
Con los CONTROL DATA, al ejecutar el método EDIT lo bloquea bien, perfecto, pero los objetos RECORDSET de ADO para ACCESS 2000 no llevan el método EDIT. No se si será por esto o por utilizar instrucciones SQL (necesito usarlas) o si puedo solucionarlo de otra forma pero aquí os expongo mi problema a ver si me echáis una mano.
1 respuesta
Respuesta de emperador20