微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sparx 文档生成中的 SQL 不起作用

如何解决Sparx 文档生成中的 SQL 不起作用

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

  • 模板包含图表和片段链接

    Template

  • Fragment 包含组件表、注释和存储组件的包。

    Fragment

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

Sparx error

并且根本不会打印组件表。

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

diagram

我该如何解决这个问题?

观察: 这工作正常:

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_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 错误的一个技巧是检查文件 %appdata%\Sparx Systems\EA\DbError.txt,EA 记录所有 SQL 错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。