【发布时间】:2010-10-18 16:45:21
【问题描述】:
我在表中有一个字段,我想存储一个可能很长的错误字符串。为此,我选择了 varchar(MAX) 作为数据类型。我创建了一个存储过程,用于在表中输入该数据,对于字段“ErrorDescription”,我使用了以下参数定义。
@ErrorDescription as varchar(MAX)
问题出在调用存储过程以记录错误的 ADO 过程中(在 Access 2003 中)。我将错误描述作为字符串值并尝试将其分配给参数...
cmd.Parameters("@ErrorDescription").Value = errorDescription
但它失败并出现以下错误。
“参数对象定义不正确”
如果我将存储过程定义更改为 ...
@ErrorDescription as varchar(255)
然后一切正常。如何定义存储过程参数以接受可能很长的字符串? varchar(MAX) 是否使用了错误的数据类型?谢谢。
编辑 我应该提到我使用的 SQL Server 版本。我正在使用 SQL Server 2008。
【问题讨论】:
-
是否可以使用 varchar(max) 字段作为参数?我不确定...
-
好吧,拥有 commandText 值仍然很有趣,只是为了检查是否允许与参数一起使用的运算符(例如,“文本”字段不允许使用 LIKE)。检查 ADODB 连接如何评估此 varchar(max) 字段及其属性也会很有趣。它可能会错误地将其视为“文本”类型字段,因为 nvarchar(max) 类型比 ADODB 驱动程序更新。
标签: sql-server ms-access varcharmax