数据库1    
字段名     公式
应发合计  adoquery1.FieldValues['基本工资']*10000+adoquery1.FieldValues['提成']数据库2
姓名      基本工资   提成   应发合计
test       10         20       0以上数据库字段都是char和float类型我的全部程序是这样的
var i:integer;
s_field,s_cal:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from wage');
adoquery1.Open;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from cal');
while not adoquery2.Eof do
  begin
    s_field:=adoquery2.FieldByName('字段名').AsString;
    s_cal:=adoquery2.fieldbyname('公式').AsString;
    while not adoquery1.Eof do
      begin
        adoquery1.Edit;
        adoquery1.FieldByName(s_field).Value:=s_cal;
        adoquery1.UpdateRecord;
        adoquery1.Next;
      end;
    adoquery2.Next;
  end;
showmessage('成功');
end;错误提示:
'adoquery1.FieldValues['基本工资']*10000+adoquery1.FieldValues['提成']'is not a valid floating point value一共2个数据库  大哥们能看懂什么意思吗?
请大家帮帮忙!!!谢谢谢谢!!!万分感谢!!   还有一个小问题!
如果将光标移到memo1最后

解决方案 »

  1.   

    adoquery1.FieldByName(s_field).Value:=s_cal; 
    直接给个公司就会帮你算出来,你的s_cal是字符串来了,
    你的这代码翻译出来是
    adoquery1.FieldByName(s_field).Value:='adoquery1.FieldValues[ '基本工资 ']*10000+adoquery1.FieldValues[ '提成 ']';
    (注意引号)
    他是不等价于你要的目的:
    adoquery1.FieldByName(s_field).Value:=adoquery1.FieldValues[ '基本工资 ']*10000+adoquery1.FieldValues[ '提成 '];
      

  2.   

    楼上大哥  谢谢解答  不过  我也试过adoquery1.FieldByName(s_field).Value:=strtofloat(s_cal);也不行!!等待大家帮忙!!  
      

  3.   

    '提成 '字段中可能有NULL,NULL是不能和数相乘的
      

  4.   

    我左右的float型字段 默认值全是0  但数据库已经输入数据了
    数据库2 
    姓名      基本工资   提成     应发合计 
    test       10       20       0 
    大哥们都帮帮忙啊!!我难过死了!!