簡體   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