【问题标题】:ADODB.Recordset error '800a0cc1'ADODB.Recordset 错误“800a0cc1”
【发布时间】:2018-06-18 16:22:27
【问题描述】:

我正在尝试使用 ASP Classic 为我的数据库中的表设置新值。我收到此错误:

ADODB.Recordset 错误 '800a0cc1'

在与请求对应的集合中找不到项目 名称或序数。

/Unirme.asp, línea 61 (rs3("IdFichas") = i)

我不知道为什么会这样,因为该列确实存在于表中并且我传递给数据库的值是一个 int。

这是我的 ASP 代码中出现错误的部分:

    Set rs3 = server.CreateObject("ADODB.RecordSet")

    SQL3 = "SELECT * FROM FichasTablero WHERE 0"    

    con.BeginTrans

    rs2.OPEN SQL2,con,2,3
    rs3.OPEN SQL2,con,2,3
    rs2.AddNew
    rs3.AddNew

    rs2("IdPartida") = IdPartida
    rs2("IdJugador") = IdJugador 
    rs2("Comidas_El") = 0
    rs2("Comidas_A_El") = 0

    dim i
    i = 0
    Response.Write(i & "-")

    For x = 1 To 2
        For y = 1 To 8
            i = i+1
            Response.Write(i & "-")
            rs3("IdPartida") = IdPartida
            rs3("IdFichas") = i
            rs3("IdPosicion") = x&y
            rs3("EstadoInicial") = 1
            rs3.Update
        Next
    Next

    For x = 7 To 8
        For y = 1 To 8
            i = i+1
            Response.Write(i & "-")
            rs3("IdPartida") = IdPartida
            rs3("IdFichas") = i
            rs3("IdPosicion") = x&y
            rs3("EstadoInicial") = 1
            rs3.Update
        Next
    Next    

    rs2.Update

    con.CommitTrans

还有这个BD

编辑:

我想用 IdFicha 填充表格 Fichastablero。这是放置棋盘的筹码。 http://i.stack.imgur.com/bI3nQ.png
http://i.stack.imgur.com/o7qRZ.png

这一定是白色芯片的结果: http://i.stack.imgur.com/SEjmu.png

对不起,这是我的第一个 .asp 任务

【问题讨论】:

  • 看起来你的逻辑是错误的。你能解释一下为什么你在循环内有.Update,而在循环外的顶部有.AddNew吗?脚本完成后 rs3 记录集的期望状态是什么?
  • 我想用 IdFicha 填充表格 Fichastablero。就是放棋盘的筹码。 ////// i.stack.imgur.com/bI3nQ.png ////// i.stack.imgur.com/o7qRZ.png
  • 这一定是结果:i.stack.imgur.com/SEjmu.png
  • 您不能在自动增量字段中输入值。只需删除这两行,值应该是自动填充的,这就是自动增量字段的全部意义。
  • 我认为rs3.OPEN SQL2,con,2,3 应该是rs3.OPEN SQL3,con,2,3。您显示的sql语句是SQL3 ..

标签: mysql asp-classic


【解决方案1】:

当您使用SELECT * FROM FichasTablero 时,您需要按序号而不是名称来引用字段。这里有两个选项:

1:将您的查询更改为SQL3 = "SELECT IdPartida, IdFichas, IdPosicion, EstadoInicial FROM FichasTablero WHERE 0"

这将允许您保持字段分配的原样,由序号引用。

2:更改字段分配以使用序号:

For x = 1 To 2
    For y = 1 To 8
        i = i+1
        Response.Write(i & "-")
        rs3(1) = i         'IdFichas
        rs3(2) = IdPartida 'IdPartida
        rs3(3) = x&y       'IdPosicion
        rs3(4) = 1         'EstadoInicial
        rs3.Update
    Next
Next

For x = 7 To 8
    For y = 1 To 8
        i = i+1
        Response.Write(i & "-")
        rs3(1) = i         'IdFichas
        rs3(2) = IdPartida 'IdPartida
        rs3(3) = x&y       'IdPosicion
        rs3(4) = 1         'EstadoInicial
        rs3.Update
    Next
Next   

试一试,祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多