我的代码:
 dm.CDS_CW_ZCSY_BB.Close;
        dm.CDS_CW_ZCSY_BB.CommandText:='';
        dm.CDS_CW_ZCSY_BB.CommandText:='select cast(8/4 as REAL) as k';
        dm.CDS_CW_ZCSY_BB.open;
        dm.CDS_CW_ZCSY_BB.Refresh;
        if not dm.CDS_CW_ZCSY_BB.IsEmpty then
          begin
            dm.CDS_CW_ZCSY.Edit;
            dm.CDS_CW_ZCSY.FieldByName('bqs').AsFloat:=strtofloat(formatfloat('0.00',dm.CDS_CW_ZCSY_BB.Fields[0].asfloat));
          end;
        sqlstring:='';
        for cyc:=0 to pri_mcyc do
          begin
            if  pri_msum[cyc]<>null then
              begin
                sqlstring:=sqlstring+floattostr(pri_msum[cyc]);
                if (cyc<=fhcyc)and(pri_myfh[cyc]<>'') then
                  sqlstring:=sqlstring+pri_myfh[cyc];
              end;
          end;
        dm.CDS_CW_ZCSY_BB.Close;
        dm.CDS_CW_ZCSY_BB.CommandText:='';
        dm.CDS_CW_ZCSY_BB.CommandText:='select cast('100/5' as REAL) as k';
        dm.CDS_CW_ZCSY_BB.open;
        dm.CDS_CW_ZCSY_BB.Refresh;
        if not dm.CDS_CW_ZCSY_BB.Eof then
          begin
            dm.CDS_CW_ZCSY.Edit;
            dm.CDS_CW_ZCSY.FieldByName('bnljs').AsFloat:=strtofloat(formatfloat('0.00',dm.CDS_CW_ZCSY_BB.Fields[0].asfloat));
          end;
      end;
    dm.CDS_CW_ZCSY.Next;
  end;
dm.CDS_CW_ZCSY.Edit;
dm.CDS_CW_ZCSY.Post;
dm.CDS_CW_ZCSY.ApplyUpdates(0);
dm.CDS_CW_ZCSY.Active:=false;
dm.CDS_CW_ZCSY.Active:=true;
//showmessage(inttostr(dm.CDS_CW_ZCSY.RecordCount));
以下这几句可以运行,但为什么不能保存到数据库里呀?
dm.CDS_CW_ZCSY.Edit;
dm.CDS_CW_ZCSY.Post;
dm.CDS_CW_ZCSY.ApplyUpdates(0);

解决方案 »

  1.   

    dm.CDS_CW_ZCSY.ApplyUpdates(0);改为dm.CDS_CW_ZCSY.ApplyUpdates(-1);
      

  2.   

    dm.CDS_CW_ZCSY.Post;就没有必要吧
      

  3.   

    dm.CDS_CW_ZCSY.Post;是多余的!
    你可以直接让rs执行SQL语句,一个update就搞定而不用设置这么多东西
      

  4.   

    你的数据在如下三句话中没有修改当然不会提交。因为Delphi三层只在上一次调用ApplyUpdates成功之后,再次修改才提交。
    dm.CDS_CW_ZCSY.Edit;
    dm.CDS_CW_ZCSY.Post;
    dm.CDS_CW_ZCSY.ApplyUpdates(0);
      

  5.   

    to lxhong1980
    dm.CDS_CW_ZCSY.ApplyUpdates(0);改为dm.CDS_CW_ZCSY.ApplyUpdates(-1);
    在ApplyUpdates后的数字我还不知道是什么意思?0,代表什么?-1,代表什么?
    POST是用来刷新的吗?