Моя классическая страница ASP выдает ошибку, когда я передаю 2 параметра в код Exec для моего
хранимая процедура. В основном я хочу отправить 1 пареметр, чтобы покрыть столбец, который я ищу
и один для поискового запроса. Например imSchool, Нью-Йоркский университет. У меня есть данные проверки отправленных данных, а также код Record Set.State, показывающий, что каждый раз, когда я выбираю SQL-запрос с двумя параметрами, возникает ошибка «Операция не разрешена, когда объект закрыт». всегда показывает.
Я попытался открыть объект в строке кода «While Not rs.EOF», где он выдал ошибку, не повезло.
Я думаю, что мой SQLQuery плох, потому что когда я запускаю хранимую процедуру в MSSQL с одним и тем же вводом, я каждый раз получаю таблицу возврата. SQL Server 2008 R2 и классический ASP.
ЗДЕСЬ МОЕ, ЕСЛИ ЗАЯВЛЯЕТСЯ С КОДОМ SQLQUERY (имейте в виду, что первый работает нормально и данные выбираются из БД)
SQLQuery = "Exec sp_vw_InternImport"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = 3
rs.Open SQLQuery, OBJdbConnection
If filterColmn <> "" Then
SQlQuery = "Exec sp_vw_InternImport_ColID @LookUpID=N'" + filterID + "'" + ", @LookUpCol=N'" + filterID + "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = 3
rs.Open SQLQuery, OBJdbConnection
End If
ЗДЕСЬ МОЙ ХРАНЕННЫЙ КОД ПРОЦЕДУРЫ
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_vw_InternImport_ColID]
(
@LookUpID nvarchar (255),
@LookUpCol nvarchar (50)
)
AS
SET NOCOUNT ON
BEGIN
IF @LookUpCol = 'imYear'
SELECT * FROM v_InternImport WHERE imYear = @LookUpID
ELSE
IF @LookUpCol = 'imSchool'
SELECT * FROM v_InternImport WHERE imSchool = @LookUpID
ELSE
IF @LookUpCol = 'imDiscipline'
SELECT * FROM v_InternImport WHERE imDiscipline = @LookUpID
IF @LookUpCol = 'imDegree'
SELECT * FROM v_InternImport WHERE imDegree = @LookUpID
END