网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
封装ADO访问数据库的两个类
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

    对于初学者,使用ADO访问数据库的时候,涉及到各种数据类型转换,可能有一些难度,我试图封装了ADO访问数据库,使其更方便的用现有的VC的数据类型,更加方便的使用ADO操作数据库。
下面分别提供两个封装ADO数据库访问的类,一个是数据库的连接类,一个是数据库字段访问的类。

   在连接类中,大家可以看到,连接类中并没有Recordset的成员变量,因为这样的,在整个数据库应用程序中,数据库的连接一般一个就够了,而同时打开的Reocordset则可能不只一个,所以,如果两个在同一个类里,那么,如果要同时打开两个记录集,需要建立类的两个实例,就是需要同时打开两个数据库连接,如果对于连接的是同一个数据库,同时打开两个连接的话,意味着资源的不必要的浪费。

   数据库字段访问类,简化了,获取数据库字段内容的操作,避免了数据类型转换的麻烦。

   两个类都对错误处理进行了较多的考虑,在访问数据库中,如果没有错误处理,其害处是显而易见的。




#ifndef _BBADOCONNECT_H
#define _BBADOCONNECT_H

//
// ADO访问数据库类
// 软件环境:需要MSADO15.DLL
// 作者:邓振波
// 2001.4.20
// Email:bozi@china.com
// 说明:封装了ADO使用的操作函数和ADO访问数据库错误处理
//  使在VC上方便的使用ADO访问数据库
// 包括:ADO连接数据库、打开记录集、执行SQL、以及
//  事务处理、ADO记录集内容转换成C++的常用数据类型(CString、char,long,float等)
//
// 使用:1。定义一个CBBAdoConnection实例:CBBAdoConnection m_adoConn;
//  2。建立连接:m_adoConn.Open(strConnstring);
//     如果需要无条件重新连接的可以,参数bRepen设成TREU
//  3。打开记录集:
//
//   _RecordsetPtr* prsThis=NULL;
//   prsThis=new _RecordsetPtr;
//   CString strSQL;
//   strSQL="select * from Table_Name";//  
//   如果记录集打开失败
//   

if(!(m_adoConn.OpenRecordset(strSQL,prsThis)))
//    return FALSE;
//  4。建立记录集值对象
//   注意需要用参数构造
//   CBBRstValues rsv(m_adoConn,prsThis);
//  
//  5。获得的字段的值
//   rsv.GetValueLong(&m_nDeptID,1L);//获得第一个字段的值
//   rsv.GetValueStr(m_strName,"ID");//获得第一个字段名为ID的值
//   其它的同理.如果需要获得SQL Server中nText类型的字段值请用
//   GetValText(CString &strText, CString &strFieldName)函数
//  6。记录集的记录移动 (*prsThis)->MoveNext()等类似函数
//  7。记录集不用时候需要释放其资源
//   1)关闭记录集
//   2)删除记录集指针
//   e.g. (*prsThis)->Close();
//     delete prsThis;
//     prsThis=NULL;
//   否则会造成内存泄漏
//  
//  注:
//   1。程序必须要初始化COM环境,请在应用类中加入AfxOleInit函数初始化环境,否则ADO的调用将失败
//   2。如果需要调用存储过程SQL语句改为“Exec ” + 存储过程名即可,与执行SQL同样
//
//       &nbs

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号