evitar que o registro seja editado por mais de um usuario
boa tarde pessoal, alguem sabe como evitar que o registro seja editado por mais de um usuario no delphi com firedac?
Nei
Curtidas 0
Respostas
Rafael Bosco
30/09/2015
Primeiramente adicione um campo MODIFICADO na vossa tabela, mantendo como FALSE, se alguém modificar ela, você muda para TRUE, e se posteriormente, algum outro usuário tentar modificar o registro, verifique se o campo estiver TRUE, não deixe alterar.
procedure CheckModificar;
const
SQL: String = 'SELECT MODIFICADO FROM TABELA';
begin
fQuery.SQL.Clear;
fQuery.SQL.Add(SQL);
fQuery.Open;
if fQuery.FieldByName('MODIFICADO').AsInteger = - 1 then
raise Exception.Create('Não é possível modificar o registro, pois, já foi alterado por outro usuário');
end;
GOSTEI 0
Mikelustosa
30/09/2015
Não aconselho criar campo, como o amigo falou, pois o valor do campo pode ficar preso em caso de algum erro de inserção ou edição causando dores de cabeça ao usuário.
Uma alternativa seria criar uma query_editando e ao tentar editar, verificar se essa query_editando está em modo de edição.
Ficaria assim:
If query_editando.state in [dsEdit] then
begin
//informe mensagem que não é possivel editar pois já esta sendo editado...
end;
Uma alternativa seria criar uma query_editando e ao tentar editar, verificar se essa query_editando está em modo de edição.
Ficaria assim:
If query_editando.state in [dsEdit] then
begin
//informe mensagem que não é possivel editar pois já esta sendo editado...
end;
GOSTEI 0