保存SalesLine
时,只更改Name
字段,doUpdate
方法偶尔会抛出错误异常:
指定文字字符串的长度超过最大限制。
当Name的字符串长度为128时,doUpdate
成功
当Name的字符串长度为129时,doUpdate
失败(但有时如果更改字符则会成功)。
Name
字段的定义长度为1000个字符(数据库中为nvarchar(1000)
)。
它在生产系统中失败了,但在测试系统中失败了!
未启用数据库日志记录。数据库是SQL 2008 R2。 AX核心版本:5.0.1500.5660
有人看到过这个错误吗? 有什么提示要解决吗?
答案 0 :(得分:1)
不要在查询中使用文字。 我在salesLine数据源初始化方法中使用了文字。 喜欢:
SalesLine_ds.query()文本(true);
答案 1 :(得分:0)
有可能在sql server 2008中使用了引号吗?
在此版本的SQL Server
中,长度限制似乎存在128个字符的问题http://sqlserverpedia.com/blog/sql-server-bloggers/watchout-when-using-quotename-2/
答案 2 :(得分:0)
我也看到过这种行为。
它必须与David发布的文字相结合。您在查询中使用literals
或placeholders
吗?
我可以在内核5.0.1600.2967(在salestable上)完美地重现这一点。
必须是forceliterals
和doUpdate()
将字段更改为数据类型备忘录或其他一些更改,例如更改cachelookup
也不会有帮助。