Problemas con registros de una tabla

08/09/2003 - 13:38 por JRAVLES | Informe spam
Hola Grupo!

Tengo un server2000 con sql2000 instalado. Ataco sobre
la base de datos de sql en acces2000. Tengo un problema a
la hora de actualizar i dar de alta registros en una
determinada tabla. los permisos son totales sobre la tabla
pero hay ciertos registros, que no me deja modificarlos.
estos son los que se han dado ultimamente de alta. A la
hora de modificarlos el acces me da el siguiente
error "conflicto de escritura: Otro usuario modifico este
registro despues de que usted comenzo a modificarlo" y me
da tres opciones a elegir: "Guardar registro"
desabilitada "copiar en portapapeles" "no hacer cambios".

Lo curioso es que con otros registros de la tabla no me da
este mensaje son con los últimos que se han dado de alta.

Sabeis a que puede ser debido y como puedo solucionarlo?

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
09/09/2003 - 03:45 | Informe spam
Posiblemente has abierto una grilla en Access para mostrar los datos y en
tanto la mantienes abierta, desde otra grilla (u otra aplicación cualquiera)
se han modificado los datos. La grilla de Access no refresca automáticamente
los datos por tanto estás recibiendo la adevertencia de que estás leyendo
"datos sucios" (lo que ves en oantalla no es lo que realmente está
almacenado en ese momento en la base de datos, pues alguien ya lo modificó).

La solución programática --dicho en tono genérico ya que desconozco tu
aplicación-- consiste en que cuando muestras datos que van a ser
modificados, deben bloquearse esos datos para que otra aplicación no pueda
alterarlos mientras tu aplicación los está editando.

saludos
gux



Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"JRAVLES" wrote in message
news:44e101c375fd$b55fb570$
Hola Grupo!

Tengo un server2000 con sql2000 instalado. Ataco sobre
la base de datos de sql en acces2000. Tengo un problema a
la hora de actualizar i dar de alta registros en una
determinada tabla. los permisos son totales sobre la tabla
pero hay ciertos registros, que no me deja modificarlos.
estos son los que se han dado ultimamente de alta. A la
hora de modificarlos el acces me da el siguiente
error "conflicto de escritura: Otro usuario modifico este
registro despues de que usted comenzo a modificarlo" y me
da tres opciones a elegir: "Guardar registro"
desabilitada "copiar en portapapeles" "no hacer cambios".

Lo curioso es que con otros registros de la tabla no me da
este mensaje son con los últimos que se han dado de alta.

Sabeis a que puede ser debido y como puedo solucionarlo?
Respuesta Responder a este mensaje
#2 JRAVLES
09/09/2003 - 10:58 | Informe spam
Soy novato en sql... no se muy bien como funciona...
Lo curioso es que solo me lo hace con ciertos registros de
esa tabla... i con los otros funciona correctamente
Posiblemente has abierto una grilla en Access para


mostrar los datos y en
tanto la mantienes abierta, desde otra grilla (u otra


aplicación cualquiera)
se han modificado los datos. La grilla de Access no


refresca automáticamente
los datos por tanto estás recibiendo la adevertencia de


que estás leyendo
"datos sucios" (lo que ves en oantalla no es lo que


realmente está
almacenado en ese momento en la base de datos, pues


alguien ya lo modificó).

La solución programática --dicho en tono genérico ya que


desconozco tu
aplicación-- consiste en que cuando muestras datos que


van a ser
modificados, deben bloquearse esos datos para que otra


aplicación no pueda
alterarlos mientras tu aplicación los está editando.

saludos
gux



Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties


expressed or implied,
and confers no rights.


"JRAVLES" wrote in message
news:44e101c375fd$b55fb570$
Hola Grupo!

Tengo un server2000 con sql2000 instalado. Ataco sobre
la base de datos de sql en acces2000. Tengo un problema a
la hora de actualizar i dar de alta registros en una
determinada tabla. los permisos son totales sobre la tabla
pero hay ciertos registros, que no me deja modificarlos.
estos son los que se han dado ultimamente de alta. A la
hora de modificarlos el acces me da el siguiente
error "conflicto de escritura: Otro usuario modifico este
registro despues de que usted comenzo a modificarlo" y me
da tres opciones a elegir: "Guardar registro"
desabilitada "copiar en portapapeles" "no hacer cambios".

Lo curioso es que con otros registros de la tabla no me da
este mensaje son con los últimos que se han dado de alta.

Sabeis a que puede ser debido y como puedo solucionarlo?


.

Respuesta Responder a este mensaje
#3 Miguel Egea
09/09/2003 - 11:32 | Informe spam
Hola Gustavo y Jravles, Access implementa bloqueo optimista, lo que quiere
decir (tal y como comentaba Gustavo) que la instrucción update que ejecuta
access contiene en su where una comparación con los valores antiguos.

De esta forma asegura que no sobreescribirá cambios hechos por otro usuario
que no estás viendo en tu grid.
Sin embargo no estoy nada de acuerdo en la solución que propone Gustavo,
porque bloquear mientras se está editando supone dejar transacciones
abiertas y generar bloqueos sobre registros 'por si acaso', esto genera muy
poca posibilidad de concurrencia y escalabilidad.

De hecho en .NET, que creo que todos estamo de acuerdo que es la tendencia,
con el modelo 'desconectado', además es bastante dificil de implementar algo
como lo que propone Gustavo.

En Portalsql.com hay algún ejemplo de lo que yo entiendo como 'bloqueos
lógicos' que trataría de simular un bloqueo pesismista pero con lecturas
'optimistas'. Lo cierto es que no deja de ser un invento, pero puede ayudar
en situaciones que lo requieran.

Creo de todas formas sinceramente que Gustavo se estaba refiriendo a otros
entornos al no conocer con detalle lo que pretende nuestro amigo, pero me
parece igual de importante que todas las personas que nos leen, tengan
también este otro punto de vista.




Saludos Cordiales
=Proxima reunión virtual sobre rendimiento.
Messenger:
Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"Gustavo Larriera [MVP]" <remove underscore escribió
en el mensaje news:#
Posiblemente has abierto una grilla en Access para mostrar los datos y en
tanto la mantienes abierta, desde otra grilla (u otra aplicación


cualquiera)
se han modificado los datos. La grilla de Access no refresca


automáticamente
los datos por tanto estás recibiendo la adevertencia de que estás leyendo
"datos sucios" (lo que ves en oantalla no es lo que realmente está
almacenado en ese momento en la base de datos, pues alguien ya lo


modificó).

La solución programática --dicho en tono genérico ya que desconozco tu
aplicación-- consiste en que cuando muestras datos que van a ser
modificados, deben bloquearse esos datos para que otra aplicación no pueda
alterarlos mientras tu aplicación los está editando.

saludos
gux



Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"JRAVLES" wrote in message
news:44e101c375fd$b55fb570$
Hola Grupo!

Tengo un server2000 con sql2000 instalado. Ataco sobre
la base de datos de sql en acces2000. Tengo un problema a
la hora de actualizar i dar de alta registros en una
determinada tabla. los permisos son totales sobre la tabla
pero hay ciertos registros, que no me deja modificarlos.
estos son los que se han dado ultimamente de alta. A la
hora de modificarlos el acces me da el siguiente
error "conflicto de escritura: Otro usuario modifico este
registro despues de que usted comenzo a modificarlo" y me
da tres opciones a elegir: "Guardar registro"
desabilitada "copiar en portapapeles" "no hacer cambios".

Lo curioso es que con otros registros de la tabla no me da
este mensaje son con los últimos que se han dado de alta.

Sabeis a que puede ser debido y como puedo solucionarlo?


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