none
请教关于:请求WebService插入数据库的问题, RRS feed

  • 问题

  •  

    场景描述如下:

    1、我从一个WebService请求数据

    2、假设请求WebServiceu源数据。有字段A,B,C

    3、我需要将数据插入table1中

    4、然而我得到的源数据不能直接插入。需要以B字段的数据,从table2中查询出数据D,在以C字段的数据从table3中查询出

    E

    5、然后才能将数据A,D,E插入到table1中

     

    可能存在的情况:table2,table3是sql的数据表,有可能分布在不同的数据库服务器中

     

    请问:我应该以怎样的思路来解决上述出现的问题,请各位专家麻烦告诉我一下解决的方案。

    2008年12月1日 4:07

答案

  • 这应该是个业务层面的问题,方法应该还是比较多的,如:

    可以考试使用SqlAdater,WebServices等将几个数据调用分阶段集成起来

    可以使用BizTalk直接访问C#方法来实现

    主要是要考虑好业务环境,看什么方法最合适......

    2008年12月1日 8:30
  • 不需要把问题复杂化了。如果WS进来的数据行不多,就直接轮询数据库,检测返回值就可以。如果数据行太多或者难以预测,就写一个业务对象,传入从WS返回的XML,然后以强类型返回可以插入最终表table1的结果,写入数据库。

    处于对性能的考虑,应该避免在一个流程中循环订阅与发布数据。

    2008年12月1日 9:19
  • 在映射的时候使用DataBase Lookup  functoid 试试

    2008年12月2日 1:22

全部回复

  • 这应该是个业务层面的问题,方法应该还是比较多的,如:

    可以考试使用SqlAdater,WebServices等将几个数据调用分阶段集成起来

    可以使用BizTalk直接访问C#方法来实现

    主要是要考虑好业务环境,看什么方法最合适......

    2008年12月1日 8:30
  • 你应该使用WCF来构建.NET 分布式应用程序。
    2008年12月1日 8:34
  • 如果是用wcf 构建.net 分布式应用程序。开发量是不是很大

    2008年12月1日 8:58
  • 不需要把问题复杂化了。如果WS进来的数据行不多,就直接轮询数据库,检测返回值就可以。如果数据行太多或者难以预测,就写一个业务对象,传入从WS返回的XML,然后以强类型返回可以插入最终表table1的结果,写入数据库。

    处于对性能的考虑,应该避免在一个流程中循环订阅与发布数据。

    2008年12月1日 9:19
  • 使用存储过程吧,如果存储过程可以解决你的需求的话,我觉得挺合适的。 SQL Adapter的成本比较高不建议大量使用。最好是能够一次搞定。
    2008年12月1日 13:05
  • 在映射的时候使用DataBase Lookup  functoid 试试

    2008年12月2日 1:22
  •  

    感谢各位老师的解答,目前问题已基本解决。采用在业务流程中调用C#方法来实现的

    2008年12月8日 2:27