SQL Sparx 文档生成不工作

SQL in Sparx document generation is not working

我正在尝试在 EA sparx 存储库模板中制作,用于在包中生成带有打印图表的文档,并列出所有组件、注释和它们存储的主要包。

在我只有组件和注释列表之前,一切正常。一旦我还添加了组件包(来自 t_package 的名称),SQL 显示错误“将 nvarchar 值转换为数据类型 int”

并且根本不会打印 table 个组件。

这就更奇怪了,因为 SQL 在 SQL 便签本中单独使用的命令完全可以正常工作并给你正确的结果。我已经创建了一个使用了 table 的图表,但我仍然不明白问题出在哪里...

我该如何解决这个问题?

观察: 这工作正常:

SELECT o1.Name as Component, o1.Note as "Note.Formatted"
from t_diagramobjects do1, t_diagram d1, t_object o1
where do1.diagram_id = d1.diagram_id
and do1.object_id = o1.object_id
and d1.ea_guid = #DIAGRAMID#
and o1.Object_type = 'Component'
order by o1.Name

这里有问题:

SELECT o1.Name as Component, p1.Name as "Part.of", o1.Note as "Note-Formatted" 
from t_diagramobjects do1, t_diagram d1, t_object o1, t_package p1
where do1.diagram_id = d1.diagram_id
and o1.Package_ID = p1.Package_ID 
and do1.object_id = o1.object_id
and d1.ea_guid = #DIAGRAMID#
and o1.Object_type = 'Component'
order by "Part.of"

错误在行

and d1.ea_guid = #DIAGRAMID#

#DIAGRAMID# 将包含图表的整数 ID,而不是图表的 GUID。

将其更改为

and d1.Diagram_ID = #DIAGRAMID#

使用 EA 时找出 SQL 错误的一个技巧是检查 EA 记录所有 SQL 错误的文件 %appdata%\Sparx Systems\EA\DbError.txt