Con*_*eak 0 sql t-sql sql-server adodb asp-classic
我有[MySp],一个存储过程.
所以检查一下..当我运行它时它工作:
SELECT ID,Name FROM Table
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我在应用程序端出现错误(Adodb)
Declare @Table TABLE(ID int,Name varchar(10))
--- Inserts into table variable ---
INSERT INTO @Table
SELECT ID,Name FROM Table
--- Returns data from table variable ---
SELECT ID,Name FROM @Table
Run Code Online (Sandbox Code Playgroud)
请记住,在SQL控制台中我得到[MySp]的相同结果,但在application/adodb代码中我得到错误.
ASP代码:
Set oRS = Server.CreateObject("Adodb.Recordset")
oRS.Open "[MySp]", Conn
If oRS.EOF Then... <--Gives an error
ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么我在SQL中使用Table变量时会出现此错误?
尝试SET NOCOUNT ON在存储过程的顶部添加.
我有一个模糊的回忆,ADO曾经因为插入/更新/删除返回的结果计数而感到困惑.
例如:
CREATE PROCEDURE MySP
AS
SET NOCOUNT ON
Declare @Table TABLE(ID int,Name varchar(10))
--- Inserts into table variable ---
INSERT INTO @Table
SELECT ID,Name FROM Table
--- Returns data from table variable ---
SELECT ID,Name FROM @Table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |