我通过form 上的一个edit来执行动态sql,该 edit中填入的内容加入表的'金额'字段,'金额'字段的类型为double。我的过程如下:
procedure T_Transfer.Button1Click(Sender: TObject);
var
inzh:double;
begin
inzh:=edit2.text.asdouble;
query1.Close;
query1.SQL.Clear;
query1.SQL.add('insert fa.register');
query1.sql.add('(帐号)');
query1.SQL.Add('(inzh)');
query1.ExecSQL;
...
为何程序执行到'inzh:=edit2.text.asdouble;'这一句时出错,提示:
  record,objest or class type required;
请问各位我哪里出错了???求助我是菜鸟,请勿见笑。是不是asdouble这里出错啦?????

解决方案 »

  1.   

    那请问到底有没有asdouble这一句呢?
    我用过strtofloat,可是显示出来的是1556.1515e+545这种格式的。
      

  2.   

    edit2.text.asdouble错,没有这用法
    只是table.fieldbyname('...').asdouble你的用strtofloat因该可以
      

  3.   

    使用StrToFloat()应当说是没有任何问题的,如果还不行,那你就将inzh定义成Real类型试试。
      

  4.   

    首先说一点,你的sql语句里面好象少了一个空格
    我把你的代码整理一下,你看能不能运行
    query1.SQL.Clear;
    query1.SQL.Add('insert into fa.register');
    query1.sql.Add('(帐号)');
    query1.sql.Add('  values('+''''+inzh+''''+')');
    query1.ExecSQL;