SQL 查询在 EA 中有效,但在 API 中不适用于 C#
SQL query works in EA but doesn't work with C# on the API
我创建了一个 C# 脚本,该脚本使用 excel 中的数据构建 sql 查询,然后查询 EA 存储库。
sqlquery_part1A = "select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = '" + adu_alias.Replace("'", "''") + "' and endobj.Name = '" + datastream + "' and obj.Name = '" + adu_name + "'";
int element_count = repository.GetElementSet(sqlquery_part1A, 2).Count;
查询工作正常,除非来自 excel 的字段之一有换行。例如
"global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)"
发生这种情况时,脚本在存储库中找不到任何条目。但是,如果我对 EA 进行完全相同的查询,它 returns 一个条目。
这是一个查询示例:
select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = 'global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)' and endobj.Name = 'DIS-ING.FTP' and obj.Name = 'L2P Service products'
有人能帮忙吗?
我的解决方案是用 Environment.NewLine:
替换断线
sqlquery_part1A = sqlquery_part1A.Replace("\n", Environment.NewLine);
我创建了一个 C# 脚本,该脚本使用 excel 中的数据构建 sql 查询,然后查询 EA 存储库。
sqlquery_part1A = "select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = '" + adu_alias.Replace("'", "''") + "' and endobj.Name = '" + datastream + "' and obj.Name = '" + adu_name + "'";
int element_count = repository.GetElementSet(sqlquery_part1A, 2).Count;
查询工作正常,除非来自 excel 的字段之一有换行。例如
"global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)"
发生这种情况时,脚本在存储库中找不到任何条目。但是,如果我对 EA 进行完全相同的查询,它 returns 一个条目。
这是一个查询示例:
select obj.object_id from (t_object obj inner join t_connector j on (obj.Object_ID=j.end_Object_ID)) inner join t_object endobj on (j.start_Object_ID=endobj.Object_ID) where obj.alias = 'global_sla_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SLA NRT),
global_swh_l2p_nrt.*\.nc(|\.gz)$ (Product: L2P-SWH NRT),
global_sla_l2p_stc.*\.nc(|\.gz)$ (Product: L2P-SLA STC)' and endobj.Name = 'DIS-ING.FTP' and obj.Name = 'L2P Service products'
有人能帮忙吗?
我的解决方案是用 Environment.NewLine:
替换断线sqlquery_part1A = sqlquery_part1A.Replace("\n", Environment.NewLine);