计算总金额按钮下面代码可以正常运行
  dm.adoquery.Close;
  dm.adoquery.SQL.Clear;
  dm.adoquery.SQL.Add('update table_1 set total_money =(select sum(num*price) from table_2 group by dh having dh=:x ) where dh=:y');
  dm.adoquery.Parameters.ParamByName('y').Value:=trim(edit1.Text);
  dm.adoquery.Parameters.ParamByName('x').Value:=trim(edit1.Text);
  dm.adoquery.ExecSQL;
但当我edit1中为空时点击此按钮会报错,说‘数据类型varchar和text在equal to 运算符中不兼容’,
为什么会报这个错误啊
如果把
edit2.text:=edit1.text;
然后add()中改为
dm.adoquery.SQL.Add('update table_1 set total_money =(select sum(amount*price)  from table_2 group by dh having dh='''+trim(edit1.Text)+''' ) where dh='''+trim(edit2.Text)+'''');
也可运行 这时edit1 与edit2中为空值时 ,点击按钮就不会报错
这是为什么啊? 我不解不解不解不解
菜鸟请高手指导

解决方案 »

  1.   

    试试下面的:  dm.adoquery.Close;
      dm.adoquery.SQL.Clear;
      dm.adoquery.SQL.Add('update table_1 set total_money =(select sum(num*price) from table_2 group by dh having dh=:x ) where dh=:y');
      dm.adoquery.Parameters.ParamByName('y').Value:=QuotedStr(trim(edit1.Text));
      dm.adoquery.Parameters.ParamByName('x').Value:=QuotedStr(trim(edit1.Text));
      dm.adoquery.ExecSQL;