當字段類型為 adNumeric 時,VBScript 類型類型不相符
本文可協助您解決欄位類型為 adNumeric
時發生的類型不符錯誤。
原始產品版本: Internet Information Services
原始 KB 編號: 195180
徵狀
當您使用 VBScript 對 adNumeric
(131) 字段類型執行數值比較或計算時,可能會傳回下列錯誤:
Microsoft VBScript 運行時錯誤 '800a000d'
類型不符
Microsoft VBScript 運行時錯誤 '800a01ca' 變數使用 VBScript 中不支援的自動化類型
原因
因為 VBScript 無法正確地將值轉換成 adNumeric
有效的數值類型,所以會發生錯誤。
解決方案
您可以使用下列兩種可能的因應措施之一:
adNumeric
使用CDbl()
或CInt()
轉換欄位,如下列範例所示:<%@ LANGUAGE="VBScript"%> <% Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open "MyDSN", "MyUserID", "MyPassWord" set oRS = oConn.Execute("Select list_price FROM DEMO.PRICE") Response.Write("List Price * 100 = " & CDbl(oRS("list_price")) * 100) %>
使用 JScript,因為 JScript 不會呈現此行為。
重現行為的步驟
下列程式代碼會顯示上述錯誤:
<%
Set oConn = Server.CreateObject("ADODB.COnnection")
oConn.Open "MyDSN", "MyUserID", "MyPassWord"
set oRS = oConn.Execute("Select list_price FROM DEMO.PRICE")'This is the bad line of code, "list_price" is being returned as
'type adNumeric.
Response.Write("List Price * 100 = " & oRS("list_price") * 100)
%>
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應