Fórum Verificar se o registro foi alterado #60809
19/08/2009
0
ClienteID Nome
27 Carlos
Se eu editar a alterar o nome para Carlos da Silva vai gravar o dtalt por que que realmente alterei o registro no campo Nome, mas se eu clicar em editar e gravar eu não alterei nada e nesse caso o campo dtalt não pode ser mudado.
Obrigado.
Developer1978
Curtir tópico
+ 0Posts
19/08/2009
Emerson Nascimento
Gostei + 0
19/08/2009
Developer1978
Sim, no Delphi assim
procedure TFormCadCliente.btnGravarClick(Sender: TObject);
begin
if cdsCadClientes.State = dsEdit then
begin
cdsCadClienteDtAlt.AsDateTime := Lib001.ServerDate;
cdsCadClientes.Post;
cdsCadClientes.ApplyUpdates(0);
end;
end;
Conexão usando dbexpress com firebird e delphi 7
Gostei + 0
20/08/2009
Emerson Nascimento
procedure TFormCadCliente.btnGravarClick(Sender: TObject); begin if (cdsCadClientes.State = dsEdit) and (cdsCadClientesNome.OldValue <> cdsCadClientesNome.NewValue) then cdsCadClienteDtAlt.AsDateTime := Lib001.ServerDate; cdsCadClientes.Post; cdsCadClientes.ApplyUpdates(0); end;
[size=18:faf2e754ce][b:faf2e754ce]ou[/b:faf2e754ce][/size:faf2e754ce] crie um TRIGGER para executar esta tarefa. caso opte pelo TRIGGER, não é necessário qualquer tratamento pelo Delphi.
CREATE OR ALTER TRIGGER ATU_CLI FOR CLIENTE ACTIVE BEFORE UPDATE POSITION 0 AS begin if (new.NOME <> old.NOME) then new.DTALT = current_date; -- ou current_timestamp, para data e hora end
Gostei + 0
25/08/2009
Developer1978
procedure TFormCadCliente.btnGravarClick(Sender: TObject); begin if (cdsCadClientes.State = dsEdit) and (cdsCadClientesNome.OldValue <> cdsCadClientesNome.NewValue) then cdsCadClienteDtAlt.AsDateTime := Lib001.ServerDate; cdsCadClientes.Post; cdsCadClientes.ApplyUpdates(0); end;
CREATE OR ALTER TRIGGER ATU_CLI FOR CLIENTE ACTIVE BEFORE UPDATE POSITION 0 AS begin if (new.NOME <> old.NOME) then new.DTALT = current_date; -- ou current_timestamp, para data e hora end
No Delphi não rolou por que tenho que tirar o foco do componente que eu editeim mas vou criar a trigger via IBExpert para testar.
Gostei + 0
04/07/2010
Carlos Mazzi
Gostei + 0
04/07/2010
Jordelino Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)