[英]sql date parameterized query asp classic
我正在嘗試使用 ASP 經典中的參數化查詢將日期保存到 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
在ADODB.Command
上定義Parameter
的語法並不理想(據說OP 已經確認他們將參數傳遞給另一個函數,所以這種方法很好) 。
而是試試這個;
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 上的大量資源展示了如何執行此操作)。
adDBTimeStamp
名為 constant 的數據類型更改為adDBTimeStamp
(135),因為大多數 RDBMS 在adDBDate
(133) 上使用它。
ADODB.Command
參數化查詢很有用) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.