现在有一个过程,参数为TDataSet,请用代码遍历其中的每一条记录,并对每条记录中字段名为 ‘ CountOfData’的字段(TintegerField)的值作以下处理:如果字段值为空NULL 则赋值为0,否则用32除以该值并重新赋值给字段,处理过程中请加入异常处理。最后能给出详细代码 因为我现在没有delphi环境 先谢谢了!

解决方案 »

  1.   

    update 表 set CountOfData=0 where CountOfData is null
    update 表 set CountOfData=32/CountOfData where CountOfData<>0
      

  2.   

    procedure ChangeDBFieldValue(ds:TDataSet);
    var
        i:integer;
        iValue:integer;
    begin
        ds.Open;
        ds.First;
        for i:=0 to ds.RecordCount-1 do
        begin
            ds.Edit;
            if ds.FieldByName('CountOfData').IsNull then
                ds.FieldByName('CountOfData').AsInteger:=0
            else
            begin
                iValue:=ds.FieldByName('CountOfData').AsInteger;
                if iValue<>0 then
                     ds.FieldByName().AsInteger:=32./iValue;
            end;
            ds.Next;
        end;
    end;
      

  3.   

    iValue:=ds.FieldByName('CountOfData').AsInteger;
                if iValue<>0 then
                     ds.FieldByName().AsInteger:=32./iValue;
            end;
            ds.Next;
        end;
        ds.Close;//////////////////////////////////忘关闭了。
    end;
      

  4.   

    好象不会出现异常。
    如果要处理异常,可能在ds.Next里。
    try
        ds.Next;
    except
        ds.Cancel;
        ds.Next;
    end;