使用ADO类封装

上传人:桔**** 文档编号:564394995 上传时间:2023-01-26 格式:DOCX 页数:41 大小:46.43KB
返回 下载 相关 举报
使用ADO类封装_第1页
第1页 / 共41页
使用ADO类封装_第2页
第2页 / 共41页
使用ADO类封装_第3页
第3页 / 共41页
使用ADO类封装_第4页
第4页 / 共41页
使用ADO类封装_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《使用ADO类封装》由会员分享,可在线阅读,更多相关《使用ADO类封装(41页珍藏版)》请在金锄头文库上搜索。

1、.使用ADO类封装一、ADO类封装概述3二、CADODatebase类32.1 Open()32.2 Execute()32.3 BeginTransaction()、mitTransaction() 、RollbackTransaction()32.4 GetLastXXX()系列函数3三、CADORecordset类33.1执行返回结果集的SQL查询语句33.1.1 Open()33.1.2 Execute()33.2 遍历及查找结果集33.2.1 遍历结果集33.2.2 查找结果集33.3 结果集分页处理33.4 获取结果集信息33.5 获取结果集记录数据33.6 结果集记录操作:删除、

2、更新、添加33.6.1 删除结果集中的记录33.6.3 向结果集中添加记录33.7 其他33.7.1 关闭结果集33.7.2 复制结果集33.7.3 取消更新33.7.4 获取当前记录在结果集中的绝对位置33.7.5 移动当前位置至绝对位置33.7.6 判断当前位置记录是否为最后一条记录33.7.7 判断当前位置是否含有记录33.7.8 判断当前记录当前字段是否为空33.7.9 判断当前记录当前字段是否为空值33.7.10 判断结果集是否打开33.7.11 过滤结果集33.7.12 设置结果集排序方式33.7.13 向记录字段添加大文本及二进制文件33.7.14 重记录字段中获取大文本及二进制

3、数据3四、CADOParameter类34.1 构造CADOParameter类对象34.2 设置参数值34.3 获取参数值34.4参数属性的设置及获取。 4.4.1 获取参数属性31)获取参数名称32)获取参数类型34.4.2 设置参数属性3五、CADOmand类35.1 存储过程的构造35.2 为存储过程引入执行参数35.3 执行存储过程35.4 获取及设置存储过程属性35.4.1 获取存储过程名称35.4.2 获取存储过程执行影响的记录行数35.4.3 设置存储过程名称35.4.4 设置存储过程超时35.5 存储过程执行实例3一、ADO类封装概述这里的ADO类封装是指由Carlos An

4、tollini封装的数据库应用程序访问接口ADO(以2.20版本为准,源码自己到网上找吧!搜索“ADO类”很容易就找到)。该类封装的目的为使程序员能更容易地使用ADO接口访问数据库。该类封装对ADO的三个重要接口(智能指针)_ ConnectionPtr、_RecordsetPtr、_mandPtr做了比较完善的封装,对于类分别为:CADODatebase、CADORecordset、CADOmand。ADO类封装中除了上述的3个类外,还有一个比较重要的类:CCADOParameter类实现了对ADO接口_ParameterPtr等封装,_ParameterPtr接口主要与_mandPtr一起

5、使用,它可以为SQL语句中引入一些标准SQL语法并不支持的数据类型及为存储过程方便地引入执行参数,这样的问题在数据存储过程中经常遇到。因此也成就了_mandPtr接口执行SQL语句的一个重要优势:用_mandPtr接口执行SQL语句是可以通过_ParameterPtr引入标准SQL语法并不支持的数据类型。而且特别_mandPtr接口是用于执行参数化的命令。其他类,如:CADOException:派生自CException用于ADO类的异常管理,但是作者并没有在2.20版本中实现这个类。ADO类封装的异常处理仍然是常规的返回值+GetLastError ()的处理方式。CJetEngine:该类

6、仅有唯一一个静态成员函数CpactDatabase(),它用于对数据库的数据压缩操作。但在2.20版本该方法并不可用。CADOFieldInfo:请注意这并不是一个类,而是一个结构体。用于返回字段属性信息。下面就CADODatebase、CADORecordset、CADOmand类做详细分析。二、CADODatebase类该类是对ADO接口_ ConnectionPtr的封装。CADODatebase主要用于:1) 连接数据库;2) 执行不返回结果集的SQL语句;3) 执行事务性操作4) 对_ ConnectionPtr接口抛出错误进行处理,并用GetLastXXX()系列函数返回错误消息。

7、下面介绍一些重要的CADODatebase类方法。2.1 Open()该函数用于连接数据库。ADO类封装了连接数据库之前的常规操作,如:初始化库(AfxOleInit()),引入ADO库定义文件等。所以连接数据库变得很简单,只需调用CADODatebase类的Open()方法即可。Open()方法原型如下:BOOL Open(LPCTSTR lpstrConnection = _T(), LPCTSTR lpstrUserID = _T(), LPCTSTR lpstrPassword = _T();参数:lpstrConnection:连接字符串;lpstrUserID:连接数据库德用户名;

8、lpstrPassword:连接数据库的密码;三个参数默认值全为空,调用Open()方法伪代码如下:CADODatabase* pAdoDb = new CADODatabase();CString strConnection = _T();strConnection = _T(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:VCProjectsADOTestdbTest.mdb);pAdoDb-SetConnectionString(strConnection);/设置连接字符串pAdoDb-SetConnectionMode(adModeRea

9、dWrite);/设置数据库访问模式为读写pAdoDb-SetConnectionTimeout(20);/设置连接数据库超时时间if(pAdoDb-Open()/使用默认参数调用Open方法连接数据库 DoSomething();pAdoDb-Close();/关闭数据库连接delete pAdoDb;2.2 Execute()该函数用于执行不返回结果集的SQL语句,如DELETE、UPDATA、INSERT等。特别注意:Execute()不能返回结果集,所有不能用Execute()执行返回结果的的SELECT等语句。该函数原型如下:BOOL Execute(LPCTSTR lpstrExe

10、c);参数:lpstrExec:不返回结果集的SQL语句;调用Execute ()方法伪代码如下:CADODatabase* pAdoDb = new CADODatabase();CString strConnection = _T();strConnection = _T(Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=YesData Source=Access Sql Server;catalog=sampledb);if(pAdoDb-Open(strConnection)pAdoDb-Execute(Dele

11、te From tblClients Where Cheker = 3);2.3 BeginTransaction()、mitTransaction()、RollbackTransaction()上述三个函数用于执行数据库事务操作,分别为开始事务、提交事务、回滚事务。所谓数据库事务是指当个逻辑工作单元内的所有数据操作集合,事务必须满足:一个事务内的数据库操作必须全部成功,才会更新事务内涉及到的数据。BeginTransaction()用于开始一个事务操作;mitTransaction()事务内所有操作均已成功后提交事务,以更新数据;RollbackTransaction()事务内任何一个操作失

12、败,必须回滚事务。使数据更新到事务开始之前的状态。2.4 GetLastXXX()系列函数CADODatebase类封装了_ ConnectionPtr接口异常抛出处理,取而代之的是简洁的返回值+GetLastXXX ()的异常处理方式。GetLastXXX()系列函数有以下几个方法:CStringGetLastErrorString()获得错误字符串;DWORDGetLastError()获得错误代码CString GetErrorDescription()获得错误描述其中错误字符串中有最全面的错误信息。调用GetLastXXX()系列函数伪代码如下:CADODatabase* pAdoDb

13、 = new CADODatabase();CString strConnection = _T();strConnection = _T(Provider=MSDASQL;PersistSecurityInfo=False;Trusted_Connection=YesData Source=Access Sql Server;catalog=sampledb);if(pAdoDb-Open(strConnection)pAdoDb-Execute(Delete From tblClients Where Cheker = 3);else CString strError = pAdoDb-G

14、etLastErrorString(); TRACE(strError);三、CADORecordset类该类是对ADO接口_RecordsetPtr的封装。主要用于:1) 执行返回结果集的SQL查询语句;2) 遍历结及查找果集;3) 结果集翻页处理;4) 获取结果集信息,如记录数,字段数,字段属性等5) 获取结果集记录数据6) 结果集记录操作:删除、添加、更新等(不执行SQL语句)7) 对_ RecordsetPtr接口抛出错误进行处理,并用GetLastXXX()系列函数返回错误消息。8) 其他下面就上述5项分类来介绍CADORecordset类的重要成员函数:3.1执行返回结果集的SQL

15、查询语句CADORecordset类有两种方法来执行返回结果集的SQL语句:Open()和Execute()。3.1.1 Open()该函数执行SQL语句并获得结果集,用于打开一个结果集或表及执行存储过程。在介绍Open()方法之前先来看看CADORecordset类的构造函数:CADODatabase();ADORecordset(CADODatabase* pAdoDatabase);CADORecordset类的构造函数有两个重载。带参重载构造函数需要在CADORecordset类构造时即指定数据库连接对象指针,即CADODatebase *。推荐这种构造方式。Open()方法也有两个重载,如下:BOOL Open(_ConnectionPtr mpdb, LPCTSTR lpstrExec = _T(), int nOption = CADORecordset:openUnknown);BOOL Open(L

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号