delphi数据修改语句中数据类型转换有关问题?

delphi数据修改语句中数据类型转换问题??
数据库字段: 实发量 float ,单价 money 
delphi修改语句:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update  clxhd set   单价='#39+edit8.Text+#39', 
                              + ' 实发量=''#39+edit7.Text+#39'' '
                              +' where clb_id='#39+edit9.Text+#39'  ' ;
ADOQuery1.ExecSQL;
程序运行修改的时候出错信息:将截段字符串或二进制数据~!
主要问题就是类型转换问题:如何把字符类型转换为浮点类型或money类型?才能修改的时候不出错!

------解决方案--------------------
引用:
不能运行呀!提示这行语句书写有误!


Sorry,我搞错了。

try
  edit8.Text := Trim(edit8.Text);
  StrToFloat(edit8.Text);
except
  ShowMessage('请输入合法的单价');
end;

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update  clxhd set   单价='#39+edit8.Text+#39', 
                              + ' 实发量=''#39+edit7.Text+#39'' '
                              +' where clb_id='#39+edit9.Text+#39'  ' ;
ADOQuery1.ExecSQL;
------解决方案--------------------
edit7\8\9 其中一个编辑框内的数据长度超过了数据库字段的长度。

试试:
ADOQuery1.SQL.Text:=' update  clxhd set   单价=:price, 实发量=:relcount where clb_id=:clbid' ;
ADOQuery1.Parameters.ParamByName('price').Value := trim(edit7.text);
ADOQuery1.Parameters.ParamByName('relcount').Value := trim(edit8.text);
ADOQuery1.Parameters.ParamByName('clbid').Value := trim(edit9.text);


Sql中的内容,必然是字符串,所以1楼兄弟的代码编译器不会通过。