下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ADO在VC+中的应用摘要介绍了AD的特点以及在V+中如何通过AD开发数据库应用程序。AD是开发访问LE数据库应用程序所使用的一种数据库访问组件,是一种可以访问各种数据类型的连接机制。它不仅可以通过LEDB、DB访问数据库,还可以使用几乎任何一种数据源,如SQLServer、rale、Aess、Exel和文本文件、图形文件等。AD基于LEDB,提供统一的数据访问接口,使用简单,容易掌握。关键词AD;数据库;应用程序的开发;V+1引言AD是irsft公司新的数据访问技术,由于它是基于LEDB接口上实现的对象,其性能和易用性都到达了极佳程度。AD并不与数据库直接打交道,而是要通过DB驱动程序或LE
2、DB连接字符串来操作数据库。DB或LEDB是应用程序与数据库进展连接通信的接口,其作用是将特定类型数据库中的数据变换为标准而能统一操作的数据源。利用AD对象并通过DB或LEDB,可以实现对任意数据库的存取和访问。AD模型包括7个对象,主要对象有3个:nnetin、and和Rerdset,可以被独立创立和释放。此外,还包括其他4个集合对象:Fields、Errrs、Paraeters和Prperties。一个典型的AD应用程序使用nnetin对象建立与数据源的连接,然后用一个and对象给出对数据库操作的命令,如插入数据或者查询数据等,而Rerdset用于对结果集进展维护或者阅读等操作。其中and
3、命令所使用的语言与低层所对应的LEDB数据源有关,不同的数据源可以使用不同的命令语言,对于关系数据库,通常使用SQL作为命令语言。2V+中使用AD开发数据库应用程序一般步骤在V+中使用AD开发数据库应用程序一般包括以下步骤:1初始化库,引入AD库定义文件。2用nnetin对象连接数据库。3利用建立好的连接,通过nnetin、and对象执行SQL命令,或利用Rerdset对象获得结果记录集进展处理、查询。4使用完后关闭连接,释放对象所占的资源。3AD使用实例3.1引入AD动态链接库,初始化库环境在使用Visual+的F编程时,F并没有提供对AD的封装类,可以支持AD编程的是AD的动态链接库文件s
4、ad*.dll,“*位置的数字代表AD库的版本。引入该文件的方法是在stdafx.h头文件中,添加如下代码:#iprt:prgrafilesnfilessysteadaad15.dlln_naespaerenae(“EF,adEF)这些命令声明在工程中使用AD,但不使用AD的名字空间,并为了防止冲突,将EF改名为adEF。AD是基于技术的,所以,在应用程序调用AD前,必须初始化库环境。AD使用完毕后需要关闭库,释放初始化加载的动态链接库。:Initialize(NULL);/初始化库:Uninitialize();/去除库3.2创立AD与数据库的连接使用nnetin对象翻开连接,在引入的动态链
5、接库生成的定义文件sad15.tlh中pen方法的定义如下:HRESULTpen(_bstr_tnnetinString,_bstr_tUserID,_bstr_tPassrd,lngptins)由于使用的数据库软件的不同,连接串的格式也有所不同,给程序员带来很多费事。微软公司提供了一种可视化的方法来解决这个问题,它提供了通用数据连接文件UDL来建立和测试AD的连接属性。主要代码如下:HRESULT_nnetinPtr_pnnetin;/连接对象智能指针/初始化数据库连接HRESULThr;tryhr=_pnnetin.reatEinstane(_uuidf(nnetin);/实例化连接对象i
6、f(SUEEDED(hr)/设置连接串属性为UDL文件_pnnetin-nnetinString=FileNae=nae.udl;/设置等待连接翻开的时间为20s_pnnetin-nnetinTieut=20;hr=_pnnetin-pen(,adnnetUnspeified);if(FAILED(hr)AfxessageBx(“penfail);ReturnTRUE;elseAfxessageBx(“reateinstanefnnetinfail);returnTRUE;ath(_errre)/给出异常信息_bstr_tbstrSure(e,Sure();_bstr_tbstrDesript
7、in(e.Desriptin();AfxessageBx(bstrSure+bstrDesriptin)returnTRUE;3.3使用记录集Rerdset对象操作数据库在AD程序中,记录集实际上缓存可从数据库获得的记录,应用程序可以从记录集中获得每条记录的字段。pen方法在sad15.h文件中的定义如下:HRESULTpennst_variant_tSure,nst_variant_tAtivennttin,enuursrTypeEnuursrType,enuLkTypeEnuLkType,lngptins其中,参数Sure是记录源;参数Ativennttin指定在哪个连接中翻开该记录集;参
8、数ursrType指定翻开Rerdset时使用的游标;参数LkType指定翻开记录集时应该使用的锁定类型;参数ptins指定参数Sure的种类。主要代码如下:HRESULThr;_variant_tvar;_RerdsetPtrpRerdset;/定义记录集指针hr=pRerdset.reatEinstane(_uuidf(Rerdset);/实例化记录集指针Stringstrsql;strsql=SELET*FRnaetable/定义并初始化SQL语句字符串,naetable为表名try/利用pen函数执行SQL命令,获得查询结果记录集hr=pRerdset-pen(_variant_t(s
9、trsql),_pnnetin.GetInterfaePtr(),adpenDynai,adLkptiisti,addText);if(hr)hile(!pRerdset-adEF)/获取第1列的值,从0开场计数,也可以直接给出列的名字var=pRerdset-Getllet(lng)0);var=pRerdset-Getllet(“Nae);pRerdset-veNext();/挪动当前记录到下一条记录pRerdset-veFirst();/挪动到首条记录pRerdset-Delete(adAffeturent);/删除当前记录pRerdset-AddNe();/添加新记录pRerdset-
10、Putllet(“ID,_variant_t(lng)72);pRerdset-Putllet(“Nae,_variant_t(“小王);pRerdset-veNext();pRerdset-Putllet(“Nae,_variant_t(“小周);/修改Nae字段的值pRerdset-Update/保存到数据库中elseAfxessageBx(“penrerdsetfail);return;ath(_errr*e)AfxessageBx(e-Errressage();return;pRerdset-lse();pRerdset=NULL;3.4使用and对象操作数据库and对象定义了将对数据源执行的指定命令。使用and对象的流程和记录集对象类似,首先声明_andPtr变量;实例化变量;设置对象的某些属性值;调用Exeute方法执行命令。所以,这里就不给出代码了。4完毕语AD是应用级的编程接口,它以LEDB为根底,对LEDB进展了封装。它的主要优点是易于使用、速度快、内存支出少和使用较少的网络流量。AD技术是微软大力支持和开展的技术,对于致力与Visual+的程序员来说,理解和掌握AD技术具有深远的意义。参考文献1原奕等编著.Visual+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 34142-2017辐射防护仪器 用于放射性物质光子探测的高灵敏手持式仪器 》
- 2026年南宁市第十中学星光校区(初中部)招聘备考题库及参考答案详解
- 2026年图木舒克城市投资集团有限公司招聘备考题库有完整答案详解
- 2026年攀天阁乡卫生院护士招聘备考题库(含答案详解)
- 2026年大专可报专业不限宜昌市内某国企招聘备考题库及一套完整答案详解
- 深圳北理莫斯科大学2026年汉语中心招聘备考题库及答案详解(新)
- 2026年芜湖市中西医结合医院(湾沚区总医院)招聘麻醉医师备考题库及参考答案详解1套
- 2026年上海市青浦区教育系统公开招聘高端教育人才(管理方向)备考题库及参考答案详解
- 2026年西北工业大学冲击动力学及工程应用重点实验室非事业编科研助理招聘备考题库及答案详解(新)
- 2026年闽西职业技术学院公开招聘专职思政课教师7人备考题库带答案详解
- 贵州安创数智科技有限公司招聘笔试题库2026
- 机械设备入股合同范本
- 2024-2025学年河南省郑州市高新区七年级(上)期末数学试卷
- 商场服务合同范本
- 江苏省无锡市澄宜六校联盟2025-2026学年高三上学期12月学情调研生物试题(含答案)
- 《军用关键软硬件自主可控产品名录》(2025年v1版)
- DB37T 5042-2015 城镇供水水质在线监测系统技术规范
- 南京信息工程大学《数字图像处理Ⅰ》2021-2022学年期末试卷
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 【省一等奖】初中语文八年级上册第五单元作业设计案例
- 莎士比亚戏剧赏析智慧树知到期末考试答案章节答案2024年北京师范大学
评论
0/150
提交评论