Con*_*eak 3 vbscript adodb asp-classic
我正在尝试这个但是ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed.在这行代码上出错了If ScopeID.EOF Then
请不要回答使用该CreateParam方法,寻找没有这种方法的解决方案.谢谢.
<%
set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = conn
Cmd.CommandText = "INSERT INTO TABLE (NAME) VALUES ('test') SELECT SCOPE_IDENTITY() AS ID"
Cmd.CommandType = 1
Cmd.CommandTimeout = 0
Cmd.Prepared = true
Set ScopeID = Cmd.Execute()
If ScopeID.EOF Then
Response.Write "There was an Error in your request, Please try again"
Response.End
Else
ID= ScopeID(0).Value
End IF
ScopeID.Close
Set ScopeID = Nothing
Set Cmd = Nothing
Response.Write ID
%>
Run Code Online (Sandbox Code Playgroud)
试试这个:
Cmd.CommandText = "SET NOCOUNT ON; INSERT INTO TABLE (NAME) VALUES ('test'); SET NOCOUNT OFF; SELECT SCOPE_IDENTITY() AS ID"
Run Code Online (Sandbox Code Playgroud)
据我了解,如果SET NOCOUNT ON没有"隐藏",SQL Server会为实际的insert语句返回一个(空)记录集.我认为错误消息是指关闭的记录集,而不是连接.