Access 2000 y bloqueos

Tengo una aplicación ERP en access 2000 (30 usuarios) que funciona muy bien. Ahora estoy implantando otra base de datos que coge información de terminales de fábrica y la actualiza en la base de datos ERP (para tener stocks y trazabilidad a tiempo real). Esta aplicación actualiza cada 15 minutos pero a veces me encuentro con los errores propios de bloqueo de Jet 4.0 y su passive connection control (3356, 3045, 3734) y no se finaliza la actualización de datos. Para actualizar utilizo el método CURRENTDB.EXECUTE siempre como transacción (begintrans committrans y la opción dbonerrorfail.
A pesar de que todos los usuarios acceden a la base de datos donde están las tablas en modo compartido, en ocasiones me generan bloqueos en toda la base de datos o en tablas, impidiendo el acceso hasta que el usuario sale de la base de datos. ¿Conoces algún truco o código que impida que esto suceda? En las FAQ's de microsoft he encontrado referencias al problema, pero ninguna solución práctica.

1 Respuesta

Respuesta
1
No sé si te va a servir de algo, pero en lugar de utilizar Currentdb. Execute utiliza:
dim wks as workspace
Dim dbs as database
set wks=dbengine.createWorksPace(NombreWKS,NombreUsuario,Password)
set dbs=wks.Opendatabase(RutaBd)
wks.beginTrans
dbs.Execute strSQL, dbFailOnError
wks.CommitTrans
a la salida del procedimiento..
dbs.close : set dbs=nothing
wks.close : set wks=nothing
Es posible que te quede algo abierto... por eso te dé estos problemas de bloquo... libera la base de datos siempre lo más rápido posible..
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas