几种VC++数据库开发技术的相对比较

从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。本文主要介绍以下五种:

1.ODBC API;

2.MFC ODBC类;

3.MFC DAO类;(数据访问对象)

4.MFC的OLE/DB;

5.ActiveX数据对象(ADO)。

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中的繁杂处理就可以进行数据库操作。主要的MFC ODBC类如下。

CDatabase类:一个CDatabase对象表示一个到数据源的连接,通过它可以操作数据源。应用程序可使用多个CDatabase对象:构造一个对象并调用OpenEx()成员函数打开一个连接。接着构造CRecordSet对象以操作连接的数据源,并向CDatabase对象传递记录集构造程序指针。完成使用后用Close()成员函数销毁CDatabase对象。一般情况下并不需要直接使用CDatabase对象,因为CRecordSet对象可以实现大多数的功能。但是在进行事务处理时,CDatabase就起到关键作用。事务(Transaction)指的是将一系列对数据源的更新放在一起,同时提交或一个也不提交,为的是确保多用户对数据源同时操作时的数据正确性。

CRecordSet类:一个CRecordSet对象代表一个从数据源选择的一组记录的集合-记录集。记录集有两种形式:snapshot和dynaset。前者表示数据的静态视图,后者表示记录集与其他用户对数据库的更新保持同步。通过CRecordSet对象,用户可以对数据库中的记录进行各种操作。

CRecordView类:CRecordView对象是在空间中显示数据库记录的视图。这种视图是一种直接连到一个CRecordSet对象的格式视图,它从一个对话框模板资源创建,并将CRecordSet对象的字段显示在对话框模板的控件里。对象利用DDX和RFX机制,使格式上的控件和记录集的字段之间数据移动自动化,也就是说,用户甚至不要编写一行代码就可以实现简单的数据库记录查看程序。

CDBException类:由Cexception类派生,以三个继承的成员变量反映对数据库操作时的异常:

m_nRetCode:以ODBC返回代码(SQL_RETURN)的形式表明造成异常的原因。

m_strError:字符串,描述造成抛出异常的错误原因。

m_strStateNativeOrigin:字符串,用以描述以ODBC错误代码表示的异常错误。

MFC数据库类成员函数都能抛出CDBException类型的异常,所以在代码对数据库进行操作后监测异常是正确做法。

MFC ODBC类在实际开发中应用最广,因为它功能丰富,操作相对简便。

时间: 2024-12-21 20:11:08

几种VC++数据库开发技术的相对比较的相关文章

VC++数据库开发技术的比较

从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口.本文主要介绍以下五种: 1.ODBC API:  2.MFC ODBC类:  3.MFC DAO类:(数据访问对象)  4.MFC的OLE/DB:  5.ActiveX数据对象(ADO). 1.开放数据库连接(ODBC API):提供了一个通用的编程接口,允许程序与多种不同的数据库连接.它为Oracle,SQL Server,MS Excel等都提供了驱动程序,使得用户可以使

100_《Delphi5数据库开发技术》

<Delphi5数据库开发技术> Delphi 教程 系列书籍 (100) <Delphi5数据库开发技术> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: 下载 作者: 毛棱等编著 丛书名: 软件开发技术丛书 出版社:机械工业出版社 ISBN:7111078209 上架时间:2000-7-1 出版日期:2000 年3月 页码:354 版次:1-1 内容简介 Delphi是一种非常优秀的可视化程序开发语言,Delphi 5 基于Windows 95/98/

114_《Delphi开发技术大全》

<Delphi开发技术大全> Delphi 教程 系列书籍 (114) <Delphi开发技术大全> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 作者: 明日科技 梁水 李方超 赛奎春 丛书名: 软件工程师典藏 出版社:人民邮电出版社 ISBN:9787115157034 上架时间:2007-3-21 出版日期:2007 年3月 开本:16开 页码:857 版次:1-1 内容简介 本书是一本Delphi综合开发参考手

用VC.NET开发以SQL2000作为数据库平台的数据仓库的前端客户界面

问题描述 用VC.NET开发以SQL2000作为数据库平台的数据仓库的前端客户界面的工作中,用VC新建工程时应该选哪一种工程类型好呢?我的IDE是VisualStudio2003,多谢高人指点- 解决方案 解决方案二:你是不是引用了"App_Web_v6iiud1k这样的一个文件(别人的)!把这个文件copy进来编译.同时要确保文件确实可以运行解决方案三:我不太明白楼上高人的意思,能不能解释的再清楚点?这个文件是完成什么功能的?

【转】VC++/MFC(VC6)开发技术精品学习资料下载汇总 (2011.3.10更新)

from:http://club.topsage.com/thread-361504-1-1.html   Visual C++ (VC) / MFC 电子书下载: Visual C++ 2008 入门经典 (中文版) 下载 Windows核心编程 第5版 (Windows via C/C++, 5th Edition) 深入解析Windows操作系统 (第4版) 潘爱民译 深入解析Windows操作系统 (第5版·英文版) Windows程序设计 (第五版) 英文版 | Windows程序设计

VC基于ADO技术访问数据库的方法_C 语言

本文实例讲述了VC基于ADO技术访问数据库的方法.分享给大家供大家参考.具体如下: 一.在StdAfx.h文件中添加 复制代码 代码如下: #import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF") 导入ADO引擎. 二.数据库应用层操作 void CADOExample1Dlg::OnBtnQuery() {

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.3节手机自带数据库——SQLite

2.3 手机自带数据库--SQLiteAndroid 3D游戏开发技术宝典--OpenGL ES 2.0上一节介绍了如何使用Preferences存储简单数据,而复杂的数据就需要存储到文件或数据库中了. Android自带了一款轻量级的关系数据库--SQLite,其具有体积小,功能强大等诸多特点,成为嵌入式设备首选的数据库系统.本节将带领读者走进SQLite的世界,去学习如何应用SQLite数据库进行数据的增.删.改.查等基本操作. 2.3.1 初识SQLiteSQLite是一款满足ACID特性

Web开发技术发展史话

web  讨论Web开发技术的历史,当然要先说说Web的起源.众所周知,Web这个Internet上最热门的应用架构是由Tim Berners-Lee发明的.Web的前身是1980年Tim Berners-Lee负责的Enquire(Enquire Within Upon Everything的简称)项目.1990年11月,第一个Web服务器nxoc01.cern.ch开始运行,Tim Berners-Lee在自己编写的图形化Web浏览器"WorldWideWeb"上看到了最早的Web

漫谈Java数据库存取技术

数据|数据库 IT技术日新月异,新技术的出现令人目不暇接,似乎每一天都在产生着新名词.不过归根结底IT所要实现的价值不外乎数据收集,然后再以客户希望的形式展示给客户而已.因此数据存取技术也就成了一个永恒的话题.而在Java这个开放的世界里,数据库存取技术是五花八门,种类繁多.我们也来侃侃Java世界里主流的数据库存取技术. 首先列出英雄榜 1.    JDBC直接访问数据库2.    EJB  entity bean.3.    JDO技术.4.    第三方O/R工具,如目前大红大紫的Hibe