西煞魄工厂

posts - 193, comments - 277, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
开发程序,避免不了经常要访问数据库,这里,想最常用的当然是"select * from SomeTable where ID=***"了。
这么常用,BizTalk当然也要提供一个可配置的开发手段给我们了!!它就是Database Lookup Functoid。


这个用例主要是输入用户名,查询数据库,得到该用户的其他数据。

Fegend-1 输入数据




Fegend-2 数据库表




Fegend-3 输出数据

这里略掉了输入、输出Schema的定义过程,直接来到Map的定义。
向Map中添加Database Lookup Functoid,Value Extractor Functoid,Error Review Functoid三个必用的Functoid。

Fegend-4 创建的Map



Database Lookup Functoid有四个输入参数
1.Value
2.Connection String
3.TableName
4.ColumnName
它这里类似完成了如下的代码
Connection conn = new Connection(ConnectionString);
Command cmd = new Command("select top 1 * from TableName where ColumnName=Value",conn)

Fegend-5 Database Lookup中的配置


Database Lookup Functoid执行完查询数据库后,会得到一个ADO的Record。
这里必须用Value Extractor Functoid来读取Record的数据。
当然于下面的代码
string value = Reader["Name"].ToString();

Fegend-6 Value Extractor的配置


其中用到了Error Review,它主要是用来捕获Database Lookup Functoid运行时产生的错误。

Fegend-7 捕获异常



你会发现,为啥要在Database Lookup Functoid中设置ConnectionString,这样以后改起来不是很麻烦。当然有方法,可以使用UDL文件!
创建一个UDL文件,并双击它进行配置。

Fegend-8 UDL文件



Fegend-9 配置数据源


这样就可以直接用
File Name=c:\..........\*.UDL
文件来设置ConnectionString了。不过,它的使用会带来一些性能上的问题,因为每次连接数据库,都要去读文件。

Fegend-10 修改ConnectionString


直到今天,才完完整整做了一个Database Lookup例程,用起来还真挺方便!

Feedback

#1楼    回复  引用  查看    

2007-05-25 08:42 by WXWinter(冬)      
好久没联系了,过来踩一脚

兄弟,国内对BizTalk的应用不是很多,这么执着有点吃亏
以前用2004做过一个项目,原以为在vs2005发布会后BizTalk会有一定的知名度,不过现在看来这个MS的顶级商业服务器在国内还有很长的路要走,或者说国内的数据自动化处理还没真正启步,

#2楼    回复  引用    

2007-05-25 16:32 by muyanpeng_mail@126.com [未注册用户]
多行记录返回 只能得到一条

#3楼 [楼主]   回复  引用  查看    

2007-05-25 21:33 by 西煞魄工人      
WXWinter:谢谢你的忠告,我也是在还有项目可做的基础上来提高一下自己,为自己以后的路做准备。

#4楼    回复  引用  查看    

2007-05-28 09:15 by shenfx      
晕啊,没想到还有这么简单的方法,之前还一直用sp生成xml,再用auto generate schema 这种方式从sql2005中读取数据呢,回去赶快要试一下这种方法,楼主继续加油啊,期待更多精彩文章!

#5楼    回复  引用    

2007-05-28 10:19 by 知微 [未注册用户]
其实也没啥,你要是真的研究深入了,其实有许多机会。biztalk也是BPEL的解决方案,在.net平台上要实现基于SOA的工作流,非Biztalk莫属。我做的一个项目就需要用BizTalk,目前还是一团混乱,对Biztalk实在不了解。

#6楼    回复  引用    

2007-05-28 10:22 by 知微 [未注册用户]
等到流行的时候,你也成专家了,那时候就是你的天下了,哈哈,做技术,要耐得住寂莫。只要你看清楚了形势,看准了方向,不要轻言放弃。 像AJAX这种流行技术,确实有大量的人在学习,也有许多公司在用,但掌握AJAX能给你带来多大的机会?很小。 而BizTalk就不一样,但不仅仅是技术,他其实是一套解决方案。未来基于SOA架构的解决方案在企业应用中会越来越多。基于SOA的工作流BPEL也越来越被大家所使用,这时,你的机会就来了。

除非你不看好SOA,那你现在就可以放弃Biztalk了。

#7楼 [楼主]   回复  引用  查看    

2007-05-29 13:17 by 西煞魄工人      
谢谢大家的支持!
精彩仍在继续。

#8楼    回复  引用  查看    

2007-05-29 15:47 by upzone      
学习,其实有时我也在想,要不要坚持下去

#9楼 [楼主]   回复  引用  查看    

2007-05-29 16:28 by 西煞魄工人      
我一直看好BizTalk。
只是我们的接触面太窄了,知道的东西太少。
但BizTalk的应用实在太多,只是我们都分开了,每个人只做自己业务部分能用上的。所以很难看到BizTalk的强大!如果把它整合起来,BizTalk将无所不能!

#10楼    回复  引用  查看    

2007-06-01 13:48 by chnking      
目前看来适合使用biztalk的应用并不多,大家在实际项目中使用biztalk,很多情况是不必要使用biztalk的,一些项目可能就是为了要用biztalk而使用biztalk。这是跟中国现在信息化整体发展水平有关,大多都是单独的应用,大规模的跨系统的应用还远远没有普及。但是,相信随着应用的深入,系统间的沟通需求会越来越多,系统间的联系会逐渐显现出重要性和必要性,biztalk这种SOA的能力就会显示出力量。
这是发展趋势,要赶在趋势的前面,biztalk的方向不会错。

#11楼    回复  引用    

2007-06-01 16:01 by aaa [未注册用户]
sharepoint2007 有了工作流支持,要biztalk有个屁用啊,你傻不傻啊,还研究这个破玩意

#12楼 [楼主]   回复  引用  查看    

2007-06-03 22:42 by 西煞魄工人      
To aaa:
SPS中的WF主要完成了人机工作流,而BizTalk是完成了系统间的先后调用关系,而且BizTalk提供了丰富的Adapter,可以很友好的与很多产品集成。用途是完全不一样的。

#13楼    回复  引用    

2007-06-17 22:28 by lumin [未注册用户]
biztalk和SPS是完全不同的东西。老徐我支持你。

#14楼    回复  引用    

2007-06-27 14:14 by teilu0144 [未注册用户]
学习BIZTALK 是一场赌博啊 你我他能在最后有一个赢利的局面吗?让我们赌一次吧