如何在旧的 ASP/VBScript 应用程序中使用 SQL Server 2008 存储过程的 Varchar(max) 输出?
这是存储过程:
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 适用于输入,因为我已经使用过它几次了。但是,在 VBScript 中使用 varchar(max) 输出的正确方法是什么?按原样,我的错误状态为:“参数对象定义不正确。提供的信息不一致或不完整。”来自 ADODB。
Here's the sproc:
ALTER PROC [dbo].[cms_createNoteMultipleRecID] (
@NoteDt smalldatetime,
...
@NoteIDCSV VARCHAR(max) OUTPUT
)
And here's the 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 )
Seems like adLongVarWChar works for input, as I have used it a few times. But, what's the proper way to use a varchar(max) output in VBScript? As-is, my error states: "Parameter object is improperly defined. Inconsistent or incomplete information was provided." from ADODB.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这很有效:
接受更好的想法。
This works:
Open to better ideas.
将
CreateParameter
的大小参数设置为-1
。我认为这是语法(目前无法测试):set the size argument to
CreateParameter
to-1
. I think this is the syntax (can't test at the moment):