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。 –