Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BizTalk WCF-SQL类型存储过程响应架构_Biztalk - Fatal编程技术网

BizTalk WCF-SQL类型存储过程响应架构

BizTalk WCF-SQL类型存储过程响应架构,biztalk,Biztalk,为类型化存储过程生成响应模式,存储过程在返回最终结果集之前进行了一些数据库更新。VisualStudio生成的响应模式有相当多的垃圾 有没有办法强迫它生成更干净的模式 StoredProcedureResultset4是唯一重要的问题。以下是我从MSDN得到的相同答案。不幸的是,标记的答案对您不起作用,因为无法从被调用的存储过程中捕获和抑制结果集,或者说这非常非常困难 原因与存储过程代码有关 该向导将仅为SQL Server响应中返回的元素生成架构类型。这意味着,存储过程将为这些更新发送结果,

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

有没有办法强迫它生成更干净的模式


StoredProcedureResultset4是唯一重要的问题。

以下是我从MSDN得到的相同答案。不幸的是,标记的答案对您不起作用,因为无法从被调用的存储过程中捕获和抑制结果集,或者说这非常非常困难

原因与存储过程代码有关

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

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

状态和消息可能是另一个SP的结果,因此抑制的一种方法是将结果分配给临时表,从而将其重定向到输出流

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

需要明确的是,您仍然需要编写抑制不需要的结果的包装器,仅从新SP调用原始SP不会更改输出,您仍然会得到额外的结果集

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


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

需要查看您的SP代码,但这几乎可以肯定是因为SP中有多个SELECT语句。注释掉或删除除重要语句以外的所有语句。我认为端口映射更有意义,我要开发一个规范模式,在端口上映射,这样就不再关心额外的结果集了。