sql日期参数化查询asp经典

时间:2016-09-28 18:19:52

标签: sql parameters asp-classic

我正在尝试使用ASP classic中的参数化查询将日期保存到SQL表。

该字段设置为输入日期,我尝试了类似

的内容
Set sqlParameters(0)=cmdCreateParameterObj.CreateParameter("@DocDate", adDbDate, adParamInput, , "20160928")

我得到的错误是

  

应用程序使用错误类型的值进行当前操作。

我已尝试将adDbDate更改为其他内容但到目前为止没有运气。

有什么想法吗?

编辑 - 这是我调用的函数,它附加了存储在数组中的所有参数:

Function executeSQL(sqlQuery, allParameters)
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = DB 
cmd.CommandText = sqlQuery 
cmd.CommandType = adCmdText 
cmd.NamedParameters = true 
cmd.Prepared = true 
For p=0 To UBOUND(AllParameters) 
cmd.Parameters.Append AllParameters(p) 
Next 
Set TBL=cmd.Execute() 
Set cmd=Nothing 
End Function

1 个答案:

答案 0 :(得分:0)

Parameter上定义ADODB.Command的语法不理想(说OP has since confirmed他们将参数传递给另一个函数,所以这种方法很好)

相反尝试一下;

Dim cmd

Set cmd = Server.CreateObject("ADODB.Command")
With cmd
    'Set CommandType, ActiveConnection etc.
    '...
    'Adding parameters
    Call .Parameters.Append(.CreateParameter("@DocDate", adDBTimeStamp, adParamInput, 8, "2016-09-28"))
    '...
    'Execute and return results
End With
'...
'After use release memory
Set cmd = Nothing

... - 表示使ADODB.Command对象有效的其他必需代码,因为问题在细节上非常有限,此信息留待锻炼OP(在SO上有足够的资源来展示如何做到这一点)。

还将名为constant的数据类型更改为adDBTimeStamp (135),因为大多数RDBMS都使用adDBDate (133)

有用的链接