`
音频数据
  • 浏览: 35557 次
文章分类
社区版块
存档分类
最新评论

VC++数据库开发的五种技术

阅读更多

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类在实际开发中应用最广,因为它功能丰富,操作相对简便。

3.MFC DAO(数据访问对象)编程

DAO用于和微软的Access数据库接口。在数据库应用程序如果只需与Access数据库接口时,使用DAO编程较方便。其主要类如下。

 

CDaoWorkspace:CDaoWorkspace对象可以让一个用户管理从登陆到离开期间,指定的密码保护的数据库会话全过程。大多数情况下不要多个工作区也不要创建明确的工作区对象。因为在打开数据库和记录集对象时,它们可以使用DAO缺省工作区。

 

CDaoDatabase:代表一个连接,类似上述CDatabase类。

 

CDaoRecordSet:用来选择记录集并操作,类似上述CRecordSet类。

 

CDaoRecordView:类似上述CRecordView类。

 

CDaoException:类似上述CDBException类。

 

CDaoTableDef:表示基本表或附加表的定义。每个DAO数据库对象包括一个称为TableDef的收集,包含所有存储的DAO表定义对象。CDaoTableDef对象可以用来控制表定义。

 

CDaoQueryDef:CDaoQueryDef对象表示了一个查询定义(querydef)。

 

CDaoFieldExchange:支持数据库类使用的DAO字段交换(DFX)例程。也可处理事务,类似MFC ODBC类。

 

MFC DAO仅用来支持Access数据库,应用范围相对固定。

 

4.OLE DB

OLE DB在数据提供程序和用户之间提供了灵活的组件对象模型(COM)接口,这种灵活性有时会使得操作复杂化。OLE DB框架定义了应用的三个基本类。

 

数据提供程序Data Provider:拥有自己的数据并以表格形式显示数据的应用程序。提供OLE DB的行集COM接口,期显示范围可以从单一数据表格的简单提供者知道更复杂的分布式数据库系统。

 

使用者Consumers:使用OLE DB接口对存储在数据提供程序中的数据进行控制的应用程序。用户应用程序归为使用类。

 

服务提供程序Service Provider:是数据提供程序和使用者的组合。服务提供程序没有自己的数据,但使用

 

OLE DB使用者接口来访问存储在数据提供程序中的数据。然后,服务提供程序通过打开数据提供程序接口使得数据对使用者有效。服务提供程序常用于向应用程序提供高层次服务,比如高级分布式查询。

 

OLE DB编程时,用户使用组件对象开发应用程序。这些组件有:

 

枚举器:用于列出可用的数据源;

 

数据源:代表单独的数据和服务提供程序,用于创建对话;

 

对话:用于创建事务和命令;

 

事务:用于将多个操作归并为单一事务处理;

 

命令:用于向数据源发送文本命令(SQL),返回行集;

 

错误:用于获得错误信息。

 

5.ActiveX数据对象(ADO)

是微软提供的面向对象的接口,与OLE DB类似,但接口更简单,具有更广泛的特征数组和更高程度的灵活性。ADO基于COM,提供编程语言可利用的对象,除了面向VC++,还提供面向其他各种开发工具的应用,如VB,VJ等。ADO在服务器应用方面非常有用,特别是对于动态服务器页面ASP(Active Server Page)。

 

ADO对象结构类似于OLE DB,但并不依靠对象层次。大多数情况下,用户只需要创建并只使用需要处理的对象。下面的对象类组成了ADO接口。

 

Connection:用于表示与数据库的连接,以及处理一些命令和事务。

 

Command:用于处理传送给数据源的命令。

 

Recordset:用于处理数据的表格集,包括获取和修改数据。

 

Field:用于表示记录集中的列信息,包括列值和其他信息。

 

Parameter:用于对传送给数据源的命令之间来回传送数据。

 

Property:用与操作在ADO中使用的其他对象的详细属性。

 

Error:用于获得可能发生的错误的详细信息。

 

在VC++使用ADO需要进行COM操作,详细方法在此就不赘述了。

分享到:
评论

相关推荐

    第4章 VC++数据库开发基础.doc

    第4章 VC++数据库开发基础.doc

    vc++数据库开发大全

    windows环境下C++数据库开发所用到的所有技术,建议有一定vc++编程基础的人学习。

    VC++数据库开发实例源码

    这是一组用VC++开发的数据库实例的原代码,希望能够提供一点帮助!

    VC++数据库系统开发完全手册——仓库管理系统

    《VC++数据库系统开发完全手册》之仓库管理系统源程序及数据库。

    vc++数据库开发资源包.rar

    vc++数据库开发资源包 都是过时的技术。 我自己学习用的。 ------------------------- ADO270.CHI ADO270.CHM ADOSQL.CHI ADOSQL.CHM COM.CHM DBLIBC.CHI DBLIBC.CHM DBLIBC.chw ODBCSQL.CHM ODECORE.CHI ...

    VC++数据库编程(doc格式,强烈推荐)

    第4章 VC++数据库开发基础 26 4.1 VC++ 6.0工程创建向导 26 4.2 VC++ 6.0数据库新建工具 27 4.3 VC++ 6.0的数据库工程 29 4.4 小 结 31 第2篇 实例篇 32 第5章 ODBC API编程 33 5.1 了解ODBC API 34 5.2 ODBC API...

    VC++数据库编程实例与技术

    利用vc++开发数据库的简单示例,可以轻松掌握数据库连接

    VC++数据库编程技术与实例

    VC++数据库编程技术与实例的随书光盘拷贝.

    Visual C++实践与提高数据库篇PDF,本书主要介绍如何使用VC++进行数据库开发的各种接口和技术.

    Visual C++实践与提高数据库篇PDF,本书主要介绍如何使用VC++进行数据库开发的各种接口和技术.

    VC++2010ADO数据库访问

    VC++2010MFC数据库开发,利用ADO数据库访问技术访问Access数据库,其中涉及了查询,编辑,插入,更新,新增,删除等等操作,代码整洁,易于阅读,容易理解,程序极易扩展,有利于你的进一步开发,为你的下一步编程...

    VC++开发的数据库程序ADO篇PDF

    VC++ ADO技术连接数据库基础学习,希望能给大家带来一点帮助

    VC++数据库编程三部教学

    VC++数据库编程三部教学 本书以实用为目的,结合具体的数据库应用,选择了7个最有代表性的实例,分别介绍ODBC API、MFC的ODBC类、DAO、OLE DB以及ADO的客户数据库访问技术和应用开发过程。本书还通过ADO数据库组件...

    VC++与ADO开发数据库

    很好的实现了VC++运用ADO技术连接数据库。。连接过程清楚,简单易懂,易记。适合菜鸟们学习。VC++学习不要急,要慢慢学。特别像数据库编程和网络编程,首先要打好基础,懂得原理,以及实现的过程。推荐先学习好它们...

    Visual C++6_0数据库高级编程(完整版).part1.rar

    本书内容共3篇和3个附录组成,由10章组成,第1篇(基础篇)的主要内容有数据库原理与访问、COM与数据库访问、数据库开发过程、VC++数据库开发基础;第2篇(实例篇)通过6个编程实例详细介绍了ODBC,DAO,OLEDB以及ADO的...

    VC++数据库编程三部教学文档+源代码

    第4章 VC++数据库开发基础. 27 4.1 VC++ 6.0工程创建向导... 27 4.2 VC++ 6.0数据库新建工具... 27 4.3 VC++ 6.0的数据库工程... 30 4.4 小结... 33 第2篇 实例篇 第5章 ODBC API编程. 35 5.1 了解ODBC API ...

    (书+++源代码)

    本书内容共分3篇和3个附录,由10章组成,第1篇(基础篇)的主要内容有数据库原理与访问、COM与数据库访问、数据库开发过程、VC++数据库开发基础;第2篇(实例篇)通过6个编程实例详细介绍了ODBC,DAO,OLE DB以及ADO的...

    VC++程序开发范例宝典(源码)

    全书包括窗体与界面设计,控件应用,图形技术,多媒体技术,文件系统,操作系统与Windows相关程序,注册表,数据库技术,SQL查询相关技术,打印与报表技术,硬件相关开发技术, 网络开发技术,Web编程,加密、安全与...

    VC++数据库技术

    很好的初学者使用代码,基于vc++开发平台,Access数据库技术。

    VC++数据库编程(pdf)

    本书以实用为目的,结合具体的数据库应用,选择了7个最有代表性的实例,分别介绍ODBC API、MFC的ODBC类、DAO、OLE DB以及ADO的客户数据库访问技术和应用开发过程。 本书还通过ADO数据库组件开发实例和OLE DB服务器...

    VisualC++实践与提高数据库篇PDF,本书主要介绍如何使用VC++进行数据库开发

    VisualC++实践与提高数据库篇PDF,本书主要介绍如何使用VC++进行数据库开发 的各种接口和技术。非常好的教程。

Global site tag (gtag.js) - Google Analytics