下面是我添加信息的代码,其中q对应的字段内容是由X赋值给它的,X是通过查询语句求得的一个结果与edit14中的内容相加的和,可是运行的时候没有提示任何错误,而且其他信息都添加成功了,但是q对应的那个字段里面没显示任何数据。请问这是什么原因啊?DuiXiaJiesuan.SQL.Clear;
     DuiXiaJiesuan.SQL.Add('Insert into DuiXiaJiesuan(ID,FbJiesuanID,GchName,FbID,FbDanweiName,WeituoDLR,BaobiaoBh,LiangID,GchItemID,GchItemName,Danwei,HetongLiang');
     DuiXiaJiesuan.SQL.Add(',JiaGeDanwei,HetongDanjia,HetongHejia,LeijijiesuanLiang,LeijijiesuanHejia,BenyuejiesuanLiang,BenyuejiesuanHejia,JYBjiesuanren,JiesuanDate,Beizhu,XMB)');
     DuiXiaJiesuan.SQL.Add('values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q,:r,:s,:t,:u,:v,:w)');
     DuiXiaJiesuan.Parameters.ParamByName('a').Value:=formatdatetime('yyyyMMdd',Date)+formatdatetime('hhmmss',now());
     DuiXiaJiesuan.Parameters.ParamByName('b').Value:=Trim(Edit1.Text);
     DuiXiaJiesuan.Parameters.ParamByName('c').Value:=Trim(Edit11.Text);
     DuiXiaJiesuan.Parameters.ParamByName('d').Value:=Trim(Edit12.Text);
     DuiXiaJiesuan.Parameters.ParamByName('e').Value:=Trim(Edit2.Text);
     DuiXiaJiesuan.Parameters.ParamByName('f').Value:=Trim(Edit6.Text);
     DuiXiaJiesuan.Parameters.ParamByName('g').Value:=Trim(Edit16.Text);
     DuiXiaJiesuan.Parameters.ParamByName('h').Value:=Trim(Edit3.Text);
     DuiXiaJiesuan.Parameters.ParamByName('i').Value:=Trim(Edit18.Text);
     DuiXiaJiesuan.Parameters.ParamByName('j').Value:=Trim(edit4.Text);
     DuiXiaJiesuan.Parameters.ParamByName('k').Value:=Trim(Edit5.Text);
     DuiXiaJiesuan.Parameters.ParamByName('l').Value:=Trim(Edit7.Text);
     DuiXiaJiesuan.Parameters.ParamByName('m').Value:=Trim(Edit9.Text);
     DuiXiaJiesuan.Parameters.ParamByName('n').Value:=Trim(Edit8.Text);
     DuiXiaJiesuan.Parameters.ParamByName('o').Value:=Trim(Edit10.Text);
     DuiXiaJiesuan.Parameters.ParamByName('q').Value:=trim(X);
     adoq3.SQL.Clear;
     adoq3.SQL.Add('select sum(BenyuejiesuanHejia) as Hejia from DuiXiaJiesuan where GchName='+quotedstr(trim(edit11.Text))+'and FbID='+quotedstr(trim(edit12.Text))+'and GchItemID='+quotedstr(trim(edit18.Text)));
     adoq3.Prepared;
     adoq3.Open;
     adoq3.first;
  while not adoq3.Eof do
  begin
    X:=floattostr(adoq3.Fieldbyname('Hejia').Asfloat+strtofloat(trim(edit14.Text)));
    adoq3.Next;
  end;
     DuiXiaJiesuan.Parameters.ParamByName('p').Value:=Trim(Edit13.Text);     DuiXiaJiesuan.Parameters.ParamByName('r').Value:=Trim(Edit13.Text);
     DuiXiaJiesuan.Parameters.ParamByName('s').Value:=Trim(Edit14.Text);
     DuiXiaJiesuan.Parameters.ParamByName('t').Value:=Trim(Edit17.Text);
     DuiXiaJiesuan.Parameters.ParamByName('u').Value:=formatdatetime('yyyy-MM-dd',datetimepicker1.Date);
     DuiXiaJiesuan.Parameters.ParamByName('v').Value:=Trim(memo1.Text);
     DuiXiaJiesuan.Parameters.ParamByName('w').Value:=Trim(form1.combobox1.Text);     DuiXiaJiesuan.Prepared;
     DuiXiaJiesuan.ExecSql;
     showmessage('添加信息成功!');
   DuiXiaJiesuan.SQL.Clear;
     DuiXiaJiesuan.SQL.Add('select * from DuiXiaJiesuan');
     DuiXiaJiesuan.Prepared;
     DuiXiaJiesuan.Open;

解决方案 »

  1.   

     adoq3.SQL.Clear; 
        adoq3.SQL.Add('select sum(BenyuejiesuanHejia) as Hejia from DuiXiaJiesuan where GchName='+quotedstr(trim(edit11.Text))+'and FbID='+quotedstr(trim(edit12.Text))+'and GchItemID='+quotedstr(trim(edit18.Text))); 
        adoq3.Prepared; 
        adoq3.Open; 
        adoq3.first;//第一条 
      while not adoq3.Eof do//不是最后一条的时候 
      begin 
        X:=floattostr(adoq3.Fieldbyname('Hejia').Asfloat+strtofloat(trim(edit14.Text)));//Hejia的值赋给X 
        
        adoq3.Next; //下一条 
      end; 
    上楼说的对,你每次都要循环一遍,从头到尾,最后取尾数据的值。adoq3.last;就可以了 
    DuiXiaJiesuan.Parameters.ParamByName('q').Value:=trim(X);