繁体   English   中英

在经典ASP中使用vbscript插入参数化查询时出现类型错误

[英]getting type error when inserting parameterized query with vbscript in classic asp

编辑仍然收到类型不匹配错误,但在注释的帮助下更新了代码-更新的代码如下所示

我是ASP和VBScript的新手。 我正在尝试将发布数据插入SQL数据库,但是,我想确保查询已被灭菌,因此我尝试使用参数化查询。 当我执行查询时,出现此错误。

Microsoft VBScript runtime error '800a000d'

Type mismatch

我的代码看起来像这样

Set conn = Server.CreateObject("ADODB.Connection")
conn.Mode = 3
conn.open "Provider=SQLOLEDB;Data Source=xxx.xxx.xxx.xxx,xxxx;
database=db_example;uid=user;pwd=password;"

Dim oCmd 
set oCmd= Server.CreateObject("ADODB.Command") 

Dim sSQL 
sSQL = "INSERT INTO tbl_Application (Expenses, Name, Why) VALUES (?, ?, ?);"
oCmd.CommandText = sSQL
oCmd.ActiveConnection= conn

Dim uPar 
uPar = oCmd.CreateParameter("Expenses",200,1,255,session("Expenses")) 
oCmd.Parameters.Append(uPar)

Dim vPar 
vPar = oCmd.CreateParameter("Name",200,1,255,session("Name")) 
oCmd.Parameters.Append(vPar)

Dim wPar 
wPar = oCmd.CreateParameter("Why",200,1,255,session("Why")) 
oCmd.Parameters.Append(wPar)

Dim oRS 
oRS = oCmd.Execute()

我尝试将数据键入为varchar和char。 如果您有解决我的问题的方法,请告诉我。 另外,我打算在网站上插入三段以上的数据-有没有比手动为每一列设置参数更好的方法了?

CreateParameter方法的文档指出:

如果在Type参数中指定了可变长度的数据类型,则必须在将其附加到Parameters集合之前,传递Size参数或设置Parameter对象的Size属性。 否则,将发生错误。

129对应于adChar ,它是长度可变的数据类型,因此要求您传递Size参数。 通常,您应该使用数据库中列的已定义长度,但是我发现仅使用我传递的值的长度也可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM