在VB中用存储过程插入记录时,当表有numeric型,cmd.Parameters.Append cmd.CreateParameter("iCost_13", adNumeric, adParamInput)提示“精度无效”,如何能解决这个问题?谢谢!我要插入的记录是有numeric (如100.15),这样的话就不能成功插入记录,怎么办呢?

解决方案 »

  1.   

    下面ADO中文帮助中的说法,可能解决你的问题:如果在 CreateParameter 方法的Type 参数中指定数字型数据类型(adNumeric 或 adDecimal),必须设置 NumericScale 和 Precision 属性。
      

  2.   

    那应该如何设置呢?我在存储过程里已经指定参数是decimal(18,6)了,但还是提示“精度无效”,怎么办呢?请帮忙!
      

  3.   

    必须得到你创建的Parameter对象,假设为para:
    set para = cmd.CreateParameter("iCost_13", adNumeric, adParamInput)然后,因为类型是adNumeric,所以还须设置 NumericScale 和 Precision 属性。
    para.NumericScale = 数字值要精确的小数位数
    para.Precision = 值的最大位数