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

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操作,详细方法在此就不赘述了。

分享到:
评论

相关推荐

    vc++数据库开发大全

    在《VC++数据库开发大全》中,读者将深入学习如何使用这些技术来创建、查询和管理数据库。内容可能涵盖以下几个方面: 1. C++基础知识:回顾C++编程基础,如类、对象、指针等,为后续的数据库编程打下坚实基础。 2....

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

    【VC++数据库开发基础】 在开发数据库应用时,Visual C++(VC++)6.0提供了强大的工具和向导,使得开发过程更为便捷。本章主要介绍了如何利用VC++ 6.0进行数据库开发,包括工程创建和数据库新建工具。 **4.1 VC++ ...

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

    总的来说,《VC++数据库系统开发完全手册——图书管理系统》的学习资源涵盖了数据库设计、VC++编程、MFC应用、数据库访问以及可能涉及的网络编程和多线程技术。通过这个项目,开发者可以深入理解数据库系统的开发...

    VC++数据库通用模块及典型系统开发实例导航光盘

    总的来说,这个资源为VC++数据库开发提供了一站式的学习平台,无论你是初学者还是有经验的开发者,都能从中获取有价值的知识和实践经验。通过深入研究和实践光盘中的内容,你将能更加自信地运用VC++构建高效、稳定的...

    VC++数据库开发 数据库开发

    ### VC++数据库开发知识点详解 #### 一、VC++开发数据库应用程序的优势 1. **简化的开发过程**: - **MFC与Wizard工具**:Visual C++ 6.0 提供了一系列的向导工具(如 AppWizard 和 ClassWizard),这些工具能够...

    VC++数据库高级编程源码.rar

    "VC++数据库高级编程源码.rar"这个资源可能包含了一系列用于学习和实践VC++数据库编程的示例代码和项目。这些源码可能是基于MFC(Microsoft Foundation Classes)或者ATL(Active Template Library)库,这两种库都...

    VC++数据库编程(PDF格式)

    这份“VC++数据库开发”资料可能详细讲解了以上各个知识点,并提供了实例和最佳实践。通过学习,开发者不仅可以理解如何在VC++ 6.0环境下进行数据库编程,还能掌握最新的开发技巧和趋势,如使用C++11/14/17等新标准...

    VC++数据库系统开发完全手册——资产设备管理

    在《VC++数据库系统开发完全手册——资产设备管理》中,我们主要探讨的是如何利用Microsoft Visual C++(简称VC++)这一强大的编程工具,结合数据库技术来构建一个完整的资产设备管理系统。这个系统能够帮助企业或...

    VC++ 数据库开发大全及其源代码

    《VC++ 数据库开发大全及其源代码》是针对使用Visual C++进行数据库应用程序开发的一份综合资源,包含详细的教程和实际的源代码示例。这个资料包主要关注如何利用VC++的强大功能与数据库进行交互,涵盖了数据库编程...

    vc++数据库开发论文

    这个“vc++数据库开发论文”很可能包含了一篇或多篇关于如何在VC6.0环境下构建数据库系统的文章或研究,旨在帮助开发者理解和实践相关技术。以下是对该主题的一些详细知识说明: 1. **Visual C++ 6.0**:这是微软...

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

    本资源“VC++数据库开发实例源码”正是针对使用VC++进行数据库应用程序开发的学习者和开发者,提供了宝贵的实践材料。 数据库开发通常涉及到数据存储、查询、更新和管理,以及用户界面的设计。在VC++中,主要通过...

    VC++数据库编程大全.rar

    通过学习和实践《VC++数据库编程大全》中的内容,开发者将能够掌握数据库应用开发的核心技术,创建出高效、可靠的数据库解决方案。无论你是初学者还是经验丰富的开发者,这都是一份宝贵的资源,它可以帮助你在VC++的...

    VC++数据库开发实例-酒店管理系统

    《VC++数据库开发实例——构建酒店管理系统》 在信息技术飞速发展的今天,数据库技术与编程语言的结合在软件开发中占据了重要地位。本实例聚焦于使用VC++进行数据库开发,以酒店管理系统为具体应用场景,旨在深入浅...

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

    虽然标签提到的是"VC++数据库开发指南",但这里也要提及,对于较新的.NET框架,开发者可能使用ADO.NET进行数据库访问,而对于早期版本的VC++,DAO也是常用的数据库访问方式。 8. 数据绑定: 在某些实例中,可能会...

    vc++ 数据库工程应用

    在信息技术领域,VC++(Visual C++)是一种由微软公司开发的集成开发环境,广泛用于创建Windows平台的应用程序。它不仅支持C++语言,还集成了MFC(Microsoft Foundation Classes)库,使得开发者能够方便地构建图形...

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

    《VC++数据库系统开发完全手册——仓库管理系统》是一本深入探讨使用VC++进行数据库系统开发的专业书籍,尤其针对...通过学习,开发者不仅可以掌握VC++数据库开发的基本技能,还能构建出满足实际需求的仓库管理系统。

    VC++数据库编程(源代码)

    在这个"VC++数据库编程(源代码)"的教程中,我们将探讨如何利用Visual C++进行数据库交互,特别是通过ADO(ActiveX Data Objects)技术。ADO是微软提供的一种高效、简单的数据库访问接口,适用于多种数据库系统,如...

    VC++ 数据库开发 学生信息管理系统

    **VC++ 数据库开发 学生信息管理系统** 在IT领域,数据库开发是核心技能之一,尤其是在企业级应用中。本文将深入探讨如何使用Microsoft Visual C++(简称VC++)进行数据库开发,特别是构建一个学生信息管理系统。这...

    VC++数据库编程技术

    《VC++数据库编程技术》这本书全面讲解了使用Visual C++进行数据库编程的相关知识,涵盖了从基础概念到高级应用的诸多方面。以下是对该书主要内容的详细解析: 首先,书中介绍了数据库的基本概念,包括关系型数据库...

    VC++数据库系统开发实例导航

    《VC++数据库系统开发实例导航》是一本深入探讨如何利用VC++进行数据库系统开发的实践指南。本书通过9个实际的管理系统案例,涵盖了多种企业运营中的关键领域,旨在帮助开发者掌握利用VC++与数据库交互的技术,提升...

Global site tag (gtag.js) - Google Analytics