zoukankan      html  css  js  c++  java
  • [BTS]BizTalk学习之Functoid篇(Database Lookup)

    开发程序,避免不了经常要访问数据库,这里,想最常用的当然是"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例程,用起来还真挺方便!

  • 相关阅读:
    看我如何破解一台自动售货机
    充满未来和科幻的界面设计FUI在国内还没有起步在国外早起相当成熟
    libuv之介绍
    纯净版xp系统在局域网共享需要密码如何解决
    xp局域网共享设置
    Qt5设置应用程序图标
    我们为什么以及是如何从 Angular.js 迁移到 Vue.js?
    [转]聊聊技术选型
    VueJS如何引入css或者less文件的一些坑
    tomcat启动不成功(点击startup.bat闪退)的解决办法
  • 原文地址:https://www.cnblogs.com/xuzhong/p/759092.html
Copyright © 2011-2022 走看看