【问题标题】:BizTalk WCF-SQL typed stored procedure response schemaBizTalk WCF-SQL 类型化存储过程响应架构
【发布时间】:2015-03-18 07:04:32
【问题描述】:

为类型化存储过程生成响应模式,存储过程在返回最终结果集之前进行了一些数据库更新。 Visual Studio 生成的响应架构有相当多的垃圾。

有没有办法强制它生成更清晰的架构?

StoredProcedureResultset4 是唯一重要的。

【问题讨论】:

  • 需要查看您的 SP 代码,但这几乎可以肯定是因为您的 SP 中有多个 SELECT 语句。注释掉或删除除重要的以外的所有内容。

标签: biztalk


【解决方案1】:

这是我从 MSDN 获得的相同答案。不幸的是,标记的答案对您不起作用,因为没有办法,或者真的很难从调用的存储过程中捕获和抑制结果集。

原因与存储过程代码有关。

向导只会为 SQL Server 响应中返回的元素生成架构类型。这意味着,存储过程正在为这些更新发出结果,因此您可以获得它们的元数据。

解决此问题的方法是修改 SP 代码,使其不会在任何不应该的操作上发出任何结果。基本上,如果您在 SQL Management Studio 的结果窗口中看到它,您将获得它的架构。

status 和 message 可能是另一个 SP 的结果,因此抑制这种情况的一种方法是将结果分配给临时表,从而将其从输出流中重定向。

但是,如果 StoredProcedureResultset4 是最重要的,那么这就是您必须使用的全部。只要它们总是以相同的顺序出现,忽略所有其他结果并没有错。

为了清楚起见,您仍然必须编写抑制不需要的结果的包装器,只需从新 SP 调用原始 SP 不会改变输出,您仍然会得到额外的结果集。

事实上,包装器会更难实现,因为您必须捕获并检查所有我认为不可能的结果集。

在 BizTalk 中执行此操作的更正确方法是删除不需要的内容的端口映射。

【讨论】:

  • 我认为端口映射更有意义,我将使用端口映射开发规范模式,因此不再关心额外的结果集。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 2011-12-15
相关资源
最近更新 更多