Verificar se campo (Field) foi modificado

Delphi

03/02/2006

Alguem sabe como devo proceder para saber se algum determinado campo de uma tabela sofreu alguma alteração

a principio faço assim
if DBEdit.Modified then

mas se eu não fecho o formulario uma ves alterado esta propriedade para true depois que salvo o registro ela permanece como True

e tmb quando o campo possui mascara só passando com enter por cima do Dbedit ele já altera esta propriedade automaticamente para true


Biodelphi

Biodelphi

Curtidas 0

Respostas

Nadai_

Nadai_

03/02/2006

na datasource, no evento ondatachange

if field <> nil then
begin
if AnsiSameText(Field.FieldName, ´nome_campo´) then
begin
ShowMessage(´alterei o campo´);
end;
end;


GOSTEI 0
Biodelphi

Biodelphi

03/02/2006

Obrigado Nadai_

essa eu não sabia

mas para q precisava mesmo era que antes de savar

verifica-se se tal classificação ja tivesse cadastrada

esta condição abaixo faço pq se não houve-se DbEdit1.Modified
quando altero qualquer outro campo e salvo ele executa esta condição abaixo

fis assim


// verifica se a classificação já foi digitada
if (DbEdit1.Modified) and (TabAux.Locate(´classificacao´,TablePlanoCLASSIFICACAO.AsString,[])) then
Raise Exception.create(´Classificação já digitado!´);


GOSTEI 0
Mz

Mz

03/02/2006

Você pode verificar pela propriedade "OldValue" e "Value"/"NewValue" do field, se estiverem diferentes, houve alteração no valor campo.
GOSTEI 0
POSTAR