2

这是一个多方面的问题,但任何帮助表示赞赏

背景:

  1. 我有一个使用 SSO 的包含 6 个实体的应用程序定义
  2. 数据库后端是通过 ODBC 的 Firebird
  3. 所有数据都来自存储过程

问题:

1 在尝试在业务数据列表 Web 部件中实现 BDC 中的一个或任何实体时,我收到以下错误:“从 . 检索数据时发生错误。管理员,请参阅服务器日志以获取更多信息。” 只有当我的字段为空时才会发生这种情况,在这种情况下,字段被声明为字符串。

2.当我检查日志时,它是一个 System.OverFlowException。

3.如果我改变它,使程序的输出是一个空白字符串,我突然得到“实体的标题属性设置为无效值”

4.更改为空字符串后日志中的错误是“异常传递给HandleXslException.HandleException System.ArgumentException:'.',十六进制值0x00,是无效字符”什么给出?昨晚它工作没有问题,直到出现在其中一个字符串字段中具有空值的记录。现在,即使用通用的东西替换空值仍然给我标题属性无效错误。

最令人费解的是:如果我更改查询以使查询中不包含 null 或空白字符串的行,错误就会消失。但是,如果我将它们添加回来并用任何内容替换空字符串,错误就会回来。什么!@#$?在将记录返回到 XmlReader 之前,它如何知道我已将空值替换为其他值?

4

1 回答 1

0

我遇到了这个确切的场景,它带回了一些愤怒/困惑的时刻。正如您在评论中所说:

我在所有 varchar 和 char 输出上将编码设置为 unicode 并修复它。缺少编码导致该列出现空字符(不是空记录,而是一个空字符),Sharepoint 无法解析该字段。更改了编码,一切正常。

我花了几天的时间对着电脑发誓,然后我们才发现它的 unicode 问题。我什至不知道它什么时候改变了,但我们意识到了同样的事情,世界再次一切正常。

于 2013-11-12T20:40:44.947 回答