You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADODB.Command使用adInteger参数报错:默认参数无效求助

问题分析与解决方案

这个报错的核心原因是**CreateParameter方法的参数格式错误**,尤其是adInteger类型参数的定义不符合ADODB的要求,下面具体拆解问题并给出修复方案:

1. 关键问题点

  • adInteger参数的Size参数缺失:对于数值类型(比如adInteger),CreateParameter的第三个参数(Size)不能直接留空跳过!SQL Server的int类型固定长度为4,必须明确指定这个值,否则ODBC驱动会解析错误,触发「Invalid use of default parameter」的报错。
  • 参数大小写不规范:代码里出现了advarchar的写法,虽然VBScript不区分大小写,但统一写成adVarChar能避免潜在的解析问题,也更规范。

2. 修复后的代码

set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = tadsdb
cmd.CommandText = "insert into poc_data (poc_userid, POC_FNAME,POC_LNAME, POC_EMAIL, POC_ORG, DSN_PHONE, DSN_FAX, POC_TYPE_ID,UNIT_ID) values(?,?,?,?,?,?,?,?,?)"
cmd.CommandType = adCmdText
' 统一修正adVarChar的大小写,保证参数格式一致
cmd.Parameters.Append cmd.CreateParameter("@new_id", adVarChar, , 50, new_id)
cmd.Parameters.Append cmd.CreateParameter("@first_name", adVarChar, , 50, first_name)
cmd.Parameters.Append cmd.CreateParameter("@last_name", adVarChar, , 50, last_name)
cmd.Parameters.Append cmd.CreateParameter("@email", adVarChar, , 50, email)
cmd.Parameters.Append cmd.CreateParameter("@organization", adVarChar, , 50, organization)
cmd.Parameters.Append cmd.CreateParameter("@dsn_phone", adVarChar, , 50, dsn_phone)
cmd.Parameters.Append cmd.CreateParameter("@dsn_fax", adVarChar, , 50, dsn_fax)
cmd.Parameters.Append cmd.CreateParameter("@user_type", adVarChar, , 50, user_type)
' 重点修复:给adInteger参数指定长度为4
cmd.Parameters.Append cmd.CreateParameter("@unit_id", adInteger, , 4, unit_id)
cmd.Execute
set cmd = Nothing

3. 补充说明

ADODB的CreateParameter方法完整签名是:

CreateParameter(Name, Type, Direction, Size, Value)

对于字符串类型(adVarChar等),Size可以通过逗号跳过(因为驱动可以从值推断),但数值类型不行——必须明确指定对应SQL数据类型的长度,比如:

  • adInteger对应SQL int,长度4
  • adSmallInt对应SQL smallint,长度2
  • adTinyInt对应SQL tinyint,长度1

只要修正这个参数格式,即使硬编码值也能正常执行,不会再触发报错。


内容的提问来源于stack exchange,提问作者user8053788

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:29:54