0

保存 a 时SalesLine,只更改Name字段,该doUpdate方法偶尔会抛出错误异常:

指定文字字符串的长度超过最大限制。

当 Name 的字符串长度为 128 时doUpdate成功。
当 Name 的字符串长度为 129 时,doUpdate失败(但有时如果您更改字符,它会成功)。

Name字段的定义长度为 1000 个字符(nvarchar(1000)在数据库中)。

它在生产系统中失败,但在测试系统中没有!

未启用数据库日志记录。数据库是 SQL 2008 R2。AX 内核版本:5.0.1500.5660

有人看到这个错误吗?
有什么提示可以解决吗?

4

3 回答 3

1

不要在查询中使用文字。我在 salesLine 数据源 init 方法中询问您使用文字。喜欢:

SalesLine_ds.query().literals(true);

于 2014-06-20T05:52:32.633 回答
0

可能在 sql server 2008 中使用了quotename?

在此版本的 SQL Server 中,长度限制为 128 个字符似乎存在问题

http://sqlserverpedia.com/blog/sql-server-bloggers/watchout-when-using-quotename-2/

于 2012-06-19T15:08:14.197 回答
0

我也看到过这种行为。它必须与大卫发布的文字相结合。您是否在查询中使用literalsplaceholders

我可以在内核 5.0.1600.2967(在销售表上)中完美地重现它。

它必须是与和的组合的forceliterals错误doUpdate()

将字段更改为数据类型备忘录或其他一些更改(例如更改cachelookup)也无济于事。

于 2014-09-26T09:37:24.210 回答