Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1993151
  • 博文数量: 950
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 13070
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 09:23
文章分类

全部博文(950)

文章存档

2011年(1)

2008年(949)

我的朋友

分类: C/C++

2008-08-04 09:30:55

下载本文示例代码
下载本文示例工程

从上次在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 事件来通知已经完成连接.
阅读(279) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~