《mfc_odbc访问数据库》由会员分享,可在线阅读,更多相关《mfc_odbc访问数据库(26页珍藏版)》请在金锄头文库上搜索。
1、主要内容: MFC ODBC 将 ODBC API 封装在类CDatabase、CRecordSet 、CFieldExchange、CRecordView 和CDBException 中 使用 MFC ODBC 开发数据库应用程序的一般步骤 使用 AppWizard 访问数据库 使用类 CDatabase 连接数据库 使用类 CRecordSet 打开记录集、获取数据 使用类 CRecordSet 的函数 MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()和 IsEOF()进行记录集的遍历 使用类 CRecordSet 的函数 AddNe
2、w 和 Update 增加记录 使用类 CRecordSet 的函数 Edit 和 Update 修改记录 使用类 CRecordSet 的函数 Delete 删除记录 使用类 CDatabase 的函数 ExecuteSQL 直接执行 SQL 命令 使用类 CDatabase 的函数 BeginTrans、CommitTrans 和Rollback 处理事务目录MFC OBDC 技术 .3概述 .3CDatabase 类操作数据源 .3CFieldExchange 类处理数据交换 .6CRecordView 类显示记录 .6CDBException 类处理异常 .7使用 MFC ODBC 编
3、程建立应用程序 .7MFC ODBC 编程模型概述 .7通过 AppWizard 建立数据库应用程序 .8使用 CDatabase 类方法打开数据源 .8使用 CRecordste 类打开记录集 .10绑定记录集 .12参数化记录集和查询 .13遍历记录集合 .15书签定位和绝对定位 .16获取记录集的数据 .18添加记录 .19删除记录 .21修改记录 .21直接执行 SQL 语句(增加、删除表等) .22事务处理 .23使用多记录集 .25MFC OBDC 技术概述MFC 的 ODBC 类对较复杂的 ODBC API 进行了封装,提供了简化的调用接口。MFC 的 ODBC 类主要包括以下
4、5 个类: CDatabase 类:主要功能是建立与数据源的连接 CRecordset 类:代表从数据源选择的一组记录(记录集) CRecordView 类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交替机制(DDX)在记录集与表单视图的控件之间传输数据 CFieldExchange 类:支持 记录字段数据交换(RFX) ,即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。 CDBException 类:代表 ODBC 类产生的异常。CDatabase 类操作数据源CDatabase 类型的对象表示一个到数据源的连接,通过它可以操作数据源。该类的成员函数如下表:函数 说明
5、CDatabase 构造一个对象Close 关闭数据源连接Open 通过一个 ODBC 驱动程序创建到数据源的连接OpenEx 通过一个 ODBC 驱动程序创建到数据源的连接BeginTrans 开始事务BindParameters 允许在调用 CDatabase:ExecuteSQL 前绑定参数Cancel 取消异步操作或第二条线程中的过程CommitTrans 执行事务ExecuteSQL 执行 SQL 语句,不返回记录Rollback 回滚事务,数据源返回先前的状态该类的属性属性如下表:属性 说明CanTransact 如果数据源支持事务,返回非零CanUpdate 如果 CDataba
6、se 可以更新,返回非零GetBookmarkPersistence 获得书签对记录集对象的持久性GetConnect 返回 ODBC 连接串GetCursorCommitBehavior 获得提交事务对记录集对象的影响GetCursorRollbackBehavior获得回滚事务对记录集对象的影响GetDatabaseName 返回当前使用的数据库名IsOpen 如果当前 CDatabase 对象连接到数据源,返回非零SetLoginTimeout 设置数据源连接的超时数(秒为单位)SetQueryTimeout 设置查询操作的超时数(秒为单位)应用程序可使用多个 CDatabase 类型的
7、对象。构造一个对象并调用 Open()成员函数打开一个连接。接着构造 CRecordset 类型的对象以操作连接的数据源,构造时向记录集对象传递 CDatabase 类型的指针。完成使用后,用 Close()成员函数销毁 CDatabase 类型的对象。一般情况下并不需要直接使用 CDatabase 类型的对象,因为 CRecordset 类型的对象可以实现大多数的功能、但是在进行事务处理时,CDatabase 就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个都不提交,为的是确保多用户对数据源同时操作时的数据正确性。CRecordset 类操作
8、记录集一个 CRecordset 类型的对象代表从数据源选择的一组记录的集合 记录集,通过该类的方法实现对数据库中记录的各种操作。该类常用的数据成员如下表:成员 说明m_hstmt 包含记录集的 ODBC 陈述句柄,类型为 HSTMTm_nFields 包含记录集中字段数据成员的数量,类型为 UNITm_nParams 包含记录集中参数数据成员的数量,类型为 UNITm_pDatabase 包含一个 CDatabase 对象指针,通过它访问数据源m_strFilter 包含 CString 对象,定义 SQL 中 WHERE 子句m_strSort 包含 CString 对象,定义 SQL 中 ORDER BY 子句该类的构造方法如下表:构造方法 说明Close 关闭记录集和与之相关的 HSTMTCRecordset 构造一个 CRecordset 对象Open 通过获得表或执行记录集所代表的查询来打开记录集CRecordset 类记录集属性如下表:属性 说明CanAppend 如果新记录可以通过 Addnew 添加到记录集,返回非零CanBookmark 如果记录集支持书签,返回非零CanRestart 如果 Requery 可