1MFC_ODBC访问数据库

合集下载

MFC提供的ODBC数据库类

MFC提供的ODBC数据库类

本文由yyqyea贡献 doc1。

MFC 提供的 ODBC 数据库类 Visual C++的 MFC 基类库定义了几个数据库类。

在利用 ODBC 编程时,经常要使用到 CDatabase(数据库类)、CRecordSet(记录集类)和 CRecordView(可视记录集类)。

 CDatabase 类对象提供了对数据源的连接,通过它可以对数据源进行操作。

 CRecordSet 类对象提供了从数据源中提取出的记录集。

CRecordSet 对象通常用于两种 形式:动态行集(dynasets)和快照集(snapshots)。

动态行集能与其他用户所做的更改保持同 步,快照集则是数据的一个静态视图。

每种形式在记录集被打开时都提供一组记录,所不同的 是,当在一个动态行集里滚动到一条记录时,由其他用户或应用程序中的其他记录集对该记 录所做的更改会相应地显示出来。

 CRecordView 类对象能以控件的形式显示数据库记录,这个视图是直接连到一 个 CRecordSet 对象的表视图。

 二、应用 ODBC 编程 应用 Visual C++的 AppWizard 可以自动生成一个 ODBC 应用程序框架,步骤是:打开 File 菜单的 New 选项,选取 Projects,填入工程名,选择 MFC AppWizard (exe),然后按 AppWizard 的提示进行操作。

 当 AppWizard 询问是否包含数据库支持时,如果想读写数据库,那么选定 Database view with file support;如果想访问数据库的信息而不想写回所做的改变,那么选定 Database view without file support。

 选好数据库支持之后,Database Source 按钮会被激活,选中它去调用 Data Options 对话 框。

在 Database Options 对话框中会显示出已向 ODBC 注册的数据库资源,选定所要操作的 数据库,如:Super_ES,单击 OK 后出现 Select Database Tables 对话框,其中列举了选中的数据 库包含的全部表;选择要操作的表后,单击 OK。

MFC关于ODBC数据库连接

MFC关于ODBC数据库连接

UpdateData(TRUE); if(m_pSet->CanUpdate()) m_pSet->Update(); } void CODBCView::OnUpdateUpdateRecord(CCmdUI* pCmdUI) //刷新 记录集 { pCmdUI->Enable(!m_pSet->IsEOFarDomain() //清除域 { m_pSet->SetFieldNull(NULL); UpdateData(FALSE); }
if(!UpdateData()) return; pSet->Update(); } long m_lNewID=m_pSet->GetMaxID()+1;//获取新的ID值 m_pSet->AddNew(); //添加一个新记录 m_pSet->m___ID=m_lNewID; //设置新的ID标识 m_pSet->Update(); //保存新的记录 m_pSet->Requery(); //刷新数据库 m_pSet->MoveLast(); //游标移到最后一条记录 UpdateData(FALSE); //更新表单 }
long CODBCSet::GetMaxID() { MoveLast(); //移到最后一条记录 return m___ID; //返回该ID值 } void CODBCView::OnAddRecord() {CRecordset * pSet=OnGetRecordset();//获取指向数据库的指针 if(pSet->CanUpdate()&&!pSet->IsDeleted()) //确认对数据库的任何修 改均已保存 { pSet->Edit();

简介MFC访问数据库的几种方式

简介MFC访问数据库的几种方式

简介MFC访问数据库的几种方式简介MFC访问数据库的几种方式2010-04-22 09:06从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。

本文主要介绍以下五种: 1.ODBC API;2.MFC ODBC类;3.MFC DAO 类;(数据访问对象)4.MFC的OLE/DB;5.ActiveX数据对象(ADO)。

6.RDO远程数据访问1.开放数据库连接(ODBC API):提供了一个通用的编程接口,允许程序与多种不同的数据库连接。

它为Oracle,SQL Server,MS Excel等都提供了驱动程序,使得用户可以使用SQL语句对数据库进行直接的底层功能操作。

在使用ODBC API时,用户须引入的头文件为"sql.h","sqlext.h","sqltypes.h"。

用ODBC API创建数据库应用程序遵循一定的基本步骤:第一步是分配ODBC环境,使一些内部结构初始化。

完成这一步,须分配一个SQLHENV类型的变量在ODBC环境中做句柄使用。

第二步是为将要使用的每一个数据源分配一个连接句柄,由函数SQLALLocHandle()完成。

第三步是使用SQLConnect()把连接句柄与数据库连接,可以先通过SQLSetConnectAttr()设置连接属性。

然后就可以进行SQL语句的操作,限于篇幅,相关的函数就不具体介绍了,读者可以参考相关书籍。

操作完成后,用户取回相应的结果,就可以取消与数据库的连接。

最后需要释放ODBC环境。

ODBC API的特点是功能强大丰富,提供了异步操作,事务处理等高级功能,但相应的编程复杂,工作量大。

2.MFC ODBC类:MFC1.5后的版本里引入封装了ODBC 功能的类。

通过这些类提供与ODBC的接口,使得用户可以不须处理ODBC API中的繁杂处理就可以进行数据库操作。

通过ODBC连接数据库

通过ODBC连接数据库

通过ODBC 连接数据库(C++)C++连接数据库的方法有很多种,在Visual C++和SQL server 的实际开发中,一般使用ODBC 或ADO 技术进行开发,相关技术和产品也最为成熟。

我们这里根据课程需要采用ODBC 的方法。

我使用的平台的是VS2010和SQL server 2008,优点是VS2010支持一些比较新的特性,编程方便了很多,缺点是左侧的“服务器资源管理器”不支持SQL server 2000,但是没有关系,在SQL server 2008上是可以连上的,大家如果和我的平台不一样的话在编程细节上可能有些问题要注意下。

有同学表示安装了SQL server 2008之后只能通过“windows 身份验证”登陆本地数据库,无法通过“SQL server 身份验证”登陆,这是由于安装的时候是通过“windows 身份验证”安装的,改一下配置即可:1. 使用“windows 身份验证”登陆数据库,点击“登录名”,右击sa ,选择属性,点击状态,确保设置如左侧图所示。

2. 右击本地服务器名选择属性,更改安全性中的服务器身份验证如下图所示3. 右击地服务器名选择重新启动(这一部很重要)4.如何还有问题的话查看目录“D:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Log”下的ERRORLOG文件,找到错误代码,google之打开SQL server 2008 连接一个我们测试用的数据库,使用的10.214.6.98上的数据库db27,用户名和密码都是user277,执行以下命令:use db27CREATE Table book(bno char(8),category char(10),title varchar(40)not null,press varchar(30)not null,byear int CHECK(byear> 0),author varchar(20)not null,price decimal(7,2)CHECK(price> 0),total int CHECK(total>= 0),stock int CHECK(stock>= 0),CONSTRAINT ck CHECK(stock<=total))INSERT INTO book VALUES('12345678','数据库','数据库系统原理教程','清华大学出版社',1998,'王珊',27.9,3,0)INSERT INTO book VALUES('12342378','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0) INSERT INTO book VALUES('12341278','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0) INSERT INTO book VALUES('14345678','数据库','数据库','清华大学出版社',1998,'王珊',27.9,3,0)上面SQL语句执行的结果是在db27数据库中创建了一个名为book的表,里面有9列,随后添加了4个测试数据,现在将该数据源添加到ODBC数据源管理器中,打开路径“控制面板\所有控制面板项\管理工具”下的数据源(ODBC),添加新的数据源,选择“SQL Server”名称设置为db27,服务器在10.214.6.98,使用user277用户登录,完成后点击测试数据源看能不能连上,显示测试成功后,在用户数据源中会看到刚刚添加的DSN:我们编写一个简单的图形化界面,打开VS2010,新建项目,选择“MFC应用程序”,建立一个名为“DataBaseODBC”的项目,弹出的向导中更改应用程序类型为“基于对话框”,大家在实际编程中可以需要选择,这里只是为了做个示例,其他保持默认。

MFC ODBC数据库访问技术

MFC ODBC数据库访问技术

4)用CDatabase::ExecuteSQL()执行SQL语句
对于返回结果集的一般查询,使用CRecordset很容 易。然而,可以不用CRecordset执行不返回结果集 的SQL语句,而是通过调用CDatabase类的 CDatabase::ExecuteSQL()成员函数执行。其函数 原型如下:
MFC ODBC数据库访问技术
在Visual C++中,MFC封装的ODBC数据库 类包括CDatabase(数据库类)、 CRecordSet(记录集类)和CrecordView (记录视图类),更为用户提供了切实可行 的解决方案。
1.1 MFC的ODBC过程
使用MFC ODBC类访问数据库,主要有以下几个步 骤: 1.建立数据库 建立数据库就是用户根据自己的需要设计数据库中 的表及各表之间的依赖关系。要想设计一个完整的 数据库,首先必须了解数据库的基本知识。
void ExecuteSQL(LPCTSTR lpszSQL);
Throw(CEBException);
参数lpszSQL是一个带SQL语句字符串的指针。
的使用
CRecordset类派生于CObject类。虽然CDatabase类允许对一 个数据库执行SQL语句,但实际上是CRecordset 类提供了应 用程序与数据交互的实际操作。CRecordset类用来封装数据 库的查询,包括记录的插入、修改、删除等操作。
记录集对象一般都可以进行如下的操作:在 记录间滚动、更新记录并设定锁定模式、以 记录信进行过滤、限制对数据源可选记录的 选择、对记录排序、当完成操作后调用 Close()函数销毁对象等。
3.CRecordView类的使用
CRecordView类对象直接与CRecordset(记录 集)类对象连接,为该记录集提供显示的视图。 它是数据库操作的界面,提供了以下几个操 作:移动到第一个记录、下一个记录、前一 个记录、最后一个记录,还可以更新数据库 中当前视图所显示记录。

实验六通过odbc方式访问数据库

实验六通过odbc方式访问数据库

实验六通过ODBC方式访问数据库一、实验条件与环境1.通用PC机2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4.PC机还须安装VB、VC、C++ Builder、Dehpi等面向对象的可视化程序设计软件5.最好有一台公用的SQL Server 2000 服务器二、实验目的1.通过上机实验了解可视化程序设计语言对数据库进行访问的常用方法2.通过上机实验掌握软件开发工具面向用户提供的ODBC对象接口的概念及其作用3.通过上机实验熟悉SQL语句在面向对象编程语言中的使用4.通过上机实验熟悉通过ODBC接口访问数据库并对数据库进行操作5.通过上机实验熟悉使用ODBC来进行数据库应用程序的设计6.通过上机实验熟悉数据源的概念及数据源的创建方法1.通过上机实验熟悉ADO DATA控件的主要属性、事件、方法及其使用三、实验要求:1.要求学生至少熟悉一门面向对象的可视化程序设计语言(如:VB、VC、C++ Builder、Dehpi等)2.实验前,要求学生充分作好ADO DA TA控件、ODBC数据接口及数据源等相关内容的预习工作3.本实验涉及的实验内容最好能在2课时内完成4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交四、通过ODBC方式访问数据库并进行各种数据操作的一个实例建立一个名为MyDB的数据库,然后在此数据库中建立一个名为S的数据表,有关数据表S的属性描述为:Sno,学号,数据类型为char(10);Sname,姓名,数据类型为char(8);Ssex,性别,数据类型为char(2);BirthDay,生日,数据类型为datetime(8)。

创建一个名为Students的数据源,然后利用可视化程序设计语言设计一个用户操作界面,通过ODBC数据接口和ADO DATA实现对数据库MyDB中数据表S的查询、插入、删除、修改等数据操作。

ODBC连接数据库总结

ODBC连接数据库总结ODBC,全称为Open Database Connectivity,是一种连接数据库的API(应用程序接口),可以使用通用的SQL查询语言来访问各种不同的数据库。

ODBC提供了一个标准化的接口,使得应用程序可以通过统一的方式与不同类型的数据库进行通信。

ODBC的优势在于它提供了一个简单、灵活、可扩展的方法来连接多种数据库系统。

这使得开发人员可以使用相同的代码来连接和操作不同类型的数据库,而不必关心底层数据库的细节。

ODBC还提供了高性能的数据访问和查询功能,可以实现快速的数据检索和处理。

ODBC的使用过程包括几个关键步骤:1.安装和配置ODBC驱动程序:ODBC驱动程序是用来连接特定类型的数据库的组件。

在使用ODBC之前,需要安装和配置适当的ODBC驱动程序。

这通常涉及到安装驱动程序软件,并进行一些配置设置,如指定数据库的位置和连接参数等。

2.创建ODBC数据源:ODBC数据源是一个逻辑名称,用来标识要连接的数据库。

可以通过ODBC管理器来创建和配置ODBC数据源。

配置数据源时,需要提供一些信息,如数据库类型、主机名、端口号、用户名、密码等。

创建数据源后,可以通过该数据源来连接数据库。

3.编写应用程序代码:在编写应用程序代码时,需要使用ODBCAPI来连接数据库和执行SQL查询。

ODBCAPI提供了一组函数和数据结构,用于连接数据库、执行SQL查询、获得结果集等操作。

开发人员需要熟悉ODBCAPI,并使用合适的函数和方法来完成所需的操作。

4.运行和测试应用程序:完成应用程序的编写后,可以进行运行和测试。

在运行应用程序时,需要确保已正确安装和配置了ODBC驱动程序,并且已创建了相应的ODBC数据源。

在测试过程中,可以执行各种SQL查询和操作,来验证数据库连接和数据访问的功能。

ODBC的使用有一些注意事项和最佳实践:1.使用合适的ODBC驱动程序:不同类型的数据库需要使用特定的ODBC驱动程序来连接。

MFC_ODBC_数据库访问技术

MFC_ODBC_数据库访问技术16.2 MFC ODBC 数据库访问技术16.2.1概述ODBC是⼀种使⽤SQL的程序设计接⼝。

使⽤ODBC让程序的编写避免了与数据库相连的复杂性。

Studio为⼤多数标准的数据库格式提供了32位的ODBC驱动器,Paradox、ForPro、Excel、Oracle等。

如果⽤户需要⽤其他的数据库格式,⽤户需要相应的ODBC驱动以及DBMS。

MFC的ODBC类对较复杂的ODBC API进⾏了封装,提供了简化的调⽤接⼝,从⽽⼤⼤⽅便了数据库应⽤程序的开发。

程序员不必了解ODBC API和SQL的具体细节,利⽤ODBC类就可以完成对数据库的⼤部分操作。

MFC 的ODBC类主要包括如下5类:● CDatabase类:主要功能是建⽴与数据源地联接。

● CRecordset类:代表从数据源选择的⼀组记录(记录集)● CRecordView类:提供了⼀个表单视图与某个记录集直接相连,利⽤对话框数据交换机制(DDX)在记录集与表单视图的空间之间传输数据。

● CFieldExchange类:⽀持记录字段数据交换(DFX)应的的数据库的表的字段之间的数据交换。

● CDBException类:代表ODBC类产⽣的异常。

16.2.2使⽤MFC ODBC编程建⽴应⽤程序编程模型相对于使⽤ODBC API,使⽤MFC ODBC访问数据库简单得多,其步骤如下:●⾸先创建数据库并在系统中设置好;●使⽤CDatabase打开数据源的连接,如果利⽤AppWizard⽣成⼀个ODBC数据库应⽤程序,则会⾃动完成操作。

●使⽤ClassWizard想到加⼊由CRecordset类派⽣的⽤户记录集,完成对数据库表的绑定。

●创建记录积累对象,如果利⽤AppWizard⽣成⼀个ODBC数据库应⽤程序,则会⾃动在⽂档类中创建。

●使⽤记录集对象对数据库进⾏遍历、增加、删除、和修改等操作。

●使⽤CDatabase类的ExecuteSQL函数直接执⾏SQL命令。

VC++数据库编程之MFC+ODBC

VC++数据库编程之MFC+ODBC在vc中,使用ODBC连接是数据库有两种方法,第一种就是使用ODBC API,第二种就是使用MFC ODBC,在这里我只谈一下MFCODBC。

为了使数据库开发变得更方便,Microsoft对ODBC API进行的封装,使得我们开发数据库时可以直接使用MFC ODBC类:CDatabase:建立与数据源的连接 CRecordset:获取记录集CRecordView:提供一个表单视图与某个记录集直接相连,利用对话框数据交换机制(DDX)在记录集与表单视图的空间之间传输数据CFieldExchange:支持记录字段数据交换(DFX),即记录集字段数据成员与相应的数据库的表的字段之间的数据交换CDBException:ODBC的异常类一、在实际开发中,使用MFC ODBC类访问数据库步骤如下: a . 使用CDatabase类方法打开数据源:定义CDatabase对象m_db;调用其OpenEx方法打开数据源,OpenEx原型如下:virtual BOOL OpenEx( LPCTSTR lpszConnectString, DWORD dwOptions=0 );参数一为连接字串:如\为数据源名称,注意到如果为lpszConnectString传递NULL,则将出现数据源对话框,提示用户选择一个数据源。

参数二为打开方式,缺省值0表示以共享方式打开数据库,带有写访问,不装入ODBC 游标库DLL,并且只有在没有足够信息形成连接时显示ODBC连接对话框。

可选参数如下:CDatabase::openExclusive:此类库版本不支持。

为共享数据源总是打开的。

如果选定此选项,断言失败。

CDatabase::openReadOnly:以只读方式打开CDatabase::UseCursorLib 装入ODBC游标库DLL。

游标掩盖了基础ODBC驱动程序的一些功能,有效地阻止使用动态集(如果驱动程序支持它们)。

MFC_ODBC访问数据库

主要内容撒:的撒旦将ODBC API封装在类CDatabase、CRecordSet、CFieldExchange、CRecordView和CDBException中使用MFC ODBC开发数据库应用程序的一般步骤使用AppWizard访问数据库使用类CDatabase连接数据库使用类CRecordSet打开记录集、获取数据使用类CRecordSet的函数MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()和IsEOF()进行记录集的遍历使用类CRecordSet的函数AddNew和Update增加记录使用类CRecordSet 的函数Edit和Update修改记录使用类CRecordSet的函数Delete删除记录使用类CDatabase的函数ExecuteSQL直接执行SQL命令使用类CDatabase 的函数BeginTrans、CommitTrans和Rollback处理事务目录MFC OBDC技术 (3)概述 (3)CDatabase类操作数据源 (3)CFieldExchange类处理数据交换 (6)CRecordView类显示记录 (6)CDBException类处理异常 (7)使用MFC ODBC编程建立应用程序 (7)MFC ODBC编程模型概述 (7)通过AppWizard建立数据库应用程序 (8)使用CDatabase类方法打开数据源 (8)使用CRecordste类打开记录集 (10)绑定记录集 (12)参数化记录集和查询 (13)遍历记录集合 (15)书签定位和绝对定位 (16)获取记录集的数据 (18)添加记录 (19)删除记录 (21)修改记录 (21)直接执行SQL语句(增加、删除表等) (22)事务处理 (23)使用多记录集 (25)MFC OBDC技术概述MFC的ODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主要内容撒:的撒旦MFC ODBC将ODBC API封装在类CDatabase、CRecordSet、CFieldExchange、CRecordView和CDBException中使用MFC ODBC开发数据库应用程序的一般步骤使用AppWizard访问数据库使用类CDatabase连接数据库使用类CRecordSet打开记录集、获取数据使用类CRecordSet的函数MoveFirst()、MoveLast()、MoveNext()、MovePrev()、IsBOF()和IsEOF()进行记录集的遍历使用类CRecordSet的函数AddNew和Update增加记录使用类CRecordSet的函数Edit和Update修改记录使用类CRecordSet的函数Delete删除记录使用类CDatabase的函数ExecuteSQL直接执行SQL命令使用类CDatabase的函数BeginTrans、CommitTrans和Rollback处理事务目录MFC OBDC技术 (3)概述 (3)CDatabase类操作数据源 (3)CFieldExchange类处理数据交换 (6)CRecordView类显示记录 (6)CDBException类处理异常 (7)使用MFC ODBC编程建立应用程序 (7)MFC ODBC编程模型概述 (7)通过AppWizard建立数据库应用程序 (8)使用CDatabase类方法打开数据源 (8)使用CRecordste类打开记录集 (10)绑定记录集 (12)参数化记录集和查询 (13)遍历记录集合 (15)书签定位和绝对定位 (16)获取记录集的数据 (18)添加记录 (19)删除记录 (21)修改记录 (21)直接执行SQL语句(增加、删除表等) (22)事务处理 (23)使用多记录集 (25)MFC OBDC技术概述MFC的ODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口。

MFC的ODBC类主要包括以下5个类:✧CDatabase类:主要功能是建立与数据源的连接✧CRecordset类:代表从数据源选择的一组记录(记录集)✧CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交替机制(DDX)在记录集与表单视图的控件之间传输数据✧CFieldExchange类:支持记录字段数据交换(RFX),即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。

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

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

该类的成员函数如下表:该类的属性属性如下表:应用程序可使用多个CDatabase类型的对象。

构造一个对象并调用Open()成员函数打开一个连接。

接着构造CRecordset类型的对象以操作连接的数据源,构造时向记录集对象传递CDatabase类型的指针。

完成使用后,用Close()成员函数销毁CDatabase类型的对象。

一般情况下并不需要直接使用CDatabase类型的对象,因为CRecordset类型的对象可以实现大多数的功能、但是在进行事务处理时,CDatabase就起到关键作用。

事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个都不提交,为的是确保多用户对数据源同时操作时的数据正确性。

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

该类常用的数据成员如下表:该类的构造方法如下表:记录集有两种形式:snapshot(表示数据的静态视图)和dynaset(表示记录集与其他用户对数据库的更新保持同步)。

CFieldExchange类处理数据交换CFieldExchange类支持数据库类所使用的记录集字段交换(RFX)程式。

如果使用自定义的数据类型写数据交换程式,会使用这个类。

否则不会直接使用此类。

RFX在记录集对象的字段数据成员与数据源中当前记录的相应字段之间交换数据。

CRecordView类显示记录CRecordView对象用于在控件中显示数据库记录的视图。

这种视图是一种直接连到一个CRecordView对象的格式视图,它从一个对话框模板创建资源,并将CRecordView对象的字段显示在对话框模版的控件里。

对象利用DDX和RFX机制,使窗体上的空间和记录集的字段值之间数据移动自动化,也就是说,用户不需要编写一行代码就可以完成简单的数据库记录查看程序。

CDBException类处理异常由CException类派生,以3个继承的成员变量反映对数据库操作时的异常:✧m_nRetCode:以ODBC返回代码(SQL_RETURN)的形式表明造成一场的原因✧m_strError:字符串,描述造成抛出异常的错误原因✧m_strStateNativeOrigin:字符串,用以描述以ODBC错误代码表示的异常错误使用MFC ODBC编程建立应用程序MFC ODBC编程模型概述使用MFC ODBC访问数据库比直接使用ODBC API简单得多,编程步骤如下:✧使用CDatabase打开数据源的连接,如果利用AppWizard生成一个ODBC数据库应用程序,则会自动完成操作。

✧使用ClassWizard向导加入由CRecordset类派生的用户记录集类,完成对数据库的绑定。

✧创建记录集类对象,如果利用AppWizard生成一个ODBC数据库应用程序,则会自动在文档类中创建。

✧使用记录及对象对数据库进行遍历、增加、删除、修改等操作。

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

✧使用CDatabase类的BeginTrans、CommitTrans和Rollback函数进行事务处理使用CDatabase类的Close函数关闭数据源连接。

通过AppWizard建立数据库应用程序“New”-->”MFC AppWizard(EXE)”-->”OK”->”Single document(单文档)”-->NEXT -->”选择需要对什么样的数据库类型支持做出选择:None(不要任何数据支持,今后再添加很麻烦)、Header files only(该工程需要数据库支持,但不清楚细节时选择。

工程会添加所要求的头文件和链接库,但必须自己在创建数据库类)、Database view without file support(表示包含数据库头文件和链接库,并创建记录集和记录视图,应用程序虽有文档支持,但不支持串行化)Database view with file support(表示包含数据库头文件、记录集和视图外,程序还支持串行化)-->”Data Options 对话框:在”Datasource”中选择ODBC单选按钮,选择一个已经注册号的数据源(实例程序Sample中使用的数据源叫students)。

在”Recordset type”(记录类型)中有三个选项:Snapshot(快照:它是当前表的一个静态视图。

表打开之后,表中的所有数据马上被载入到应用程序中。

其他用户或程序对表的修改只有在下次打开表时才会体现出来,看不到其他用户对表的”即时”修改,因此它是静态的。

Snapshot适用于用户查询信息(例如生成报表等)而不适用于数据编辑。

)、Dynaset(动态集:这个选项创建指向所请球的每个记录的实际指针。

只有屏幕需要显示记录时,才从数据库中提取数据。

这种方式的好处是动态、即时的浏览到当前的记录。

而其他用户也会即时看到你对记录所做出的修改。

该选项适合于创建用户要发费很多时间来编辑数据的应用程序,并且,如果正在编写大型数据库应用程序,他也是最佳选择)、Table(表:表方法(仅使用DAO访问数据库时可用)把所做查询的内容放进一个临时表。

这样做不但减小了从服务器下载的信息量,还意味着程序员有了更大的灵活性,因为可以直接操作临时表字段和记录。

但缺点是你看不到别人的修改。

使用DAO且用户会执行同等数量的数据查询和数据编辑时,它是最佳选择。

)” -->”Selete Database Table(选择数据库表)” -->”Finish”.通过AppWizard创建了一个MFC ODBC数据库工程后,该工程与一般的应用程序工程有所不同:多了一个CRecordset的派生类,对应前面选择的数据库表;视图类的基类是CRecordView,负责显示数据;工具栏上多了遍历记录集的4个按钮。

使用CDatabase类方法打开数据源通过CDatabase类的Open函数来打开数据源,该函数原型如下:virtual BOOL Open(LPCTSTR lpszDSN, //一个数据源名,此数据源名是通过ODBC管理器注册的。

如果DSN被设定在lpszConnect里,那么lpszDSN不应在被重新设定,lpszDSN应设为NULL。

如果没有设定lpszConnect,而且又把lpszDSN设定为NULL,那么将出现一个对话框,让用户选择数据源。

BOOL bExclusive = FALSE, //默认为FALSE,表示以共享方式打开数据源。

当前版本的类库不支持独占方式,如果设定为TRUE,将失败BOOL bReadOnly = FALSE, //如果希望连接以只读方式打开,不想对数据源进行更新,那么设定为TRUE,所有依靠此连接打开的记录集全部继承此属性。

默认值为FALSELPCTSTR lpszConnect = _T(“ODBC;”),//连接串。

连接串可能包含数据源名、数据源中用户的ID、密码和其他信息。

整个连接串必须以”ODBC;”开头。

”ODBC;”表示连接是一个ODBC数据源。

BOOL bUseCursorLib = TRUE //如果希望加载ODBC光标动态连接库,设定为TRUE);下面的例子表示如何打开数据源://在文档类中加入//CDatabase类对象CDatabase m_pdatabase;//连接对象到一个数据源(没有密码),ODBC连接对话框将是中隐藏m_pdatabase.Open(_T(“students”), FALSE, FALSE, _T(“ODBC; UID = Admin”));//或者也可以显示ODBC对话框,请用户提供连接信息m_pdatabase.Open(NULL);像程序Sample一样,通过向导生成数据库工程,不用添加代码就能实现对数据源的打开。

相关文档
最新文档