我在从数据库中检索最后一条记录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")
答案 0 :(得分:0)
您要检索的ID是相应表的主键吗?尝试使用Scope_Identity()而不是last_insert_id()
查询 - 选择SCOPE_IDENTITY()AS [LAST_IDENTITY]
它会将最后插入的ID返回到表
中答案 1 :(得分:0)
你的倒数第二行看起来不对
尝试
kpi_prog_rs.Open sql2,kpi_prog_conn,adLockPessimistic
答案 2 :(得分:0)
我没有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")