我有一个数据库是KUCUN.DB,字段分别为PRONAME(类型A),KUCUNNUM(类型N),我想把另一个库的数据进行计算,将结果保存到数据库里。代码如下:
但是执行是会报“type mismatch in expression"NewNum := KuCunQuery.Fields[1].Value+ChuRuKuQuery.Fields[1].Value-ChuRuKuQuery.Fields[2].Value;
try
KuCunQuery.Close;
KuCunQuery.SQL.Clear;
KuCunQuery.Params.Clear;
KuCunQuery.SQL.Add('update kucun set KuCunNum=:pNum');
KuCunQuery.Prepare;
KuCunQuery.ParamByName('pNum').asinteger := newnum;
KuCunQuery.ExecSQL;
except
end;但是我用如下代码又可以执行:
try
KuCunQuery.Close;
KuCunQuery.SQL.Clear;
KuCunQuery.Params.Clear;
KuCunQuery.SQL.Add('update kucun set KuCunNum=12');
KuCunQuery.ExecSQL;
except
end;请高手帮忙解决一下

解决方案 »

  1.   

    show你一下你的newnum看看是什么?
      

  2.   

    1、KuCunQuery.Prepare; 这个方法,当你只执行了一条语句的时候没必要使用;
    2、newnum;按照你写的意思,这个必须为整型;
    3、
    “KuCunQuery.SQL.Clear; 
    KuCunQuery.Params.Clear; 
    KuCunQuery.SQL.Add('update kucun set KuCunNum=:pNum'); 
    KuCunQuery.Prepare; 
    KuCunQuery.ParamByName('pNum').asinteger := newnum; ”
    为什么要浪费这么多代码啊?
    KuCunQuery.SQL.text:='update kucun set KuCunNum='+inttostr(newnum);
    这么一句话,不就OK了吗?
      

  3.   

    KuCunQuery.ParamByName('pNum').Value:= newnum;