Bem já tenho o MySql configurado e funcionando e todas as estações
acessam o bd normalmente. Mas o que desejo, é que quando um
usuário colocar um dado registro sob edição, que os demais não o
possam fazê-lo também. E não é isso que está acontecendo, todos
estão podendo atualizar o mesmo registro e ao mesmo tempo. O
que preciso saber é como travar esse registro ou como detectar
uma alteração no registro em edição, que tenha sido, simultaneamente
editado por um outro usuário.
O código simplificado que estou usando é o seguinte:
INCLUSÃO
procedure TForm1.SpeedButtonNovoClick(Sender: TObject);
begin
TabelaAtiva := DataModule2.findcomponent(QueryAtiva);
if assigned(TabelaAtiva) then
begin
registro := TZQuery(TabelaAtiva).RecNo;
TZQuery(TabelaAtiva).RequestLive := True;
TZQuery(TabelaAtiva).Append;
SetButtons;
end;
end;
ALTERAÇÃO
procedure TForm1.SpeedButtonEditaClick(Sender: TObject);
begin
TabelaAtiva := DataModule2.findcomponent(QueryAtiva);
if assigned(TabelaAtiva) then
begin
TZQuery(TabelaAtiva).RequestLive:= True;
TZQuery(TabelaAtiva).Edit;
DBEdit1.Selstart:= Length(DBEdit1.text);
DBEdit1.SetFocus;
SetButtons;
end;
end;
GRAVAÇÃO
procedure TForm1.SpeedButtonGravaClick(Sender: TObject);
begin
TabelaAtiva := DataModule2.findcomponent(QueryAtiva);
if assigned(TabelaAtiva) then
begin
TZQuery(TabelaAtiva).ApplyUpdates;
TZQuery(TabelaAtiva).RequestLive := False;
SetButtons;
end;
end;
REVERSÃO
procedure TForm1.SpeedButtonReverteClick(Sender: TObject);
begin
TabelaAtiva := DataModule2.findcomponent(QueryAtiva);
if assigned(TabelaAtiva) then
begin
If TZQuery(TabelaAtiva).State = dsInsert then
Begin
TZQuery(TabelaAtiva).RevertRecord;
TZQuery(TabelaAtiva).RecNo := registro;
end
Else
TZQuery(TabelaAtiva).RevertRecord;
TZQuery(TabelaAtiva).RequestLive := False;
SetButtons;
end;
end;
Pergunta
Guest --Sérgio --
Bem já tenho o MySql configurado e funcionando e todas as estações
acessam o bd normalmente. Mas o que desejo, é que quando um
usuário colocar um dado registro sob edição, que os demais não o
possam fazê-lo também. E não é isso que está acontecendo, todos
estão podendo atualizar o mesmo registro e ao mesmo tempo. O
que preciso saber é como travar esse registro ou como detectar
uma alteração no registro em edição, que tenha sido, simultaneamente
editado por um outro usuário.
O código simplificado que estou usando é o seguinte:
INCLUSÃO
ALTERAÇÃO GRAVAÇÃO REVERSÃO Editado por MicheusRevertido. ;-)
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.