我的一个数据插入程序是这样的.
adoqx2.SQL.add('select 药品ID,单位,批次,效期,实际数量,供货商ID,成本价,零售价,产地,kid from 收发记录 where 单据号='''+djh+''' And 入出类别ID<>13');
adoqx2.Open;
  for i:=0 to adoqx2.recordcount-1 do
  begin
  sql.Clear;
  sql.Add('exec in_kcb 1,:yid,'''+trim(adoqx2.Fields[1].asstring)+''','''+trim(adoqx2.Fields[2].AsString)+''','''+trim(adoqx2.Fields[3].AsString)+''',');
  sql.Add(':sjsl,:gid,:cgj,:lsj,'''+trim(adoqx2.Fields[8].asstring)+''',:kid');
  Parameters.ParamByName('yid').Value:=adoqx2.Fields[0].AsInteger;
  parameters.ParamByName('sjsl').Value:=adoqx2.Fields[4].Value;
  Parameters.ParamByName('gid').Value:=adoqx2.Fields[5].AsInteger;
  Parameters.ParamByName('cgj').Value:=adoqx2.Fields[6].AsCurrency;
  parameters.ParamByName('lsj').Value:=adoqx2.Fields[7].AsCurrency;
  parameters.ParamByName('kid').Value:=adoqx2.Fields[9].AsInteger;
  ExecSQL;
  close;
  adoqx2.Next;
  end;{For循环添加}
运行时偶尔会报错""浮点异常...用户进程取消".我的数字的字段类型均为numeric(18,4) 请问如何解决??