现在的位置: 首页 > 综合 > 正文

MFC ODBC 用法

2013年10月21日 ⁄ 综合 ⁄ 共 1966字 ⁄ 字号 评论关闭

主要内容:

MFC ODBCODBC API封装在类CDatabaseCRecordSetCFieldExchangeCRecordViewCDBException

使用MFC ODBC开发数据库应用程序的一般步骤

使用AppWizard访问数据库

使用类CDatabase连接数据库

使用类CRecordSet打开记录集、获取数据

使用类CRecordSet的函数MoveFirst()MoveLast()MoveNext()MovePrev()IsBOF()IsEOF()进行记录集的遍历

使用类CRecordSet的函数AddNewUpdate增加记录

使用类CRecordSet的函数EditUpdate修改记录

使用类CRecordSet的函数Delete删除记录

使用类CDatabase的函数ExecuteSQL直接执行SQL命令

使用类CDatabase的函数BeginTransCommitTransRollback处理事务



MFC OBDC技术

概述

MFCODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口。MFCODBC类主要包括以下5个类:

CDatabase类:主要功能是建立与数据源的连接

CRecordset类:代表从数据源选择的一组记录(记录集)

CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交替机制(DDX在记录集与表单视图的控件之间传输数据

CFieldExchange类:支持记录字段数据交换(RFX,即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。

CDBException类:代表ODBC类产生的异常。

 

CDatabase类操作数据源

CDatabase类型的对象表示一个到数据源的连接,通过它可以操作数据源。

该类的成员函数如下表:

函数

说明

CDatabase

构造一个对象

Close

关闭数据源连接

Open

通过一个ODBC驱动程序创建到数据源的连接

OpenEx

通过一个ODBC驱动程序创建到数据源的连接

BeginTrans

开始事务

BindParameters

允许在调用CDatabase::ExecuteSQL前绑定参数

Cancel

取消异步操作或第二条线程中的过程

CommitTrans

执行事务

ExecuteSQL

执行SQL语句,不返回记录

Rollback

回滚事务,数据源返回先前的状态

 

该类的属性属性如下表:

属性

说明

CanTransact

如果数据源支持事务,返回非零

CanUpdate

如果CDatabase可以更新,返回非零

GetBookmarkPersistence

获得书签对记录集对象的持久性

GetConnect

返回ODBC连接串

GetCursorCommitBehavior

获得提交事务对记录集对象的影响

GetCursorRollbackBehavior

获得回滚事务对记录集对象的影响

GetDatabaseName

返回当前使用的数据库名

IsOpen

如果当前CDatabase对象连接到数据源,返回非零

SetLoginTimeout

设置数据源连接的超时数(秒为单位)

SetQueryTimeout

设置查询操作的超时数(秒为单位)

应用程序可使用多个CDatabase类型的对象。构造一个对象并调用Open()成员函数打开一个连接。接着构造CRecordset类型的对象以操作连接的数据源,构造时向记录集对象传递CDatabase类型的指针。完成使用后,用Close()成员函数销毁CDatabase类型的对象。

一般情况下并不需要直接使用CDatabase类型的对象,因为CRecordset类型的对象可以实现大多数的功能、但是在进行事务处理时,CDatabase就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个都不提交,为的是确保多用户对数据源同时操作时的数据正确性。

CRecordset类操作记录集

一个CRecordset类型的对象代表从数据源选择的一组记录的集合——记录集,通过该类的方法实现对数据库中记录的各种操作。

该类常用的数据成员如下表:

成员

说明

m_hstmt

包含记录集的ODBC陈述句柄,类型为HSTMT

m_nFields

包含记录集中字段数据成员的数量,类型为UNIT

m_nParams

包含记录集中参数数据成员的数量,类型为UNIT

m_pDatabase

包含一个CDatabase对象指针,通过它访问数据源

m_strFilter

包含CString对象,定义SQLWHERE子句

m_strSort

包含CString对象,定义SQLORDER BY子句

 

该类的构造方法如下表:

构造方法

说明

Close

抱歉!评论已关闭.