VC_中数据库访问技术研究

AccessODBCAccess!"#$%!"#ODBC!"#ODBC!"#$!"#$ODBC32.DLLSQLServerODBCSQLServer!"#$%!"#:1008-0570(2006)04-3-0256-03VC++中数据库访问技术研究(衡阳师范学院)王樱徐雨明Wang,YingXu,Yuming摘要:结合VC++讨论并比较了当前流行的几种数据库访问技术:ODBC,DAO,OLE/DB和ADO。在简要叙述其原理后,说明了三种数据库访问技术各自的优缺点,并给出了基本使用方法。关键词:数据库访问;ODBC;DAO;OLE/DB;ADO;:TP311文献标识码:AAbstract:CombiningwithVC++,thisdiscussesandcomparesseveralkindsofdatabaseaccesstechniquesthatarepopularatnowadayssuchasODBC,DAO,OLE/DBandADO,afterdepictingbrieflytheirprinciples,itexplainstheirmeritsandshortconingsofeverykindsofthesetechniques,givestheirbasicusemethods.Keywords:databaseaccessing;ODBC;DAO;OLE/DB;ADO;库应用程序遵循一定的基本步骤:引言笔者最近将用VC++开发一个管理系统,要使用数据库对所需的数据进行存储与管理。VC++提供了几种接口(DAO、OLE/DB、ADO、ODBC)来支持数据库编程,利用这些接口,可以在程序中直接操作各种各样的数据库,如SQLServer、MicrosoftAccess、MicrosoftFoxPro等等。采用以上几种接口访问数据库各有千秋,所以在进行数据库编程前,有必要对VC++中提供的各种技术有所了解,从而进行数据库技术的选定。1开放数据库连接(ODBC)1.1ODBCAPIODBC(OpenDatabaseConnectivity)其实是Mi-crosoft的WOSA(Windows开放服务体系)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编接口)。通常ODBC主要由ODBC驱动程序管理器、ODBC数据库驱动程序、ODBC数据源和ODBC应用四部分组成。ODBC体系的特点是:通过统一的接口实现对DBMS的访问,使用不同的ODBC驱动程序可以保证数据库的独立性。例如用ODBC访问Access和SQLServer数图1ODBC访问多种数据库第一步是分配ODBC环境,使一些内部结构初始化。完成这一步,须分配一个SQLHENV类型的变量在ODBC环境中做句柄使用。第二步是为将要使用的每一个数据源分配一个连接句柄,由函数SQLALLocHandle()完成。第三步是使用SQLConnect()把连接句柄与数据库连接,可以先通过SQLSetConnectAttr()设置连接属性。然后就可以进行SQL语句的操作。操作完成后,用户取回相应的结果,就可以取消与数据库的连接,最后需要释放ODBC环境。1.2MFCODBC虽然ODBC提供了访问数据库的接口,但是直接使用ODBCAPI创建应用程序需要编制大量的代码,而MFCODBC数据库类将ODBCAPI函数进行了封装,这就大大简化了ODBC数据库开发的编程工作。MFCODBC实际上使用的是一个简化的编程模型,因此,程序员无须考虑底层的很多细节,只需以简单易用的CDatabase、CRecordset、CRecordView等类来实现ODBC的功能。利用MFCODBC开发就是利用MFCODBC数据库类来操纵ODBC数据源。在Visual据库,不需改变ODBC应用程序调用数据源的代码,仅需改变ODBC中数据源的配置。这样,就可避免ODBC应用程序直接与数据源打交道。如图1所示。在使用ODBCAPI时,用户须引入的头文件为"sql.h","sqlext.h","sqltypes.h"。用ODBCAPI创建数据王樱:硕士讲师基金资助:湖南省教育厅科研项目(04c142)个同数据源的连接是操作ODBC数据源的基础数据库数据仓库数据挖掘CRecordset类代表从数据源中选择一组记录的集合,它是操作数据源的工具。CRecordset类提供了应用程序与数据交互的实质。CRecordset类用来封装对数据库的查询,包括添加、修改、删除行。要注意的是在应用程序中,一般不直接使用CRecordset类,而是使用其派生类。如果你没有自己的派生类,就几乎不可能使用CRecordset类对象。因为CRecordset类为你派生出的类提供了一个框架,当使用MFCClassWizard产生一个CRecordset类的派生类时,MFCClassWizard会自动添加相应数据库表中字段的成员变量,并自动重载CRecordset类的成员函数DoFieldExchange(),通过使用RFX函数来完成数据库字段与记录集字段数据成员变量的数据交换。生成派生类的步骤如下:(1)通过添加类向导从CRecordset类派生类。(2)指定记录集的字段数据成员。(3)在向导生成的字段数据成员后面添加参数数据成员,一般添加后缀“param”。(4)...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?