我有一个发布到SQL Server 2008数据库的页面,我收到以下错误。
Microsoft Cursor Engine错误'80040e21'
多步操作产生错误。检查每个状态值。
/incConfirm.asp,第429行
代码将数据发布到表格,然后重新查询以提取和订购ID,以便在将数据输入第二个表格时使用。
在调试中,我可以看到问题是由于订单ID没有被转发而造成的。
代码如下所示(标有469行)。
这是第一部分:
Set rsOrder = Server.CreateObject("ADODB.RecordSet")
rsOrder.CursorLocation = adUseClient
rsOrder.Open "Orders Order By orderID", cnn, adOpenDynamic, adLockOptimistic, adCmdTable
rsOrder.AddNew
rsOrder.Fields("orderCustId") = trim(iCustID)
rsOrder.Fields("orderPayId") = trim(iPayID)
rsOrder.Fields("orderAddrId") = trim(iAddrID)
rsOrder.Fields("orderDate") = Now
rsOrder.Fields("orderIsComplete") = 1
rsOrder.Update
bookMark = rsOrder.AbsolutePosition
rsOrder.Requery
rsOrder.AbsolutePosition = bookMark
iOrderID = rsOrder.Fields("orderID")
closeobj(rsOrder)
End Function
这是第二个(包含第469行):
Set rsOrderDetail = Server.CreateObject("ADODB.RecordSet")
rsOrderDetail.CursorLocation = adUseClient
rsOrderDetail.Open "OrderDetails Order By detailID", cnn, adOpenDynamic, adLockOptimistic, adCmdTable
rsOrderDetail.AddNew
rsOrderDetail.Fields("odrdtOrderId") = trim(iOrderID) - LINE 469
如上所述,iOrderID没有值,因此错误。令人费解的是,我已经使用了这段代码一段时间了,它可以在2个单独的页面上正常工作吗?
答案 0 :(得分:1)
我通常这样做:
rsOrder.Open "select * from Orders where orderid=0", cnn, 1,2
rsOrder.AddNew
rsOrder("orderCustId") = trim(iCustID)
rsOrder("orderPayId") = trim(iPayID)
rsOrder("orderAddrId") = trim(iAddrID)
rsOrder("orderDate") = Now
rsOrder("orderIsComplete") = 1
rsOrder.Update
iOrderID=rsOrder("iOrderID")
rsOrder.close
然后我会运行看起来很好的第二部分。