Excluindo registro sem haver código
Estou usando buttons, actionlist e o SGBD é o PostgreeSQL.
Às vezes, na hora de testar, registros são excluídos sem ao menos haver código no button 'Excluir'.
O que pode ser?
Linhas de código do button:
procedure Tfmovimento.Button4Click(Sender: TObject);
begin
messagedlg('Esta ação não é possível. Entre em contato com o administrador da base de dados.', mterror, [mbok], 0);
end;
Grato!
Às vezes, na hora de testar, registros são excluídos sem ao menos haver código no button 'Excluir'.
O que pode ser?
Linhas de código do button:
procedure Tfmovimento.Button4Click(Sender: TObject);
begin
messagedlg('Esta ação não é possível. Entre em contato com o administrador da base de dados.', mterror, [mbok], 0);
end;
Grato!
Open Informática
Curtidas 0
Respostas
Claudia Nogueira
13/11/2012
Está sumindo registros antigos, ou algum gravado recentemente na mesma instância que algum outro procedimento foi executado?
Digo isso pois o que pode estar acontecendo, é estar faltando um commit na transação, aí em vez de gravar definitivamente o dado ainda não está no BD e dá a impressão que ele sumiu.
Digo isso pois o que pode estar acontecendo, é estar faltando um commit na transação, aí em vez de gravar definitivamente o dado ainda não está no BD e dá a impressão que ele sumiu.
GOSTEI 0
Open Informática
13/11/2012
São registros novos, gravados há mais ou menos uma semana. Mas ao que parece, não tem mais ocorrido.
Se fosse o caso se ser este COMMIT, como seria a linha de programação? Já li algo, mas ainda não entendi bem.
Grato.
Se fosse o caso se ser este COMMIT, como seria a linha de programação? Já li algo, mas ainda não entendi bem.
Grato.
GOSTEI 0
Claudia Nogueira
13/11/2012
Eu trabalho com transação, ou seja, se tudo ocorrer bem dá um Commit, caso contrário dá um Rollback e todas as operações do bloco são canceladas, garantindo assim a integridade das informações.
Exemplo:
Exemplo:
if not Pg.InTransaction then
Pg.StartTransaction;
try
//Todas as operações
Pg.Commit; //Se ocorrer tudo bem confirma a transação
except
on E:Exception do
begin
Pg.Rollback; //Caso contrario cancela e dá uma mensagem
ShowMessage('Ocorreu um erro');
end;
end;
GOSTEI 0
Open Informática
13/11/2012
Ok. Foi de grande ajuda. Muito obrigado!
GOSTEI 0