表table,计算字段sf,想把它赋值给此表的另一实际字段sfje,如何写?主要的是写在什么过程中?我写在表的OnCalcFields中是不行的。我写在一个button中试运行,出现异常:
'qryGZ:No SQL Statement available'.
我的代码:
var
 zzsf:Currency;
begin
 zzsf:=dm.qryGzsf.Value ;
 with dm do begin
   qryGz.Close ;
   qryGz.SQL.Clear ;
   //qryGz.First ;   ’如果加这句就说不能操作关闭的数据集
   while not qryGz.Eof do
   begin
     qryGz.SQL.Add('update zz set Sfje='''+CurrToStr(zzsf)+''' ');
   end;
   qryGz.ExecSQL ;
请问如何改?

解决方案 »

  1.   

    //qryGz.First ;   ’如果加这句就说不能操作关闭的数据集
    因为你前面已经qrygz.close关闭数据集了当然不能移动记录了。Fieldvalues['sfje']:=CurrtoStr(FieldByName('zzsf').ascurrency);
      

  2.   

    修改为:var
       zzsf:Currency;  
    begin
       zzsf:=dm.qryGzsf.Value ;
       with dm do 
       begin
          qryGz.Close ;
          qryGz.SQL.Clear ;
          qryGz.SQL.Add('update zz set Sfje='''+CurrToStr(zzsf)+'''');
          qryGz.ExecSQL ;
       end;
    end;