zoukankan      html  css  js  c++  java
  • kbmMWClientQuery判断一个字段是否修改?

    function TForm5.IsFieldChanged(aDataSet: TkbmMWCustomClientQuery; aFieldName: string): Boolean;
    var
      i: TkbmNativeInt;
      pRec, pOrigRec, pOldRec: PkbmRecord;
      aOldV, aNewV: Variant;
    
    begin
        if ADataSet.FindField(aFieldName)=nil then
          raise EMemTableError.Create('当前数据集无此字段.');
    
        Result:=False;
        pRec := pkbmRecord(aDataSet.ActiveBuffer);
        if pRec = nil then
           Exit;
    if pRec^.UpdateStatus = usModified then
        with aDataSet do
        begin

    pOrigRec:=pRec; while pOrigRec^.PrevRecordVersion <> nil do begin pOrigRec := pOrigRec^.PrevRecordVersion; end;
            pOldRec := OverrideActiveRecordBuffer;
            try
                  OverrideActiveRecordBuffer := pRec; // 指向修改后的数据
                  aNewV := FieldByName(aFieldName).Value;
                  OverrideActiveRecordBuffer := pOrigRec; // 指向修改前的数据
                  aOldV := FieldByName(aFieldName).Value;
                  if aNewV <> aOldV then
                  begin
                       Result:=True;
                  end;
            finally
              OverrideActiveRecordBuffer := pOldRec;
            end;
        end;
    end;
  • 相关阅读:
    python之map,filter
    python函数的闭包
    Hibernate查询对象的方法浅析
    底部浮动
    DataGrid-自定义排序
    DataGrid-1
    Alert
    2014-01-04 SQL练习
    proguard-gui 混淆代码简要笔记
    vim利用coc补全的配置过程
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/10845367.html
Copyright © 2011-2022 走看看