ASP存储过程调用出现“The precision is invalid”的处理方法

Vincent 2004/10/17

以下代码是我在开发ASP程序中遇到的问题

asp代码片断:

Dim lngUserNum
lngUserNum = 9999999999
....
...
Set objParameter = objCommand.CreateParameter _
  ("@UserID", adNumeric, adParamInput, lngUserNum) 
  objCommand.Parameters.Append objParameter
....
objCommand.Execute

存储过程代码片断:

CREATE PROCEDURE AddBoard
@UserID  Numeric (10,0),
@BoardType char(1)
As
....

执行asp脚本程序,IIS提示

 Microsoft OLE DB Provider for SQL Server error '80004005'

The precision is invalid.

/xxx/xxxx/cccc.asp, line 50

出现这个错误主要是没有对存储过程参数类型adNumeric设置精度:

Dim lngUserNum
lngUserNum = 9999999999
....
...
Set objParameter = objCommand.CreateParameter _
  ("@UserID", adNumeric, adParamInput)
 objParameter.Precision = 10
 objParameter.NumericScale = 0
 objParameter.Value = lngUserNum
 objCommand.Parameters.Append objParameter
....
objCommand.Execute



posted @ 2004-10-17 11:50  活力豆  阅读(1057)  评论(1)    收藏  举报