提问人:vascobnunes 提问时间:11/25/2020 更新时间:11/25/2020 访问量:44
如何生成查询以获取具有通过 ProxyConnector 链接的其他对象的对象
How to build a query to get objects that have other objects linked via ProxyConnector
问:
我需要一个查询来获取连接到 ADU1 的对象列表(如图所示)。在此列表中,我只需要对象的名称。我已经在这样做了。但是,如果存在 ProxyConnector(如图所示),我还需要列表包含跟踪连接器链接到的对象。
目标是此查询用于填充文档模板的片段。
有人有任何想法或提示吗?谢谢!
答:
2赞
Geert Bellekens
11/25/2020
#1
快到了。正如你所注意到的,“trace”连接器将对象与一个不可见的对象连接起来,两者都设置为Phase1
name
object_type
ProxyConnector
此 ProxyConnector 记录连接到字段 之间的关联。这与协会的相对应。ADU1
Object 1
Classifier_guid
ea_guid
因此,为了获得两者,您可以使用这样的查询Object 1
Phase1
select o2.name
from t_object o
inner join t_connector c on o.Object_ID in (c.Start_Object_ID, c.End_Object_ID)
inner join t_object prx on prx.Classifier_guid = c.ea_guid
inner join t_connector pc on prx.Object_ID in (pc.Start_Object_ID, pc.End_Object_ID)
left join t_object o2 on o2.Object_ID in (pc.Start_Object_ID, pc.End_Object_ID)
and o2.Object_ID <> prx.Object_ID
where o.ea_guid = '{1CAC051A-142D-4430-9E9D-F323C38FE547}' --guid of ADU1
union
select o2.name
from t_object o
inner join t_connector c on o.Object_ID in (c.Start_Object_ID, c.End_Object_ID)
inner join t_object o2 on o2.Object_ID in (c.Start_Object_ID, c.End_Object_ID)
and o2.Object_ID <> o.Object_ID
where o.ea_guid = '{1CAC051A-142D-4430-9E9D-F323C38FE547}' --guid of ADU1
第一个查询将获取通过代理连接器连接的元素,第二个查询将获取以常规方式连接的元素。
此查询使用 SQL Server 语法。您可能需要添加一堆括号才能将其转换为 MS Access 语法(用于 .eap 和 .eapx 文件)
评论
0赞
vascobnunes
11/26/2020
这真的有很大帮助。谢谢!
评论