Bloqueo de la base de datos

15/07/2003 - 19:12 por Javier Castro Hermoza | Informe spam
Hola amigos

Tengo una aplicación en VB6.0 con MS Access 2000, son un promedio de 06 a 05
usuarios conectados todo el DIA al sistema, el problema es el siguiente que
de vez en cuando en cualquier maquina sale: la base de datos esta bloqueada
por una maquina X con el usuario Admin. Estoy utilizando la siguiente cadena
de conexión:

strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base.mdb;"

Me conecto a la base de datos, hago la operación que tenga que hacer y me
desconecto

Set con = new ADODB.Connection
con.Open strCon
con.Execute strSQL
con.close
Set con = Nothing

Como hago para evitar que ese error me salga
Gracias por la ayuda que puedan brindarme

Preguntas similare

Leer las respuestas

#1 Victor Koch
15/07/2003 - 20:01 | Informe spam
Hola Javier, lo que te pasa no es un error, es un aviso de que la sentencia
no se pudo ejecutar porque los registros que se intentan modificar están
siendo actualizados por otra terminal, al ser actualizados se deben bloquear
si o si, una vez terminada la actualización se desbloquean automáticamente.
Lo que debes hacer es atrapar esa condición y tomar una decisión dependiendo
del tipo de actualización, la cual deberás hacerla por código, por ejemplo
volver a intentar la actualización o anular todo.

Un saludo, Víctor Koch.


"Javier Castro Hermoza" escribió en el mensaje
news:
Hola amigos

Tengo una aplicación en VB6.0 con MS Access 2000, son un promedio de 06 a


05
usuarios conectados todo el DIA al sistema, el problema es el siguiente


que
de vez en cuando en cualquier maquina sale: la base de datos esta


bloqueada
por una maquina X con el usuario Admin. Estoy utilizando la siguiente


cadena
de conexión:

strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base.mdb;"

Me conecto a la base de datos, hago la operación que tenga que hacer y me
desconecto

Set con = new ADODB.Connection
con.Open strCon
con.Execute strSQL
con.close
Set con = Nothing

Como hago para evitar que ese error me salga
Gracias por la ayuda que puedan brindarme




Respuesta Responder a este mensaje
#2 Morgan
16/07/2003 - 00:26 | Informe spam
Aparte de lo dice victor, te voy a comentar lo que me paso despues de que
migre de DAO a ADO, me empeso a mandar de manera repetida el mensaje que
comentas sin razon aparente, hasta que me di cuenta que en ADO con el simple
hecho de posicionarse en el registro aunque fuera para solo consultarlo esta
se ponia en modo edicion, es decir ya no es necesario el "Rs.Edit" y este me
bloqueaba el registro, por lo que modifique a bloqueo a optimista y a abrir
y cerrar la conexion dependiendo si era solo consulta o edición (tratando
siempre de mantener abierta la conexion lo menos posible ya que se trata de
un punto de venta), a demas de pescar el error al entrar y pedir
confirmacion de reintentar..

Saludos Morgan

Victor Koch escribió en el mensaje de
noticias
Hola Javier, lo que te pasa no es un error, es un aviso de que la


sentencia
no se pudo ejecutar porque los registros que se intentan modificar están
siendo actualizados por otra terminal, al ser actualizados se deben


bloquear
si o si, una vez terminada la actualización se desbloquean


automáticamente.
Lo que debes hacer es atrapar esa condición y tomar una decisión


dependiendo
del tipo de actualización, la cual deberás hacerla por código, por ejemplo
volver a intentar la actualización o anular todo.

Un saludo, Víctor Koch.


"Javier Castro Hermoza" escribió en el mensaje
news:
> Hola amigos
>
> Tengo una aplicación en VB6.0 con MS Access 2000, son un promedio de 06


a
05
> usuarios conectados todo el DIA al sistema, el problema es el siguiente
que
> de vez en cuando en cualquier maquina sale: la base de datos esta
bloqueada
> por una maquina X con el usuario Admin. Estoy utilizando la siguiente
cadena
> de conexión:
>
> strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base.mdb;"
>
> Me conecto a la base de datos, hago la operación que tenga que hacer y


me
> desconecto
>
> Set con = new ADODB.Connection
> con.Open strCon
> con.Execute strSQL
> con.close
> Set con = Nothing
>
> Como hago para evitar que ese error me salga
> Gracias por la ayuda que puedan brindarme
>
>
>
>


Respuesta Responder a este mensaje
#3 Victor Koch
16/07/2003 - 14:33 | Informe spam
Morgan, como decis vos esto sucede porque en ADO no esta mas el metodo Edit,
cuando haces la primer asignacion a un campo del recordset automaticamente
le estas diciendo al recordset que comience el Edit, por eso es de buena
costumbre abrir los recordset del tipo que corresponda, es decir si son de
solo lectura o no, para eso deberias utilizar las opciones CursorType y
LockType.

Un saludo, Víctor Koch.


"Morgan" escribió en el mensaje
news:O7NUM$
Aparte de lo dice victor, te voy a comentar lo que me paso despues de que
migre de DAO a ADO, me empeso a mandar de manera repetida el mensaje que
comentas sin razon aparente, hasta que me di cuenta que en ADO con el


simple
hecho de posicionarse en el registro aunque fuera para solo consultarlo


esta
se ponia en modo edicion, es decir ya no es necesario el "Rs.Edit" y este


me
bloqueaba el registro, por lo que modifique a bloqueo a optimista y a


abrir
y cerrar la conexion dependiendo si era solo consulta o edición (tratando
siempre de mantener abierta la conexion lo menos posible ya que se trata


de
un punto de venta), a demas de pescar el error al entrar y pedir
confirmacion de reintentar..

Saludos Morgan

Victor Koch escribió en el mensaje de
noticias
> Hola Javier, lo que te pasa no es un error, es un aviso de que la
sentencia
> no se pudo ejecutar porque los registros que se intentan modificar están
> siendo actualizados por otra terminal, al ser actualizados se deben
bloquear
> si o si, una vez terminada la actualización se desbloquean
automáticamente.
> Lo que debes hacer es atrapar esa condición y tomar una decisión
dependiendo
> del tipo de actualización, la cual deberás hacerla por código, por


ejemplo
> volver a intentar la actualización o anular todo.
>
> Un saludo, Víctor Koch.
>
>
> "Javier Castro Hermoza" escribió en el mensaje
> news:
> > Hola amigos
> >
> > Tengo una aplicación en VB6.0 con MS Access 2000, son un promedio de


06
a
> 05
> > usuarios conectados todo el DIA al sistema, el problema es el


siguiente
> que
> > de vez en cuando en cualquier maquina sale: la base de datos esta
> bloqueada
> > por una maquina X con el usuario Admin. Estoy utilizando la siguiente
> cadena
> > de conexión:
> >
> > strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base.mdb;"
> >
> > Me conecto a la base de datos, hago la operación que tenga que hacer y
me
> > desconecto
> >
> > Set con = new ADODB.Connection
> > con.Open strCon
> > con.Execute strSQL
> > con.close
> > Set con = Nothing
> >
> > Como hago para evitar que ese error me salga
> > Gracias por la ayuda que puedan brindarme
> >
> >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida