Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/10/2008, 04:26
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Concurrencia con Mysql

La cosa se puede manejar, en principio, de dos formas:
1. Usando un Store Procedure. Como los SP corren en servidor, el bloqueo se inicia y se termina dentro del SP, de modo que la consistencia de la tabla es segura. Esta opción requiere que el server de MySQL en el host sea 5.0 o superior.
2. Usando transacciones. Una transacción es una operación ACID que bloquea por default las modificaciones a la tabla en cuestión. Eso requiere que el motor del host sea InnoDB. Si es una base en web, es probable que tenga MyISAM y no InnoDB por cuestiones de eficiencia. Deberás consultar al proveedor.

Puedes controlar el asunto por código, pero, como dices, eso es medio chapucero...

Respecto al control del bloqueo, La administración del estado de la tabla simplemente lo puedes manejar por el error devuelto por MySQL al intentar acceder a una tabla bloqueada.
Simplemente tienes que fijarte en el número de error devuelto en el listado de errores del manual de referencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)