Как исправить ошибку, при которой процедура ожидает параметр «@parameters» типа «ntext / nchar / nvarchar»?

Я пытаюсь использовать хранимую процедуру для отображения результатов таблицы и связанной с ней таблицы или последних изменений в базе данных. Хранимая процедура:

set ANSI_NULLS ON
set NOCOUNT ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[MKTG_Current]( @added smalldatetime OUTPUT, @named varchar(50) OUTPUT)
AS

DECLARE @pDate smalldatetime;
DECLARE @AIID int;
DECLARE @Table varchar(50);
DECLARE @Bork nvarchar(350);
SET @pDate = GETDATE()


SELECT @Table=[Table], @AIID=AIID, @added=date_added  FROM MKTG_Recent WHERE date_added > DATEDIFF(day, date_added, DATEADD(DD, 30, @pDate))
SET @named = @Table
SET @Bork = 'SELECT * FROM ' + QUOTENAME(@Table) + ' WHERE AIID= ' + cast(@AIID as varchar(100))

EXECUTE sp_executesql @Bork, @added OUTPUT, @named OUTPUT


SELECT @added, @named 

Она должна возвращать элементы в дополнение к результатам оператора select. В хранимую процедуру нет входных данных. Хранимая процедура прекрасно компилируется в SQL Management Studio (2008), но страница возвращает ошибку: Ошибка поставщика Microsoft OLE DB для SQL Server «80040e14»

. Процедура ожидает параметр «@parameters» типа «ntext / nchar / nvarchar». index.asp, строка 61

Строка 61 страницы выделена жирным шрифтом:

  dim Objrs, cmd
  set Objrs = Server.CreateObject("ADODB.RecordSet")
  set cmd = Server.CreateObject("ADODB.Command")
  set conn = Server.CreateObject("ADODB.Connection")
  conn.Open strConnect
  set cmd.ActiveConnection = conn
  cmd.CommandText="MKTG_Current"
  cmd.CommandType=adCmdStoredProc
  cmd.Parameters.Append cmd.CreateParameter("@added", 135, 2)
  cmd.Parameters.Append cmd.CreateParameter("@named", 200, 2, 50)
Line 61 **set Objrs = cmd.Execute**
  name_of_table = cmd.Parameters("@named")
  added = cmd.Parameters("@added")  

У меня сложилось впечатление, что это вызвано ошибкой кода SQL, но я ее не вижу. Быстрая проверка Objrs.state возвращает 0, что означает, что проблема определенно заключается в коде SQL. Да хоть убей, я не могу определить, почему возникает эта ошибка.

9
задан Joel Coehoorn 17 November 2011 в 15:58
поделиться