3 使用ADO封装类
建立了ADO封装类后,使用数据库操作就非常简单了。在需使用数据库查询的CPP文件中包含ADO封装类头文件"ADODB.H",然后定义一个CADODB类指针;接下来就是打开数据库连接。使用封装类的成员函数OpenDataBase(…),输入要连接的数据库的DSN名称、用户名和密码,就与数据库建立连接了。要注意的是如果同时连接多个数据库就要声明多个CADODB对象指针,保证数据库连接对象是全局且惟一。接下来就是,调用成员函数Select取得数据库查询结果,执行完毕后查询结果放在CADODB的成员字符数组指针pData中,数组大小可以从成员变量nResultRow和nResultCol中得出。基本步骤如下:
在"stdafx.h"中加入ADO库的导入语句
| #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF") |
在应用程序类中初始化COM对象,在InitInstance()中加入以下语句
加入封装类的声明文件
定义封装类对象
CADODB ADO1; //连接数据库1 CADODB ADO2; //连接数据库2 … ADO1.OpenDataBase("数据源名称","用户ID","用户密码") //建立连接,第一次连接时调用 ADO1.Select("select * from 表名"); //执行SQL查询语句 int nRow= ADO1.GetResultRow(); //取得记录行数 int nCol= ADO1.GetResultCol(); //取得记录列数 for(i=0;i<nRow;i++) //取得查询结果 for(j=0;j<nCol;j++) printf("第%d行第%d列的值是%s\n",i,j,ADO1.pData[i*nCol+j]; … ADO1.CloseDataBase(); //使用完后关闭数据库连接 |
4 结论和建议
使用封装ADO类后,在应用程序中操作数据库的过程就变得简单了,针对一般的数据库应用程序,而且在数据量不很大的情况下,本封装类已经能够应付,在使用效率上也比较满意。但是该封装没有考虑数据访问的优化处理,数据库使用了动态连接方式,记录集也没有进行分页处理,ADO缓冲区大小和游标类型都采用缺省设置,这些在实际使用中都可能降低封装类的性能,读者可以根据不同的应用情况有针对地进行修改。
|