【问题标题】:Error '80040e21' Multiple-step operation generated errors错误“80040e21”多步操作生成错误
【发布时间】:2011-01-28 06:21:17
【问题描述】:

我有一个发布到 SQL Server 2008 数据库的页面,但出现以下错误。

Microsoft 光标引擎错误“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 个单独的页面上运行良好?

【问题讨论】:

  • iOrderID 是全局变量,还是函数名?我问是因为第一个代码 sn-p 中有一个End Function,这会导致局部变量超出范围。如果它是一个全局变量,也许这个页面上有另一段代码覆盖了iOrderID中的值?
  • 不,它不是函数的名称。 sn-p 是函数的一部分(忘记取出最后一行)。
  • 作为对最后一条评论的思考,我将更改变量的名称并尝试一下。

标签: sql asp-classic


【解决方案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

然后我会运行看起来不错的第二部分。

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多