Asp-Classic

應用程序對經典 asp 中的目前操作使用錯誤類型的值

  • August 19, 2018

我正在使用以下程式碼呼叫一個儲存過程:

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))
..

引用自:https://stackoverflow.com/questions/8354859