我试图避免在我的网络应用程序中使用直接的SQL查询.我环顾四周并得出结论,ADO Recordsets将是最好或最安全的工具.我需要将记录插入数据库表.不幸的是,我不知道如何获得刚刚插入的记录的标识值.这是我现在所拥有的减少:
<% dim insertID,rs set rs = Server.CreateObject("ADODB.Recordset") rs.Open "my_table_name",conn,adOpenForwardOnly,adLockOptimistic rs.AddNew() Call m_map_values_to_rs(rs) rs.Update() insertID = rs("id") rs.Close() rs = Nothing %>
我的代码是成功插入记录,但我不能为我的生活弄清楚如何在插入后获取Recordset的id字段更新.如何从此Recordset中获取标识列值?
我不得不将光标类型更改为adOpenKeyset而不是adOpenForwardOnly.执行此操作后,记录将在插入后使用“自动编号”字段的新值自动更新.然而,这不是你的想法. rs(“id”)的值不会变成整数甚至变量.它变成某种自动化类型,不能作为数字进行评估.出于某种原因,CInt()也不能直接用于该类型.所以你必须做的是将值转换为字符串,然后将其转换为Int.以下是我如何管理:
insertID = CInt( rs("id") & "" )
感谢Dee的回答.它帮助极大.