Сегодня я просто разбираюсь с заявлениями о вставках после того, как мне надоело обманывать с помощью методов Dreamweaver, которые делают это так долго (пожалуйста, не смейтесь).
Одна вещь, которую я пытаюсь выяснить, - это как получить значение идентификатора вновь вставленной записи, чтобы я мог перенаправить пользователя на эту страницу в случае успеха.
Я видел несколько примеров, рассказывающих о хранимых процедурах, но в настоящий момент они для меня двойные, и я еще не изучил их, не говоря уже о том, как их использовать на своих веб-страницах.
Основная информация
Как мне, используя мой код ниже, получить идентификатор записи для того, что пользователь только что вставил.
Workflow
Используя HTML-форму, представленную на странице ASP (add.asp), пользователь отправляет новую информацию, которая вставляется в таблицу базы данных (treebay_transaction).
При нажатии кнопки «Отправить» данные формы передаются на другую страницу (add_sql.asp), которая принимает отправленные данные вместе с дополнительной информацией и вставляет их в необходимую таблицу.
Если вставка прошла успешно, значение id новой записи (сохраненное в столбце treebay_transaction_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>