在保存数据表时, 怎么知道当中的某个或几个字段的值是否已经被修改过?

解决方案 »

  1.   

    var
      F1IsModify,F2IsModify:boolean;
    procedure TForm1.ADOQuery1BeforeEdit(DataSet: TDataSet);
    begin
      F1IsModify:=False;
      F2IsModify:=False;
      if DBGrid1.SelectedField.FieldName='F1' then
        F1IsModify:=True;
      if DBGrid1.SelectedField.FieldName='F2' then
        F2IsModify:=True;
    end;
      

  2.   

    if ADOQuery1.start=dsedit then
    修改过
      

  3.   

    错了 应是
    if ADOQuery1.State=dsedit then
      修改过
      

  4.   

    报谦, 我没有表达清楚。 这样说吧假如我有一个adotable,里面有f1,f2...f10, 在保存时如果adotable.state = dsedit时, 我需要检查f1的值是否改动过,用什么方法可以检测出来?
      

  5.   

    to xybh97102(冰点),
      看了你的答案后, 你的思路我基本明白,  我用的是dblookupcombobox控件。
      

  6.   

    我想到的一个笨办法是在修改之前设一个初始状态的数组,  在保存的时候来检查当前记录相关字段的值与初始值是否一致, 但这样做比较烦琐,不知有没有简单一点的方法。  我用的DBLookupComBoBox控件, 只有onclick事件, 再有就是对通过字段的onchange事件来判断是否修改过 但也有一个问题, 比如F1字段原来的值是123,如果我把它改成12后再改成123,这做情况也被视为修改过了。