Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Select bloquea update (https://www.clubdelphi.com/foros/showthread.php?t=60083)

luis1980 19-09-2008 12:15:53

Select bloquea update
 
Hola. Cuando hago un select de una tabla no puedo modificar los datos de esa tabla mientras no se cierre la consulta del select, ni siquiera aunque intente modificar los datos desde otra aplicacion.
Agradeceria si alguien me diese una solución, gracias.
La manera en que hago el select es la siguiente:

hnd = mysql_init(NULL);
if (mysql_real_connect(hnd,"localhost",user,pass,"BD",0,NULL,0) != NULL){
memcpy(sql, "SELECT Id,Foto1,Foto2,Foto3 FROM Tabla WHERE
Enviado Is not Null",300);
if (!mysql_query(hnd,sql)){
res = mysql_use_result(hnd);
if (res){
row = mysql_fetch_row(res);
while (row){
if (row[1] != NULL)
foto1 = rutafotos + row[1];
if (row[2] != NULL)
foto2 = rutafotos + row[2];
if (row[3] != NULL)
foto3 = rutafotos + row[3];
}
}
mysql_free_result(res);
}
}
mysql_close(hnd);

rgstuamigo 20-09-2008 15:13:10

El Servidor Pone Un Candado
 
Ese es problema que el servidor pone un candado para las consultan que le llegan. Te doy un ejemplo:
Digamos que el usuario X de la pc X1 esta actualizando la tabla Empleado de un a base de datos ,pero exactamente en ese momento el usuario Y de la maquina Y1 esta tambien esta eliminando una tupla o varias de la misma tabla empleado ¿Que crees que ocurriria?:confused:
Pues la tabla quedaria un desastre y tu base de datos seria inconsistente ¿verdad? Imaginate que si es una transaccion de una cuenta Bancaria o algo por el estilo.
Es ahi lo que surge la idea de CANDADO los servidores ponen candado a una consulta y a sus tablas correspondiente, miestras que no termine la transaccion o la consulta, nadie podra tocar esa tabla, ¿me entiendes?.
Terminada la transaccion o la consultan se abre el candado para dejar libre para cualquier otra consulta.Asi trabajan Los servidores.
De todas manera es bueno que busques un manualcito sobre este tema.;)
Saludos..:D

luis1980 22-09-2008 12:51:04

Gracias
 
Gracias por responder, me has aclarado el tema.

Saludos.


La franja horaria es GMT +2. Ahora son las 19:23:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi