У меня есть оператор Insert (хранимая процедура), который возвращает SCOPE_IDENTITY () после вставки, однако я пытаюсь выяснить, как его вернуть после использования запроса ADODB.Command
в Classic ASP.
В SP это включено в конце:
SET @LastID = SCOPE_IDENTITY() -- @LastID is an INT OUTPUT param.
Это то, что вызывается при обработке запроса вставки в классическом коде ASP:
set SQLCOMM = Server.CreateObject("ADODB.Command")
SQLCOMM.ActiveConnection = CONNSTRING
SQLCOMM.CommandText = "Insert_SP_Returns_ScopeID"
SQLCOMM.CommandType = 1
SQLCOMM.CommandTimeout = 0
SQLCOMM.Prepared = true
LastIDParameter = SQLCOMM.CreateParameter("@LastID",adInteger,adParamOutput)
SQLCOMM.Parameters.Add(LastIDParameter)
SQLCOMM.Execute()
LastID = LastIDParameter.Value
set SQLCOMM=Nothing
Должен ли я сделать что-то подобноедо того, как я set SQLCOMM=Nothing
?
NewID = SQLCOMM("LastID").Value
ИЛИ ... можно ли выполнить хранимую процедуру вставки / обновления из Adodb.Recordset
вместо ADODB.Command
вместо?
The example above gives the following error message:
ADODB.Command error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range,
or are in conflict with one another.
ошибка возвращается из-за этой строки кода:
LastIDParameter = SQLCOMM.CreateParameter("@LastID",adInteger,adParamOutput)