使用ADO封装类的数据库程序开发实例[第二版](上)
2008-04-19 20:27:48 来源:WEB开发网从上次在VC知识库发表《使用ADO封装类的数据库程序开发实例》一文后,得到许多网友的响应,甚觉欣慰。但由于我对ADO也非完全精通,所以上次写的类很不完美,甚至可能给某些朋友带来麻烦,因此一直想把它写得更完善一点。
现在写的这个类功能应该说比较完善了,基本上封装了ADO组件的大部分方法,并扩展了一些人们常用到的方法,如把文件或图片写到数据库中,从数据库中读出位图字段,字段的值的智能转换等等。
因为实在是时间不够,我几乎没有对command类做任何有效的测试,也没有写相关的文档,而对connection和recordset类的文档,也写得不甚明了,也许有人又要说我很不负责任了。呵呵!
在这个测试程序中,我对连接类和记录集类的大部分方法进行了测试,包括对常用数据类型的存取,添加删除等等,还有对多种数据类型以整型,双精度型,字符型类型的变量读取,其中以字符型兼容性最好,基本上对大部分数据都能返回有效值,其次是双精度型,和整型,它们不能读取字符型,日期型等字段的值. 另外对这两个象的属性进行了一些测试,当然有好多属性是没法全面测试得到的。
我在开发ADO相关程序中切身体会到有几个方法是很有用的方法,如SetFilter,SetSort,Find,书签等等,它们可以让你很有效的操纵记录,而不用老去想怎样去构建SQL语句来实现这样功能。
其中还有一个导入导出xml文件的方法,我不知道这个方法是不是很有用,因为它对中文支持不是很好,导出的xml文件中没法正常显示中文.
最后还一个就是datagrid控件与记录集绑定,我觉得这应该是一个比较有用的技巧,我以前都没想到过,在VC中也可以学VB一样绑定数据库的,这样不用写什么代码就可以方便地修改数据了。
代码在(vc6 + sp5) / vc7 + windows XP 英文专业版/ windows 2000 中文专业版/ windows 2003 英文测试版 /windows 2003 中文企业版下编译通过, 并在access, sqlserver, mysql下进行了测试,除mysql不支持事务等方法外,大部分方法都可以通过测试.
在原则上,我默许您自由地使用,修改,或传播此代码,但您要是用在某某项目中或用于商业用途,那请您注意了,我不会对因代码bug问题,或版权问题对您造成的损失负任何责任。
由于初次封装如此多又不是很熟悉的东西,有什么不当之处还请大家多指教.
本文代码运行效果图如下:
下面详细介绍这几个封装类:
CAdoConnection class
类成员:
构造函数: CAdoConnection()
创建Connection对象.
Open 方法:
BOOL CAdoConnection::Open(LPCTSTR lpszConnect, long lOptions)
连接到数据源.
Params:
[lpszConnect]: 连接字符串, 包含连接信息.
[lOptions]: 可选. 决定该方法是以同步还是异步的方式连接数据源. 可以是如下某个常量:
[常量] | [说明] |
adConnectUnspecified | (默认)同步方式打开连接. |
adAsyncConnect | 异步方式打开连接.
Ado用 ConnectComplete 事件来通知已经完成连接. |
BOOL CAdoConnection::ConnectSQLServer(CString dbsrc, CString dbname, CString user, CString pass, long lOptions)
连接到 SQL Server 数据库.
BOOL CAdoConnection::ConnectAccess(CString dbpath, CString pass, long lOptions)
连接到 Access 数据库.
Params:
[dbpath]: Access MDB 数据库文件路径名.
[pass]: 访问密码.
[dbsrc]: SQL SERVER 服务器名.
[dbname]: 默认的数据库名.
[user]: 用户名.
OpenUDLFile方法:
BOOL CAdoConnection::OpenUDLFile(LPCTSTR strFileName, long lOptions)
更多精彩
赞助商链接