【问题标题】:How to use last_insert_id() with "ADODB.Connection" object correctly?如何正确使用带有“ADODB.Connection”对象的 last_insert_id()?
【发布时间】:2023-03-25 17:51:01
【问题描述】:

我在从数据库中检索最后一条记录 ID 时遇到问题。下面的代码是我能得到的更接近的。但是,它仍然返回记录 id,为 0; ,然后当我再次执行时,它会返回,之前执行的记录,而不是当前的。

sql = "insert into program (prog_det,budget,prog_obj,outcome,target_group,awareness,engagement,issue,seq_no) value ('"&prog_title&"','"&prog_budget&"','"&prog_obj&"','"&prog_result&"','"&prog_target&"','"&prog_aware&"','"&prog_involment&"','"&prog_issues&"','99');"

sql2 = "select last_insert_id() as last_id"

set kpi_prog_conn=Server.CreateObject("ADODB.Connection")
set kpi_prog_rs=Server.CreateObject("ADODB.Recordset")

kpi_prog_conn.Open ObjConn
kpi_prog_conn.Execute(sql)

kpi_prog_conn.Open sql2,objConn,adLockPessimistic

response.write kpi_prog_rs("last_id")

【问题讨论】:

    标签: mysql asp-classic adodb


    【解决方案1】:

    你的倒数第二行看起来不对

    试试

    kpi_prog_rs.Open sql2,kpi_prog_conn,adLockPessimistic
    

    【讨论】:

      【解决方案2】:

      您要检索的 ID 是对应表的主键吗?尝试使用 Scope_Identity() 而不是 last_insert_id()

      查询 - SELECT SCOPE_IDENTITY() AS [LAST_IDENTITY]

      它将最后插入的 id 返回到表中

      【讨论】:

      • 你能不能举一些例子,我应该怎么写你上面提到的方式?
      • 你说 scope_identity 不适用于 mysql 是对的。我的错误假设是您使用的是 sql server。我正在尝试另一种方法。
      【解决方案3】:

      我没有mysql但是试试:

      sql2 = "select last_insert_id() as last_id;"
      sql = "insert into program (prog_det,budget,prog_obj,outcome,target_group,awareness,engagement,issue,seq_no) value ('"&prog_title&"','"&prog_budget&"','"&prog_obj&"','"&prog_result&"','"&prog_target&"','"&prog_aware&"','"&prog_involment&"','"&prog_issues&"','99');" & sql2
      set kpi_prog_conn=Server.CreateObject("ADODB.Connection")
      kpi_prog_conn.Open ObjConn
      set kpi_prog_rs = kpi_prog_conn.Execute(sql)
      anotherRecordset = kpi_prog_rs.NextRecordset
      response.write anotherRecordset("last_id")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-22
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        • 2020-04-26
        相关资源
        最近更新 更多