в ASP Classic. БД MS-Access.
я делаю: INSERT INTO Orders (userId) VALUES (123)"
я хочу получить orderNumber
из этой строки. это номер автоинкремента.
так я и сделал: SELECT orderNumber FROM Orders WHERE userId=123
но поскольку он находится на той же странице, SELECT возвращает: Либо BOF, либо EOF имеет значение True, либо текущая запись была удалена. Запрошенная операция требует текущей записи.
Я видел где-то RETURNING orderNumber as variable
, но это было для оракула, и я не знаю, как внедрить его в мой Asp: (
set addOrder = Server.CreateObject("ADODB.Command")
addOrder.ActiveConnection = MM_KerenDB_STRING
addOrder.CommandText = "INSERT INTO Orders (userId) VALUES ("&userId&")"
addOrder.CommandType = 1
addOrder.CommandTimeout = 0
addOrder.Prepared = true
addOrder.Execute()
Dim getOrderNumber
Set getOrderNumber = Server.CreateObject("ADODB.Recordset")
getOrderNumber.ActiveConnection = MM_KerenDB_STRING
getOrderNumber.Source = "SELECT orderNumber FROM Orders WHERE userId=" & userId
getOrderNumber.CursorType = 0
getOrderNumber.CursorLocation = 2
getOrderNumber.LockType = 1
getOrderNumber.Open()
session("orderNumber") = getOrderNumber.Fields.Item("orderNumber").value