zoukankan      html  css  js  c++  java
  • VC数据库编程概述

    一、 VC 提供的数据库访问技术

    ODBC API 、 MFC ODBC 、 DAO 、 OLE DB 、 ADO

    访问速度:传统的 ODBC 速度较慢。 OLE DB 和 ADO 都是基于 COM 技术,使用该技术可以直接访问数据库的驱动程序,速度大大提高。

    可扩展性:通过 OLE DB 和 ActiveX 技术,可以利用 VC 提供的各种组件,控件和第三方提供的组建。从而实现应用程序组件化。

    访问不同数据源:传统 ODBC 只能访问关系数据库。 VC 中提供 OLD DB 技术可以解决该问题。

    二、 几种技术概述

    1、  ODBC API

    提供一个通用接口,为 ORACLE 和 SQLSERVER 都提供了驱动程序。用户可以 SQL 语句对数据库进行直接的底层功能操作。使用时应包含以下头文件。 ”SQL.H”,”SQLEXT.H”,”SQLTYPES.H”.

    使用步骤如下:

    第一步:分配 ODBC 环境,初始化一些内部结构。完成该步,需要分配一个 SQLHENV 类型的变量在 ODBC 环境中做句柄使用。

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

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

    第四步:进行 SQL 语句操作。操作完就可以断开与数据库的连接。

    第五步:释放 ODBC 环境。

    特点:功能强大,提供异步操作,事务处理等高级功能。目前所有关系数据库都提供了 ODBC 的驱动程序,使用很广泛。

    缺点:很难访问对象数据库和非关系数据库。

    2、  MFC ODBC 类

    为简化使用 ODBC API , VC 提供了 MFC ODBC 类,封装了 ODBC API 。

    主要 MFC ODBC 类如下:

    CDatabase 类:一个 CDatabase 对象表示一个到数据源的连接,通过它可以操作数据源。一般不需要直接使用 CDatabase 对象,因为 CDecordSet 对象可以实现大多数功能,但在进行事务处理时, CDatabase 就起到关键作用。

    CRecordSet 类:一个 CRecordSet 对象代表一个从数据源选择的一组记录的集合 ----- 记录集。记录集有两种形式: snapshot 和 dynaset 。前者表示是静态视图。后者表示记录集与其它用户对数据库的更新保持同步。

    CRecordView 类:是在空间中显示数据库记录的视图。这种视图是直接连到一个 CRecordSet 对象的格式视图。他从一个对话框模版资源创建。并将 CRecordSet 对象的字段显示在对话框模版的控件里。对象利用 DDX 和 RFX 机制。使格式上的控件和记录集的字段之间数据移动自动化。

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

     M_nRetCode:  ODBC 返回码。

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

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

    3、  MFC DAO

    MFC DAO 是微软提供的用于访问 Microsoft Jet 数据库文件( * 。 Mdb )的工具。当只需访问 Access 数据库时用该技术很方便。

    4、  OLE DB

    与 ODBC 技术类似, OLE DB 属于数据库访问技术中的底层接口。

    直接使用 OLEDB 需要大量代码, VC 中提供了 ATL 模版,

    OLEDB 框架定义了应用的 3 个基本类。

    数据提供程序 Data Provider : 拥有自己的数据并以表格形式显示数据的应用程序。

    使用者 Consumers :试用 OLEDB 接口对存储在数据提供程序中对数据进行控制的应用程序。

    服务提供程序 ServiceProvider :是数据提供程序和使用者的组合。

    使用 OLE DB 编程时,用户使用组件对象开发程序,这些组件包括:

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

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

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

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

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

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

    5、 ADO

    ADO 技术是基于 OLE DB 的访问接口。继承了 OLEDB 的优点,并对 OLEDB 的接口作了封装,定义了 ADO 对象,使开发简化。 ADO 属于数据库访问的高层接口。

    ADO 在服务器应用方面非常有效,特别是动态服务器页面( ASP )的支持。

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

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

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

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

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

    Parameter :    在传送给数据源的命令之间传递数据。

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

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

  • 相关阅读:
    猎户、双子、英仙
    第二卦,还叫我保持现状?
    昨晚的第三卦,就快万劫不复了
    明天要出去办事,看看情况
    luogu P3939 数颜色 |vector
    luogu P2701 [USACO5.3]巨大的牛棚Big Barn |动态规划
    luogu P2345 奶牛集会 |排序+树状数组
    luogu P4943 密室 |最短路
    luogu P4343 [SHOI2015]自动刷题机 |二分答案
    luogu P3110 [USACO14DEC]驮运Piggy Back |最短路
  • 原文地址:https://www.cnblogs.com/jzxx/p/2674688.html
Copyright © 2011-2022 走看看