2010-12-09 5 views
2

Hier ist der sproc:Wie verwende ich Varchar (max) Ausgabe von einer SQL Server 2008 gespeicherten Prozedur in einer alten ASP/VBScript App?

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

Und hier ist das 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) 

Scheint, wie adLongVarWChar für die Eingabe funktioniert, wie ich es ein paar Mal benutzt haben. Aber, was ist der richtige Weg, um eine varchar (max) Ausgabe in VBScript zu verwenden? So wie es ist, gibt mein Fehler an: "Das Parameterobjekt ist falsch definiert. Inkonsistente oder unvollständige Informationen wurden bereitgestellt." von ADODB.

+0

SQL Server unterstützt den Datentyp adDBDate nicht. Sie müssen dieses Problem beheben, indem Sie den Datentyp des Parameters @NoteDt in adDBTimeStamp ändern. – Artemination

Antwort

3

Dies funktioniert:

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

Offen für bessere Ideen.

2

setzen Sie das Größenargument auf CreateParameter zu -1. Ich denke, dies ist die Syntax (kann im Moment nicht testen):

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