Asp-Classic
應用程序對經典 asp 中的目前操作使用錯誤類型的值
我正在使用以下程式碼呼叫一個儲存過程:
m_objCmd.CommandText = "StoredProc_Name" m_objCmd.Parameters.Append m_objCmd.CreateParameter("@UserID", 3, 1, 0, UserID) m_objCmd.Parameters.Append m_objCmd.CreateParameter("@UserTypeID", 3, 1, 0, UserTypeID) m_objCmd.Parameters.Append m_objCmd.CreateParameter("@AccessToken", 202, 1, 100, AccessToken) m_objCmd.Parameters.Append m_objCmd.CreateParameter("@TokenExpiration", 135, 1, 0, TokenExpiration) m_objCmd.Parameters.Append m_objCmd.CreateParameter("@RefreshToken", 202, 1, 100, RefreshToken) rsUserData.Open m_objCmd, , adOpenStatic, adLockReadOnly在上面:
@UserID是一個“int”數據類型@UserTypeID是’int'@AccessToken是 nVarchar(100)@TokenExpiration是數據時間(2)@RefreshToken是 nVarchar(100)但在這裡我得到了錯誤:
應用程序為目前操作使用了錯誤類型的值。
任何人都可以幫助我。
幾天前我遇到了同樣的問題。正如 Kul-Tigin 在下面建議的那樣,我的問題是溢出的。
我試圖插入一個長度超過 17,000 個字元的巨大字元串,但我收到了與您完全相同的錯誤。然後我選擇將字元串保存在一個文本文件中,並使用該表作為文件定位器。
檢查以下值的長度:
- @UserID 是一個“int”數據類型
- @UserTypeID 是’int'
- @AccessToken 是 nVarchar(100)
- @TokenExpiration 是數據時間(2)
- @RefreshToken 是 nVarchar(100)
似乎有溢出或錯誤類型。例如,長度
AccessToken可能大於 100。檢查所有這些。如果需要,將變數轉換為它們的子類型(尤其是字元串)。一些第三方組件可能會返回變體,並導致這種情況。IE... ("@AccessToken", 202, 1, 100, CStr(AccessToken)) ... ("@UserID", 3, 1, 0, CLng(UserID)) ..