在 ASP 中利用 ADODB.Command 调用存储过程,将提交的数据插入到表,其中有一句如下:
cmd.parameters.Append cmd.CreateParameter("@content", 201, 1, 16, content)
@content 为存储过程的参数名
201 为 adLongVarChar 类型
1 为参数传递方向,1 表传入
16 为字段长度
content 为值
在测试时正确,正式使用时却失败。经排查原因如下:
测试时输入的字符都很简单,正式使用时输入的是整篇文章。上例的错误关键在于对字段长度的理解,在 SQL Server 管理器中设计字段时 text 类型显示的长度为 16,这里跟着写 16,所以仅 16 字及以下的数据可以写入。
改成如下:
cmd.parameters.Append cmd.CreateParameter("@content", 201, 1, Len(content), content)