"record locked by another user"

Tengo este error en mi programa estoy modificando registros, mi problema es que intento modificar un registro y no logro hacerlo no se que pasa espero me puedas ayudar pronto por que me super urge

1 respuesta

Respuesta
1
El problema que me comentas es debido a que estas accediendo a un registro el cual esta bloqueado por que otro usuario lo esta modificando, pero como no se si tu aplicación esta en red o como estas ejecutando, no te puedo dar más información, dime si hay un usuario o varios, si has tenido algún cuelgue en el sistema últimamente (también puede deberse a esto, que la bd este estropeada).
Hola de nuevo
Mira mi código es este
procedure Tcapturac.FormClose(Sender: TObject; var Action: TCloseAction);
begin
table1.Open;
table1.First;
table1.DisableControls;
while (not table1.Eof) do
begin
if table1.FieldByName('DH').AsString='A' then
begin
mate1:= Table1.FieldByName('M1').AsFloat;
mate2:= Table1.FieldByName('M2').AsFloat;
mate3:= Table1.FieldByName('M3').AsFloat;
cont1:= Table1.FieldByName('C1').AsFloat;
cont2:= Table1.FieldByName('C2').AsFloat;
cont3:= Table1.FieldByName('C3').AsFloat;
est1:= Table1.FieldByName('E1').AsFloat;
est2:= Table1.FieldByName('E2').AsFloat;
promm:=(mate1+mate2+mate3)/3;
promc:=(cont1+cont2+cont3)/3;
prome:=(est1+est2)/2;
Table1.Edit;
Table1.FieldByName('promedio').Asfloat:=(promm+promc+prome)/3;
table1.Post;
end
else
begin
Table1.Edit;
Table1.FieldByName('promedio').Asfloat:=0.0;
table1.Post;
end;
table1.Next;
end;
table1.Close;
//table2.First;
table1.EnableControls;
opcioncalificaciones.Close;
table2.Open;
table2.First;
table2.DisableControls;
while (not table2.Eof) do
begin
if table2.FieldByName('DH').AsString='A' then
begin
mate1:= Table2.FieldByName('M1').AsFloat;
mate2:= Table2.FieldByName('M2').AsFloat;
mate3:= Table2.FieldByName('M3').AsFloat;
fis1:= Table2.FieldByName('F1').AsFloat;
fis2:= Table2.FieldByName('F2').AsFloat;
fis3:= Table2.FieldByName('F3').AsFloat;
quim1:= Table2.FieldByName('Q1').AsFloat;
quim2:= Table2.FieldByName('Q2').AsFloat;
quim3:= Table2.FieldByName('Q3').AsFloat;
promm:=(mate1+mate2+mate3)/3;
promf:=(fis1+fis2+fis3)/3;
promq:=(quim1+quim2+quim3)/3;
Table2.Edit;
Table2.FieldByName('promedio').Asfloat:=(promm+promf+promq)/3;
table2.Post;
end
else
begin
Table2.Edit;
Table2.FieldByName('promedio').Asfloat:=0.0;
table2.Post;
end;
table2.Next;
end;
table2.Close;
table2.EnableControls;
opcioncalificaciones.Close;
end;
Es un procedimiento para actualizar promedios mediante un dbgrid, en un inicio cuando lo probé por primer vez funciono perfecto pero ahora no se que pasa, la aplicación no esta en red, ni nada por el estilo utilizo tablas dbf.
Estoy desesperada no se que hacer para solucionar este problema incluso quite delphi y lo volví a instalar y nada pasa.
Viendo por encima el procedimiento que me mandas, parece que este bien.
¿El error te da solo cuando ejecuta este procedimiento o al intentar hacer otra cosa en el grid?
Según veo yo el fallo puede venir de que la bd este dañada, utilizando un programa para reparar se solucionaría.
Otro posible fallo sería que según me comentas en el grid que tengas estés editando algún registro y al ejecutarse el procedimiento intente acceder a ese registro pero como se encuentra bloqueado no puede acceder, solución antes de ejecutar el procedimiento guarda los valores de la tabla que tengas relacionada con el grid.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas