- 2
- 0
- 约9.25千字
- 约 16页
- 2016-09-21 发布于重庆
- 举报
c语言之odbc编程指南
?摘要本文在介绍了ODBC(开放性数据库连接,Open? DataBase? Connectivity)运行机制的基础上,着重讨论了VisualC++2.0下利用ODBCAPI及利用MFC进行ODBC编程的两种方法.??? 关键词ODBC,SQL,数据源,文档/视图结构,DBMS??? 一、ODBC的发展背景??? 在传统的数据库领域,数据库应用程序通常是指在特定的数据库管理系统(DBMS)的支持下,用特定的内嵌式结构化查询语言(SQL)开发的.这样的数据库应用程序存在如下的缺点:(1)它往往需要一个庞大的数据库管理系统的支持,对用户的软、硬件要求高;(2)它通常只能处理一种格式的数据库文件.??? 与传统的数据库应用程序的实现方法相比,Microsoft的开放性数据库连接(ODBC)标准则提供了一种新的途径:它建立了一组规范,并提供了一组高层应用程序调用接口和一套基于动态链接库(DLL)的运行支持环境.用这样一组接口规范开发的应用程序,使用标准的函数和结构化查询语言(SQL)对数据库进行操作,不必关心数据源(DataSource)来自何种数据库管理系统DBMS,所有的数据库的底层操作都是由相应的ODBC驱动程序(ODBCDriver)完成.只要有了相应的ODBC驱动程序,应用程序处理的对象-数据源就可以非常广泛,既可以是本机的某种数据库格式的文件,如FoxPro的*.dbf文件,也可以是远程数据库文件,如MicrosoftSQLServer等.??? 二、ODBC的运行机制??? ODBC的体系构架包括五个部分:ODBC管理器(ODBCAdministrator)、应用程序(Application)、ODBC驱动程序管理器(ODBCDriver? Manager)、ODBC驱动程序(ODBCDriver)和数据源(Data? Source).图1表示了ODBC各部分之间的关系.??? ODBC管理器在整个ODBC运行机制中起配置环境、登录信息的作用,它被安装在Control? Pannel里(ODBCINST.CPL).通过该工具,可以用来配置、增添和删除数据源,也可以用来删除、安装ODBC驱动程序.ODBC管理器把数据源和ODBC驱动程序的信息记录在ODBC.INI、ODBCINST.INI和ODBCISAM.INI中,或者登录在系统数据库中,ODBC的其他部件通过读取这些信息,相互作用,应用程序就能够实现对已登录数据库的共享.??? 应用程序(Application)的主要任务是通过调用标准的ODBC函数,提交SQL语句并返回结果,对结果进行处理.??? ODBC驱动程序管理器的作用是根据应用程序的要求,调用不同的ODBC驱动程序.??? ODBC驱动程序的作用是实现ODBC函数调用,对指定的数据源执行SQL语句,并把结果返回给应用程序.有时候,为了符合特定的数据库管理系统的语法,ODBC驱动程序还会对应用程序的要求作适当修改.这里,ODBC驱动程序的作用与运行在Windows下的打印机驱动程序的作用非常相似.??? 数据源,由用户要访问的数据及与之相关的操作系统、数据库管理系统和用于访问数据库管理系统所需的网络平台组成.??? 对应用程序而言,ODBC驱动程序管理器和ODBC驱动程序就像一个实现ODBC函数调用的整体单元,应用程序感觉不到它们之间的分工合作关系.整个ODBC的结构是基于一种独特的动态链接库DLL而存在的,它使得系统完全模块化了.??? 三、利用ODBC? API的C语言ODBC编程??? 下面以一个典型ODBC数据库访问程序的伪代码为例,说明用ODBCAPI的C语言进行ODBC编程的一般步骤.该程序从用户接受SQL查询语句,然后获取结果,集中各行各列的数据.??? HENV? henv??? HDBChdbc??? HSTMThstmt??? int? nCols??? SQLALLocEnv(henv)/*环境申请,获得一个环境句柄*/??? SQLAllocConnect(henv,hdbc)/*连接申请,获得数据库连接句柄*/??? SQLDriverConnect(hdbc,…)/*与具体的ODBC驱动程序和数据源联系*/??? SQLAllocStmt(hdbc,hstmt)/*语句申请,获得一个语句句柄*/??? Input? SQLStatement/*从用户接受SQL语句*/??? SQLExecDirect(hstmt,SQLStatement,…)/*执行SQL语句*/??? SQLNumResultCols(hstmt,nCols)/*获取结果集中列数*/
您可能关注的文档
- 高位池养虾技术浅谈.doc
- C类驾驶员预防谈心教育.doc
- 高压电动机轴承故障分析.doc
- 高尔夫击球技术教案2013.doc
- C级电磁屏蔽机柜.doc
- C练习三工资练习.doc
- 高层建筑金属幕墙铝合金门窗的防雷措施.doc
- C绘制曲线图和柱状图.docx
- C绘制渐变矩形代码.doc
- C组《寻宝记》讨论结果.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
原创力文档

文档评论(0)