我的代码如下:
  sql.add('insert t_spjcxx values(,,,,:f)');
  if hsgx.text='' then
  parameters.ParamByName('f').value:=''
  else
  parameters.ParamByName('f').value:=strtoint(hsgx.text);

解决方案 »

  1.   

    insert into table (f) values (:f)
      

  2.   

    当hsgx.text为空时,写入会报错?写入空值如何写呢?
      

  3.   

    parameters.ParamByName( "f ").value:= " 0" //这写0
        else 
        parameters.ParamByName( "f ").value:=strtoint(hsgx.text);
    你那好象是INT吧
      

  4.   

    parameters.ParamByName(   "f   ").value
    改成
    parameters.ParamByName(   "f   ").asString试试
      

  5.   

    这种情况可以考虑用自定义函数实现;
    function Mystrtoint(var Astr:string; Adefault: int);
    begin
      try
        Result := strtoint(Astr);
      except
        Result := Adefault;
      end;
    end;然后执行调用时可以使用
      sql.add( "insert   t_spjcxx   values(,,,,:f) "); 
     parameters.ParamByName( "f ").value:=Mystrtoint(hsgx.text,0);