Cuando una tabla esta bloqueada

04/08/2004 - 15:43 por DiegoC | Informe spam
Saludos: Supongamos que un usuario esta procesando una
tabla mas o menos grande que puede llevar 1 0 2 minutos y
esta se encuentra bloqueada, si otro usuario trata de
modificar algun datos debe esperar a que termine el
proceso anterior para que SQL le quite el bloqueo , mi
pregunta es como desde una aplicación cliente (en mi caso
FoxPro), puedo yo hacerle saber al sugundo usuario que la
demora es porque esa tabla esta bloqueada, Como yo se en
SQL que una tabla esta bloqueda?. En FoxPro existen
funciones que me permiten hacer esto. Como es en SQL?

Gracias

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP SQL]
04/08/2004 - 18:19 | Informe spam
Puedes usar el sproc sp_lock para saber los locks que están puestos. Los
detalles de uso los tienes en los Books Online (BOL) de tu instalación SQL.

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"DiegoC" wrote in message
news:c10701c47a29$07776710$
Saludos: Supongamos que un usuario esta procesando una
tabla mas o menos grande que puede llevar 1 0 2 minutos y
esta se encuentra bloqueada, si otro usuario trata de
modificar algun datos debe esperar a que termine el
proceso anterior para que SQL le quite el bloqueo , mi
pregunta es como desde una aplicación cliente (en mi caso
FoxPro), puedo yo hacerle saber al sugundo usuario que la
demora es porque esa tabla esta bloqueada, Como yo se en
SQL que una tabla esta bloqueda?. En FoxPro existen
funciones que me permiten hacer esto. Como es en SQL?

Gracias
Respuesta Responder a este mensaje
#2 Maxi
04/08/2004 - 18:19 | Informe spam
Diego, el motor solo se encarga de ello, generalmente es dificil que una
tabla esta bloqueada, lo que se bloquean son los registros, claro tenes
formas de bloquear toda la tabla, pero no es lo comun.

A tu cliente le llegara un mensaje de TimeOut, dependiendo de como lo has
configurado es cuanto tiempo esperara.

Cuando el Query Time_out marca el error es eso lo que deberias mostrar.

ahora tambien podrias saber que procesos bloquean las cosas

por ejemplo con sp_who

Suerte

Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"DiegoC" escribió en el mensaje
news:c10701c47a29$07776710$
Saludos: Supongamos que un usuario esta procesando una
tabla mas o menos grande que puede llevar 1 0 2 minutos y
esta se encuentra bloqueada, si otro usuario trata de
modificar algun datos debe esperar a que termine el
proceso anterior para que SQL le quite el bloqueo , mi
pregunta es como desde una aplicación cliente (en mi caso
FoxPro), puedo yo hacerle saber al sugundo usuario que la
demora es porque esa tabla esta bloqueada, Como yo se en
SQL que una tabla esta bloqueda?. En FoxPro existen
funciones que me permiten hacer esto. Como es en SQL?

Gracias



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.732 / Virus Database: 486 - Release Date: 29/07/2004
Respuesta Responder a este mensaje
#3 Javier Loria
05/08/2004 - 04:05 | Informe spam
Hola Diego:
Una nota adicional, es mi opinion, que la solucion debe estar orientada
a eliminar el bloqueo original y a evitar que se provoque. Mi experiencia es
que si tratas de solucionar el problema enviando mensajes de un lado a otro
la cosa no funciona mucho y las aplicaciones son muy poco escalables.
No hay forma de evitar ese bloque de 1/2 minutos?
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
DiegoC escribio:
Saludos: Supongamos que un usuario esta procesando una
tabla mas o menos grande que puede llevar 1 0 2 minutos y
esta se encuentra bloqueada, si otro usuario trata de
modificar algun datos debe esperar a que termine el
proceso anterior para que SQL le quite el bloqueo , mi
pregunta es como desde una aplicación cliente (en mi caso
FoxPro), puedo yo hacerle saber al sugundo usuario que la
demora es porque esa tabla esta bloqueada, Como yo se en
SQL que una tabla esta bloqueda?. En FoxPro existen
funciones que me permiten hacer esto. Como es en SQL?

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