1 / 25
文档名称:

用VC 设计基于ODBC的数据库管理系统.doc

格式:doc   大小:210KB   页数:25页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用VC 设计基于ODBC的数据库管理系统.doc

上传人:小雄 2021/6/17 文件大小:210 KB

下载得到文件列表

用VC 设计基于ODBC的数据库管理系统.doc

文档介绍

文档介绍:用VC++设计基于ODBC的数据库管理系统
作者:刘涛
ODBC (Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA, Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问 的标准API (应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语 言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS, 不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro. Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处 理所有的数据库。呻C提供的ODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口,从而大 大方便了数据库应用程序的开发。程序员不必了解ODBC API和SQL的具体细节,利用ODBC类即可完成对 数据库的大部分操作。为了说明如何通过ODBC类操作数据库,本实例给出•个数据库的应用实例,它实现 了对数据库中的课程表的浏览、编辑、修改、添加等基本操作。需要注意的是,在编译运行该程序时,请 先注册代码中的数据源,并将该数据源命名为"Student Regritration"。程序编译运行后的界面效果如图 一所示:
图一、操作数据库的应用程序界面
一、实现方法
一个完整的ODBC由下列几个部件组成:(1)应用程序(Application) ;(2)0DBC管理器(Administrator), 该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程 序和管理数据源;(3)驱动程序管理器(Driver Manager),驱动程序管理器包含在ODBC32. DLL中,对用 户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件(4) ODBC API; (5) ODBC驱动程序, 是一些DLL,提供了 ODBC和数据库之间的接口; (6)数据源。数据源包含了数据库位置和数据库类型等 信息,实际上是一种数据连接的抽象。各部件之间的关系如图2所示:
图二、ODBC部件关系图
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源(或动态注册一个数据源),管 理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联 系。这样,只要应用程序将数据源名提供给
ODBC, ODBC就能建立起与相应数据库的连接。
在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序 管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将 结果通过驱动程序管理器返回给应用程序。
MFC的ODBC类主要包括:(1) CDatabase类,主要功能是建立与数据源的连接。(2) CRecordset类, 该类代表从数据源选择的一组记录(记录集),程序可以选择数据源中的某个表作为一个记录集,也可以 通过对表的查询得到记录集,还可以合并同一数据源中多个表的列到一个记录集中,通过该类可对记录集 中的记录进行滚动、修改、增加和删除等操作。(3) CRecordView类,提供了一个表单视图与某个记录集 直接相连,利用对话框数据交换机制(DDX)在记录集与表单视图的控件之间传输数据。该类支持对记录的浏 览和更新,在撤销时会自动关闭与之相联系的记录集。(4) CFieldExchange类:支持记录字段数据交换 (DFX),即记录集字段数据成员与相应的数据库的表的字段之间的数据交换。该类的功能与CDataExchange 类的对话框数据交换功能类似。(5) CDBException类,代表ODBC类产生的异常。
1、CDatabase 类
概括地讲,CDatabase针对某个数据库,它负责连接数据源;CRecordset针对数据源中的记录集,它 负责对记录的操作;CRecordView负责界面,而CFieldExchange负责CRecordset与数据源的数据交换。
要建立与数据源的连接,首先应构造一个CDatabase对象,然后再调用CDatabase的Open ()成员函 数。Open ()函数负责建立连接,其函数原型为:
virtual BOOL Open( LPCTSTR IpszDSN, BOOL bExclusive = FALSE, BOOL bRe