因为简化的原因,在开发BANK组件的过程中,我们使用了数组作为该COM+组件的数据服务部分。实际上,现实中很多应用程序要访问的是数据库提供的数据。对于Windows DNA的三层模型(参见图10-2),我们前面的COM+组件已经简单地对它做了实现。CLENT客户程序是表示层, BANK的ATM组件对象是业务层,Data数组对应着数据服务层。严格来说,Data(数组)数据不应该算作一层。下面,我们就改造一下BANK应用程序:把Data数组中的那些数据放到数据库中,并在ATM对象中使用ADO,利用ADO技术访问数据库。这样,本章介绍的这部分COM+组件开发的内容就比较完美了。
1. 建立数据库
首先,使用Microsoft Office中的Access创建一个名为Data的数据库(Data.mdb),该数据库可以放在本机上,也可以放在别的机器上。然后,在数据库中设计一个表Account,它的字段结构和数据如图10-20所示。
图10-20 数据库中Account表的设计
2. 使用ODBC配置数据源
要使用ADO访问数据库,一个比较方便的方式是通过ODBC连接数据源。ODBC不仅提供了图形化的工具,还允许建立远程数据库的连接。下面就简单介绍一下使用ODBD配置数据源的方法。
(1)在Windows控制面板的管理工具中,双击ODBC图标,打开ODBC数据源管理器,如图10-21所示。
图10-21 ODBC数据源管理器
(2)选择“DSN”标签页,单击“添加”按钮,弹出“创建数据源”对话框,选择Microsoft Access Driver(.mdb)为新建数据源的驱动程序,如图10-22所示。
图10-22 选择数据源的驱动程序
(3)单击“完成”,在“ODBC Microsoft Access安装”对话框中输入数据源名称为BankData,单击“选择”按钮,找到我们建立的Data.mdb数据库并选择它(此处可以选择网络上的数据库)。如图10-23所示,最后点击“确定”,就完成了ODBC数据源的配置。下一步就可以使用ADO和这个ODBC配置的数据源建立连接了。
(www.xing528.com)
图10-23 ODBC数据源的配置
3. 在组件中添加访问数据库的支持
把数据放到数据库Data.mdb中之后,Data.mdb成为真正意义上的Windows DNA数据服务层。而处于中间层的COM+组件——ATM组件要连接CLIENT客户端和Data.mdb数据库,并完成处理业务逻辑的任务。对于本章的这个例程,我们要处理的业务逻辑就是客户的查询(Query)。具体的查询过程是这样:客户输入账号和密码后,执行查询操作,该操作创建或激活远程COM+组件,并调用COM+组件的Query方法,由Query方法连接并访问数据库,获得相应的信息,最后再把信息返回给客户。下面,我们就实现这个过程。在Visual C++中打开10.3.1节的BANK项目,按照下面的步骤修改该应用程序。
(1)打开StdAfx.h文件,添加如下的代码(导入ADO组件,以智能指针的方式使用ADO组件,对于ADO的具体内容读者可以参见第四章):
// 导入ADO组件,使用其中的组件类及其指针:
(2)修改Query函数,该函数是查询业务处理的主要实现者,我们在BANK项目的基础上进行函数修改,其修改后的代码如程序清单10-3所示。
程序清单10-3 使用数据库的Query函数
在查询业务处理的过程中,客户、ATM组件和数据库可以处在不同的机器上。为了简单起见,我们把数据库和ATM组件放在同一台机器上,读者如果想要改变存放位置,可以把ODBC数据源连接设置作一下调整,就可以把数据库放在别的机器上。
4. 测试新的COM+组件。
我们可以直接使用前面编写的CLIENT客户程序来测试这个新的组件。CLENT的运行结果和图10-19所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。