VC++下ODBC的编程

本文详细介绍了在VC++环境中使用ODBC进行数据库编程的方法,包括ODBC的运行机制、API编程和MFC库的使用。通过ODBC API,程序员可以编写C语言程序与各种数据库进行交互,而MFC的C++语言ODBC编程则提供了CDatabase、CRecordset和CRecordView类,简化了数据库操作。文章以实例展示了这两种编程方式,强调了ODBC带来的跨数据库系统的便利性。
摘要由CSDN通过智能技术生成

 VC++下ODBC的编程

摘要本文在介绍了ODBC(开放性数据库连接,Open  DataBase  Co
nnectivity)运行机制的基础上,着重讨论了VisualC++2.0下利用ODBC
API及利用MFC进行ODBC编程的两种方法.
    关键词ODBC,SQL,数据源,文档/视图结构,DBMS
    一、ODBC的发展背景
    在传统的数据库领域,数据库应用程序通常是指在特定的数据库
管理系统(DBMS)的支持下,用特定的内嵌式结构化查询语言(SQL)开发
的.这样的数据库应用程序存在如下的缺点:(1)它往往需要一个庞大
的数据库管理系统的支持,对用户的软、硬件要求高;(2)它通常只能
处理一种格式的数据库文件.
    与传统的数据库应用程序的实现方法相比,Microsoft的开放性数
据库连接(ODBC)标准则提供了一种新的途径:它建立了一组规范,并提
供了一组高层应用程序调用接口和一套基于动态链接库(DLL)的运行
支持环境.用这样一组接口规范开发的应用程序,使用标准的函数和结
构化查询语言(SQL)对数据库进行操作,不必关心"数据源"(DataSourc
e)来自何种数据库管理系统DBMS,所有的数据库的底层操作都是由相
应的ODBC驱动程序(ODBCDriver)完成.只要有了相应的ODBC驱动程序,
应用程序处理的对象-数据源就可以非常广泛,既可以是本机的某种数
据库格式的文件,如FoxPro的*.dbf文件,也可以是远程数据库文件,如
MicrosoftSQLServer等.
    二、ODBC的运行机制
    ODBC的体系构架包括五个部分:ODBC管理器(ODBCAdministrator)
、应用程序(Application)、ODBC驱动程序管理器(ODBCDriver  Mana
ger)、ODBC驱动程序(ODBCDriver)和数据源(Data  Source).图1表示
了ODBC各部分之间的关系.
    ODBC管理器在整个ODBC运行机制中起配置环境、登录信息的作用
,它被安装在Control  Pannel里(ODBCINST.CPL).通过该工具,可以用
来配置、增添和删除数据源,也可以用来删除、安装ODBC驱动程序.OD
BC管理器把数据源和ODBC驱动程序的信息记录在ODBC.INI、ODBCINST
.INI和ODBCISAM.INI中,或者登录在系统数据库中,ODBC的其他部件通
过读取这些信息,相互作用,应用程序就能够实现对已登录数据库的共
享.
    应用程序(Application)的主要任务是通过调用标准的ODBC函数,
提交SQL语句并返回结果,对结果进行处理.
    ODBC驱动程序管理器的作用是根据应用程序的要求,调用不同的O
DBC驱动程序.
    ODBC驱动程序的作用是实现ODBC函数调用,对指定的数据源执行S
QL语句,并把结果返回给应用程序.有时候,为了符合特定的数据库管
理系统的语法,ODBC驱动程序还会对应用程序的要求作适当修改.这里
,ODBC驱动程序的作用与运行在Windows下的打印机驱动程序的作用非
常相似.
    数据源,由用户要访问的数据及与之相关的操作系统、数据库管
理系统和用于访问数据库管理系统所需的网络平台组成.
    对应用程序而言,ODBC驱动程序管理器和ODBC驱动程序就像一个
实现ODBC函数调用的整体单元,应用程序感觉不到它们之间的分工合
作关系.整个ODBC的结构是基于一种独特的动态链接库DLL而存在的,
它使得系统完全模块化了.
    三、利用ODBC  API的C语言ODBC编程
    下面以一个典型ODBC数据库访问程序的伪代码为例,说明用ODBCA
PI的C语言进行ODBC编程的一般步骤.该程序从用户接受SQL查询语句,
然后获取结果,集中各行各列的数据.
    HENV  henv
    HDBChdbc
    HSTMThstmt
    int  nCols
    SQLALLocEnv(&henv)/*环境申请,获得一个环境句柄*/
    SQLAllocConnect(henv,&hdbc)/*连接申请,获得数据库连接句柄
*/
    SQLDriverConnect(hdbc,…)/*与具体的ODBC驱动程序和数据源
联系*/
    SQLAllocStmt(h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值