
上QQ阅读APP看书,第一时间看更新
2.4 公共类设计

视频讲解
设计系统时,经常会重复使用同一种功能模块,为避免代码重复使用率过高,往往将重复使用频率高的代码写成公共类。
数据库连接是系统中必不可少的部分,在每个模块中都需要连接数据库进行数据操作。为此,笔者将数据库连接方法写在程序的App类中。
设计步骤如下:
(1)在工作区窗口选择FileView选项卡,在Header Files目录下找到头文件StdAfx.h,向其中添加如下代码(路径根据实际情况更换),用于将msado15.dll动态链接库导入程序中,如图2.25所示。
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll"no_namespace rename("EOF","adoEOF")

图2.25 导入动态链接库
(2)在App类的InitInstance方法中添加代码,设置数据库连接,因为App类中有全局变量TheApp,所以在App类中连接数据库后可以方便地使用全局变量对其进行操作,代码如下:

代码贴士
❶ 在调用CreateInstance函数时,使用的不是指针调用形式“→”,因为m_pConnection虽然是指针类型,但是CreateInstance函数不是指针所指向的对象方法,而是只能指针本身的函数,所以在调用时使用的是“.”的形式。
❷ 连接字符串通常是通过向程序中导入一个ADO Data控件,再通过设置ADO Data控件的连接属性获得的。
(3)代码添加完成后,各个模块就可以通过App类的全局变量theApp直接操作数据库了。