the*_*ter 2 t-sql ado asp-classic
我现在只是在使用Dreamweaver的方法做了这么长时间的作弊之后立即了解插入语句(请不要笑).
我想弄清楚的一件事是如何获取新插入记录的ID值,这样如果成功,我可以将用户重定向到该页面.
我已经看过一些关于存储过程的例子,但是目前它们对我来说是双重的,我还没有了解这些,更不用说如何在我的网页中使用它们了.
摘要
我如何使用下面的代码检索用户刚刚插入的记录ID.
工作流程
使用ASP页面(add.asp)上显示的HTML表单,用户将提交插入数据库表(treebay_transaction)的新信息.
在按下提交时,表单数据将传递到另一个页面(add_sql.asp),该页面将提交的数据与其他信息一起提供,并将其插入到所需的表中.
如果插入成功,则treebay_transaction_id在将用户重定向到显示新插入记录的页面之前,需要提取新记录的id值(存储在列中)以用作查询字符串的一部分(view.asp?id =值).
示例代码 - add_sql.asp
<!--#include virtual="/Connections/IntranetDB.asp" -->
...
<html>
<body>
<%
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = MM_IntranetDB_STRING
conn.Open ConnectionString
...
sql="INSERT INTO treebay_transaction (treebay_transaction_seller,treebay_transaction_start_date,treebay_transaction_expiry_date,treebay_transaction_title,treebay_transaction_transaction_type,treebay_transaction_category,treebay_transaction_description,treebay_transaction_status)"
sql=sql & " VALUES "
sql=sql & "('" & CurrentUser & "',"
sql=sql & "'" & timestampCurrent & "',"
sql=sql & "'" & timestampExpiry & "',"
sql=sql & "'" & Request.Form("treebay_transaction_title") & "',"
sql=sql & "'" & Request.Form("treebay_transaction_transaction_type") & "',"
sql=sql & "'" & Request.Form("treebay_transaction_category") & "',"
sql=sql & "'" & Request.Form("xhtml1") & "',"
sql=sql & "'3')"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
%>
<h1>Error!</h1>
<p>
...error text and diagnostics here...
</p>
<%
else
    ' this is where I should be figuring out what the new record ID is
    recordID = ??
    ' the X below represents where that value should be going
    Response.Redirect("index.asp?view.asp?id='" & recordID & "'")
end if
conn.close
%>
</body>
</html>
在执行语句之后和关闭连接之前运行此命令:
lsSQL = "SELECT @@IDENTITY AS NewID"
Set loRs = loConn.Execute(lsSQL)
llID = loRs.Fields("NewID").value
我把它从这里拉出来:http: //www.kamath.com/tutorials/tut007_identity.asp