程序如下:
procedure TfrmTongJi.displaymianji;   //显示统计的结果var
strtime,stroldtime,linb:string;
begin
                 
                 ADOQGridMianji.CursorLocation:=clUseServer;
                 ADOQGridMianJi.CursorType:=ctkeySet;
                 ADOQGridMianJi.LockType:=LtBatchoptimistic; 
                //上面是缓存更新的一些设置
                // ADOQGridMianJi.CachedUpdates:= true 这两句编译不过去
                // ADOQGridMianJi.RequestLive:=True;
                 ADOQGridMianJi.Close;
                 ADOQgridMianJi.SQL.Clear;
                 ADOQGridMianJi.SQL.Add('select * from tffarea where lbid =:lib order by tjsj');
                 ADOQGridMianJi.Parameters.ParamByName('lib').Value:=trim(TTSFanWeiTree.Selected.Text);
                 ADOQGridMianJi.Prepared ;
                 ADOQGridMianJi.Open ;
                上面是库里原有的纪录
                 ADOQMianJi2.Close;
                 ADOQMianJi2.SQL.Clear;
                 ADOQMianJi2.SQL.Add('select tjsj,sum(zmj) as zmj,sum(ludhj) as ludhj,sum(lindhj) as lindhj,sum(slhj) as slhj,sum(zyl) as zyl,');
                 ADOQMianJI2.SQL.Add('sum(kyl) as kyl,sum(zkhjl) as zkhjl,sum(zl) as zl ,sum(sl) as sl,sum(gmldhj) as gmldhj,sum(qmszfwngm) as qmszfwngm,sum(qmszfwwgm) as qmszfwwgm,');
                 ADOQMianJi2.SQL.Add('sum(wlmldhj) as wlmldhj,sum(cfjd) as cfjd,sum(hsjd) as hsjd,sum(wclzld) as wclzld,sum(trgxld) as trgxld,sum(ybzld) as ybzld,');
                 ADOQMianJi2.SQL.Add('sum(mpd) as mpd,sum(hdhj) as hdhj,sum(qmszfwnhd) as qmszfwnhd,sum(qmszfwwhd) as qmszfwwhd,sum(lwszd) as lwszd,sum(nlyd) as nlyd,sum(spszd) as spszd,');
                 ADOQMianJi2.SQL.Add('sum(nlsy) as nlsy,sum(slfgl) as slfgl from tffarea where lbid=''107'' group by tjsj order by tjsj') ;
                 ADOQMianJi2.Prepared;
                 ADOQMianJi2.Open;            //上边是把库里原有记录按时间相同的加和
            //下边是想把加和的记录插入到原记录中间
                     while not ADOQGridMianJi.Eof
                     do
                     begin                     strtime:=ADOQGridMianJi.Fields.fieldbyname('tjsj').Value ;
                     linb:=ADOQGridMianJi.Fields.fieldbyname('lbid').Value;                         if  (not ADOQMianJi2.Eof) and (trim(ADOQMianJi2.Fields.fieldbyname('tjsj').Value) =trim(strtime)) and (strtime<>stroldtime) then//这个条件是为了判断插入位置而设的
                         begin
                             stroldtime:=strtime;
                             ADOQGridMianJi.Insert ;
                             ADOQGridMianJi.Edit ;
                             ADOQGRIDMianJi.FieldByName('lbid').AsString:=linb;
                             ADOQGRIDMianJi.FieldByName('tjsj').AsString :=strtime;
                             ADOQGRIDMianJi.FieldByName('qs').AsString :='总和';
                             ADOQGRIDMianJi.FieldByName('zmj').AsFloat :=ADOQMianji2.FieldByName('zmj').Value;
                             ADOQGRIDMianJi.FieldByName('ludhj').AsFloat :=ADOQMianji2.FieldByName('ludhj').Value;
                             ADOQGRIDMianJi.FieldByName('lindhj').AsFloat :=ADOQMianji2.FieldByName('lindhj').Value;
                             ADOQGRIDMianJi.FieldByName('slhj').AsFloat :=ADOQMianji2.FieldByName('slhj').Value;
                             ADOQGRIDMianJi.FieldByName('zyl').AsFloat :=ADOQMianji2.FieldByName('zyl').Value;
                             ADOQGRIDMianJi.FieldByName('kyl').AsFloat :=ADOQMianji2.FieldByName('kyl').Value;
                             ADOQGRIDMianJi.FieldByName('zkhjl').AsFloat :=ADOQMianji2.FieldByName('zkhjl').Value;
                             ADOQGRIDMianJi.FieldByName('zl').AsFloat :=ADOQMianji2.FieldByName('zl').Value;
                             ADOQGRIDMianJi.FieldByName('sl').AsFloat :=ADOQMianji2.FieldByName('sl').Value;
                             ADOQGRIDMianJi.FieldByName('gmldhj').AsFloat :=ADOQMianji2.FieldByName('gmldhj').Value;
                             ADOQGRIDMianJi.FieldByName('qmszfwngm').AsFloat :=ADOQMianji2.FieldByName('qmszfwngm').Value;
                             ADOQGRIDMianJi.FieldByName('qmszfwwgm').AsFloat :=ADOQMianji2.FieldByName('qmszfwwgm').Value;
                             ADOQGRIDMianJi.FieldByName('wlmldhj').AsFloat :=ADOQMianji2.FieldByName('wlmldhj').Value;
                             ADOQGRIDMianJi.FieldByName('cfjd').AsFloat :=ADOQMianji2.FieldByName('cfjd').Value;
                             ADOQGRIDMianJi.FieldByName('hsjd').AsFloat :=ADOQMianji2.FieldByName('hsjd').Value;
                             ADOQGRIDMianJi.FieldByName('wclzld').AsFloat :=ADOQMianji2.FieldByName('wclzld').Value;
                             ADOQGRIDMianJi.FieldByName('trgxld').AsFloat :=ADOQMianji2.FieldByName('trgxld').Value;
                             ADOQGRIDMianJi.FieldByName('ybzld').AsFloat :=ADOQMianji2.FieldByName('ybzld').Value;
                             ADOQGRIDMianJi.FieldByName('mpd').AsFloat :=ADOQMianji2.FieldByName('mpd').Value;
                             ADOQGRIDMianJi.FieldByName('hdhj').AsFloat :=ADOQMianji2.FieldByName('hdhj').Value;
                             ADOQGRIDMianJi.FieldByName('qmszfwnhd').AsFloat :=ADOQMianji2.FieldByName('qmszfwnhd').Value;
                             ADOQGRIDMianJi.FieldByName('qmszfwwhd').AsFloat :=ADOQMianji2.FieldByName('qmszfwwhd').Value;
                             ADOQGRIDMianJi.FieldByName('lwszd').AsFloat :=ADOQMianji2.FieldByName('lwszd').Value;
                             ADOQGRIDMianJi.FieldByName('nlyd').AsFloat :=ADOQMianji2.FieldByName('nlyd').Value;
                             ADOQGRIDMianJi.FieldByName('spszd').AsFloat :=ADOQMianji2.FieldByName('spszd').Value;
                             ADOQGRIDMianJi.FieldByName('nlsy').AsFloat :=ADOQMianji2.FieldByName('nlsy').Value;
                             ADOQGRIDMianJi.FieldByName('slfgl').AsFloat :=ADOQMianji2.FieldByName('slfgl').Value; 
                             ADOQGridMianJI.Post ;但执行到这儿的时候就出现了这样的错误:provider cannot determine the value Possible reasons:The record was just created the default value for the field was not available,or the user has not set a new value
可是我对每一个字段都赋值了呀                             ADOQMianJI2.Next;
                             ADOQGridMianJi.Next ;
                         end
                         else
                            ADOQGridMianJi.Next;                 end;
end;
请高手看看是什么问题,总体上是想在本地插入加和的记录,不想在数据库里写,