[英]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.