sqlCmd.CommandText = "SELECT clientID, clientPassword" & _
" FROM Clients" & _
" WHERE (clientPassword=?)"
Set param = sqlCmd.CreateParameter("@clientPassword", 200, 1, Len(pass), pass)
sqlCmd.Parameters.Append param
Set rsUsers = sqlCmd.Execute
這個查詢執行OK,但當我嘗試之後幾乎相同的一個...多步OLE DB操作產生錯誤與參數化查詢
sqlCmd.CommandText = "SELECT clientID, clientUsername, clientPassword" & _
" FROM Clients" & _
" WHERE (clientEmail=?)"
Set param = sqlCmd.CreateParameter("@clientEmail", 200, 1, Len(email), email)
sqlCmd.Parameters.Append param
Set rsUsers = sqlCmd.Execute
我得到這個錯誤,
多步OLE DB操作生成錯誤。檢查每個OLE DB狀態值(如果可用)。沒有工作完成。
這兩列的長度都是nvarchar,255和50。
我的大部分Google搜索都表示這是一個數據類型錯誤,但我只是檢索值,如果第二個查詢自己執行,它可以正常工作。如果我運行多個查詢,則只會發生該錯誤。
請謝謝。
感謝愛德華多,這讓我通過我的查詢沒有錯誤,但我的UPDATE查詢什麼都不做。
sqlCmd.CommandText = "UPDATE Clients" & _
" SET clientUsername=?, clientPassword=?" & _
" WHERE (clientEmail=?)"
Set param = sqlCmd.CreateParameter("@clientEmail", 200, 1, Len(email), email)
sqlCmd.Parameters.Append param
Set param = sqlCmd.CreateParameter("@clientUsername", 200, 1, Len(user), user)
sqlCmd.Parameters.Append param
Set param = sqlCmd.CreateParameter("@clientPassword", 200, 1, Len(pass), pass)
sqlCmd.Parameters.Append param
Set rsUsers = sqlCmd.Execute
任何想法爲什麼?我一直堅持這段代碼幾天。
是否具有相同數據類型的clientPassword和clientEmail列是d相同的長度?電子郵件變量的值是否比clientEmail列長? – GTG
你重複使用相同的sqlCmd嗎?如果是這樣,sqlCmd.Parameters有兩個參數而不是一個。使用不同的sqlCmd或使用sqlCmd.Refresh。 –