【发布时间】:2014-09-26 17:37:24
【问题描述】:
保存SalesLine时,只更改Name字段,doUpdate方法偶尔会抛出错误异常:
指定文字字符串的长度超过最大限制。
当 Name 的字符串长度为 128 时,doUpdate 成功。
当 Name 的字符串长度为 129 时,doUpdate 会失败(但有时如果更改字符会成功)。
Name 字段的定义长度为 1000 个字符(数据库中的nvarchar(1000))。
在生产系统中失败,但在测试系统中没有!
未启用数据库日志记录。数据库是 SQL 2008 R2。 AX 内核版本:5.0.1500.5660
有人看到这个错误吗?
有什么提示可以解决吗?
【问题讨论】:
-
如果通过SQL server直接输入字段,会遇到同样的限制吗?
-
这是系统更新吗?发生的频率是多少?如果您可以在生产环境中设置 try/catch/breakpoint,并转储正在运行的 SQL,然后尝试 AnthonyBlake 所说的并在 SQL 中手动运行它,看看是否会发生相同的错误。如果您可以将其隔离为仅 SQL,则诊断会容易得多。
-
使用 AX SQL 跟踪获取 SQL 的好主意。明天试试。
-
嗯,AX 在日志中显示了一个空的 SQL 表达式。我认为AX在生成SQL表达式(UPDATE语句)。
-
我有几个问题:如果你运行 update() 而不是 doUpdate() 会失败吗?您说如果您更改字符有时会成功,任何更改是否有效或者您正在替换特定字符?
标签: sql-server axapta dynamics-ax-2009