VC++ 60环境下的ODBC数据库接口与编程.pdf
河北科技大学学报第21卷第1期JOURNAL OF HEBE IUN I V ERSITY OFVol.21No.1总第52期2000年SC IENCE AND TECHNOLOGYSum 512000文章编号:100821542(2000)0120008204VC+5.0环境下的ODBC数据库接口与编程宋海生(河北科技大学机械电子工程学院,河北石家庄050054)摘要简要介绍了ODBC的结构和VC+5.0中有关数据库的基础类。给出了在W indow s98VC+5.0环境下进行ODBC编程的具体方法。关键词:数据库;ODBC;M FC类库中图分类号:TB 314文献标识码:AODBC(Open DataBase Connectivity)是M icrosoftW indow s Open Services A rchitecture的数据库部分,可以通过M FC或A P I使应用程序独立于源数据库管理系统(DBM S)。它建立了一组规范,提供了一组高层应用程序调用接口和一套基于动态链接库(DLL)的运行支持环境。用这样一组接口规范开发的应用程序,使用标准的函数和结构化查询语言(SQL)对数据库进行操作。允许在应用程序中通过ODBC统一接口访问不同类型的数据库(如Foxbase,Foxpro,A ccess,O racle等)中的数据。所有的数据库的底层操作是由相应的ODBC驱动程序(ODBC D river)完成。它成功地解决了不同数据库之间的相互访问的困难,这样应用程序处理的对象数据库源文件就可以非常广泛,既可以是本机的某种数据库格式文件,也可以是远程数据库文件。1ODBC的结构ODBC的结构包括5个部分:应用程序(Application),ODBC接口(ODBC Interface),ODBC驱动程序管理器(ODBC D riverM anager),ODBC驱动程序(ODBC D river)和数据源。它们之间的关系如图1所示。另外,ODBC管理器安装在Control Pannel中,用来配置、增加和删除数据源,也可以安装或删除ODBC驱动程序。图1ODBC的结构数据源2数据源3数据源1驱动器1驱动器3驱动器2ODBC驱动程序管理器ODBC接口应用程序应用程序调用ODBC函数后完成以下任务:请求与数据库链接;发送SQL请求;定义存储区和数据格式;请求结果;终止与数据库的链接等。ODBC驱动程序管理器的作用是根据应用程序的要求,调用不同的ODBC驱动程序。驱动器的作用是实现ODBC函数的调用,对指定的数据源执行SQL语句,并将结果返回给应用程序。收稿日期:1999205228;责任编辑:卞铜身基金项目:国家863资助项目(8632511296062005)作者简介:宋海生,男1960年生,副教授,同济大学博士生。数据源包括与应用程序链接的数据库以及相关的操作系统、数据库管理系统和网络平台。2VC+中关于数据库的基础类在V isual C+5.0的M FC(M icrosoft Foundation Class微软基础类库)中,关于数据库的操作有3个最重要的类。2.1CDatabase类CDatabase对象表明应用程序和被访问数据源之间的关系。当该对象与数据源联接后,可构造记录集。当数据源的联接使用完后,要关闭CDatabase对象,将其撤消。2.2CRecordset类在应用程序创建CRecordset对象时,应指定与之相关联的数据源、表和该表的列。应用程序自动编写CRecordset类的GetDefaultSQL成员函数,返回该表的名称。2.3CRecordview类该类对象直接与CRecordset对象相关联。采用动态数据交换方式将CRecordset当前记录中字段的值送到格式控制中,并将更新的数据送回CRecordset中。3种类之间的作用关系如图2所示。实际上,CRecordset类一方面与CDatabase类的对象进行数据交换,另一方面又与CRecordV iew类进行数据交换,是CDatabase类和CRecordV iew类之间的桥梁。RFXSQLDriverDDE图2数据库各种类之间相互作用图数据库CDatabase类CRecordset类CRecordView类3创建ODBC数据库应用程序在V isual C+下,需要以下几个步骤:1)在W indow s98(或95)环境下,安装32位的ODBC D riverM anager动态链接库和32位的ODBC驱动程序。2)在AppW izard中,建立基于单文档的项目(在国家863?C I M S主题资助项目“拟实制造体系结构的研究”中的工况数据采集与任务查询系统,建立了一个项目文件“任务查询 1DSW”),在“Data Source”选项中,选择基于ODBC的数据源(如access),后选择记录类型为“snapshot”型。在数据库表单中,选择欲联接的表。该步骤创建了应用程序与数据库联接的相关类、文件及资源。3)建立应用程序界面。可以通过AppW izard编辑资源文件,形成需要的编辑框(用于显示数据库中记录的值)。4)将记录集的字段与编辑框关联起来。点击“V iew”菜单,进入Class W izard对话框,在此把选中的编辑框的I D号与记录集中的指定记录进行映射,AppW izard自动生成类指针mpSet。在VC程序中通过对这些变量进行读写操作即可实现对数据库中的表进行实际操作。完成上述操作后,形成“任务查询set.h”文件,对变量进行如下声明:class CM ySet:public CRecordsetpublic:?A FXF IELD(CM ySet;CRecordset)9第1期宋海生VC+5.0环境下的ODBC数据库接口与编程long mnumber;?任务编号CString mpartid;?零件名称short mproceno;?工序编号?A FXF IELD在“任务查询set.cpp”文件中的DoFieldExchange(CFieldExchange3pFX)函数将选中表的列和记录集字段数据成员联接起来。程序代码如下:void CM ySet:DoFieldExchange(CFieldExchange3pFX)?A FXF IELDMA P(CM ySet)pFX-SetFieldType(CFieldExchange:outputColumn);DFXLong(pFX,T(number),mnumber);DFXText(pFX,T(partid),mpartid);DFXShort(pFX,T(proceno),mproceno);?A FXF IELDMA P在“任务查询V iew.cpp”文件中,程序代码如下:void CM yV iew:DoDataExchange(CDataExchange3pDX)CRecordV iew:DoDataExchange(pDX);?A FXDA TAMA P(CM yV iew)DDXFieldText(pDX,I DCED IT1,mpSet-mnumber,mpSet);DDXFieldText(pDX.I DCED IT2,mpSet-mproceno,mpSet);DDXFieldText(pDX,I DCED IT3,mpSet-mpartid,mpSet);?A FXDA TAMA P5)向应用程序添加代码,即进行编程,以便实现应用程序中所需的复杂的数据库操作要求,如添加记录、删除记录、对数据进行排序或筛选等操作。增加记录增加记录使用A ddN ew()函数,要求数据库必须是以允许增加的方式打开。mpSet-A ddN ew();?在表的末尾增加新记录mpSet-mnumber=120;mpSet-mpartid=“箱体”;mpSet-Update();删除记录删除记录使用Delete()函数。mpSet-Delete();if(!mpSet-IsEOF()01河 北 科 技 大 学 学 报2000年mpSet-M oveN ext();elsempSet-M oveL ast();修改记录修改记录使用Edit()函数。mpSet-Edit();?修改当前记录mpSet-mpartid=“传动轴”;mpSet-Update();6)编译连接及运行。4结束语ODBC已成为目前应用程序与数据库进行联系的可选标准,满足对异种数据库操作的要求。基于ODBC采用V isual C+5.0作为开发语言,使应用程序具有良好的可移植性和数据独立性,有利于程序功能的扩充。利用ODBC技术使得程序员从具体的DBM S中解脱出来,从而极大地减少了软件开发的工作量,具有较大的应用前景。参考文献1张宏 1V isual C+5.0与M FC简明参考手册M 1 北京:电子工业出版社 1199812康博创作室译 1V isual C+5.0开发使用手册M 1 北京:机械工业出版社,19981ODBC Database Interface and Programin VC+5.0 EnvironmentSON G Haisheng(College of Electronic andM echanical Engineering,HebeiU niversity of Science and Technology,Hebei Shijiazhuang 050054,China)Abstract:ODBC structure and foundation classes about database in VC+5.0 are introduced briefly.Theconcrete methods of ODBC program in w indow s98 and VC+5.0 environment are given.Key words:database;ODBC;M FC class library11第1期宋海生VC+5.0环境下的ODBC数据库接口与编程