asp使用存储过程获取输出参数值过长的问题

noto 2016-08-05 01:40:48
DIM CMD,RS
SET CMD = SERVER.CREATEOBJECT("ADODB.COMMAND")
WITH CMD
.ACTIVECONNECTION = conn 'conn是数据库连接
.COMMANDTEXT = "sp_List" '指定存储进程名
.COMMANDTYPE = 4 '表明这是一个存储进程
.PREPARED = TRUE '要求将SQL命令先行编译

.PARAMETERS.APPEND .CREATEPARAMETER("@str",200,2,8000) '输出

.PARAMETERS.APPEND .CREATEPARAMETER("@id",200,1,50,id)

SET RS =.Execute
END WITH

因为 @str 返回了JSON,该值会超出varchar 8000字节的限制而截断。
试了是使用 .PARAMETERS.APPEND .CREATEPARAMETER("@str",201,2,8000) 201这个text数据类型,就没输出了

另外,我使用的是MSSQL 2016,
这个JSON 是 使用 SELECT * FROM TABLE FOR JSON PATH 得来的。
当前是用 SET @str = (SELECT * FROM TABLE FOR JSON PATH ) 来返回输出参数值,是否有更好的方法把JSON传给ASP


...全文
431 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2016-08-11
  • 打赏
  • 举报
回复
1 简单点,先返回记录集,然后读取recordset 拼接json 或 2 用ado stream 读 BLOB数据
Go 旅城通票 2016-08-10
  • 打赏
  • 举报
回复
varchar最大就8k,超过当然报错了,返回text类型
noto 2016-08-08
  • 打赏
  • 举报
回复
请高手帮忙!!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧