Как использовать выходные данные Varchar(max) из хранимой процедуры SQL Server 2008 в старом приложении ASP/VBScript?

Вот спрок:

ALTER PROC [dbo].[cms_createNoteMultipleRecID] (
  @NoteDt smalldatetime, 
  ...
  @NoteIDCSV VARCHAR(max) OUTPUT
)

А вот VBScript:

cmd.CommandText = "cms_createNoteMultipleRecID"
cmd.Parameters.Append = cmd.CreateParameter("@RC", adInteger, adParamReturnValue)
cmd.Parameters.Append = cmd.CreateParameter("@NoteDt", adDBDate, adParamInput,, NoteDt )
...
cmd.Parameters.Append = cmd.CreateParameter("@NoteIDCSV", adLongVarWChar, adParamOutput )

Похоже, что adLongVarWChar работает для ввода, так как я использовал его несколько раз. Но как правильно использовать вывод varchar(max) в VBScript? Как есть, моя ошибка гласит: «Объект параметра определен неправильно. Была предоставлена ​​противоречивая или неполная информация». из АДОДБ.


person alphadogg    schedule 09.12.2010    source источник
comment
SQL Server не поддерживает тип данных adDBDate. Вы должны исправить эту проблему, изменив тип данных параметра @NoteDt на adDBTimeStamp.   -  person Artemination    schedule 06.03.2015


Ответы (2)


Это работает:

cmd.Parameters.Append = cmd.CreateParameter("@NoteIDCSV", adBStr, adParamOutput, -1 )

Открыт для лучших идей.

person alphadogg    schedule 09.12.2010

установите аргумент размера от CreateParameter до -1. Я думаю, что это синтаксис (на данный момент не могу проверить):

cmd.Parameters.Append = cmd.CreateParameter("@NoteIDCSV", adLongVarWChar, adParamOutput, -1 )
person tenfour    schedule 09.12.2010