欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    在VC_中基于ADO组件的数据库编程技术.pdf

    • 资源ID:70344285       资源大小:95.23KB        全文页数:4页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    在VC_中基于ADO组件的数据库编程技术.pdf

    在VC+中基于ADO组件的数据库编程技术昝风彪(青海民族学院 计算机系,青海 西宁 810007)摘 要:利用ADO组件提供的对象及其接口,更容易实现数据库应用程序的升级和协同开发。本文介绍了ADO组件模型及编程模块,探讨了在VC+中利用组件来开发数据库应用程序的技术。关键词:ADO组件;COM;数据库中图分类号:TP311.13 文献标识码:A 文章编号:1001-7542(2003)03-0071-04在数据库编程中已经有象ODBC、OLEDB、DAO等访问技术,但是利用ADO组件提供的对象及其接口,实现更高层次的组件封装,以实现更加具体的功能,将组件的可操作性提高到新的水平。1ADO组件概述1.1COM组件原理COM是一种以组件为发布单元的对象模型,这种模型使多种软件组件可以通过一种通用的方式进行交互。COM提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语言,所以COM也是不同语言协作开发的一种标准。1.2ADO组件模型ADO是采用客户/服务器体系结构的COM模型,对象和客户之间的相互作用是作为客户/服务器模型里的元素展开的,ADO组件同客户程序的协作方式有进程内协作和进程外协作,而进程内协作是组件与客户程序在同一个组件内进行,拥有共同的地址空间,其效率与同一进程里的任何C+函数没有区别,而进程外协作是组件运行在独立地址空间,不与客户程序发生数据共享。1.3ADO编程模块ADO包装了DLEDB的许多功能函数并使开发者能够在所有的语言中访问数据源中各种各样的数据。ADO编程包括制作ADO类库的调用,ADO库按图1层结构而建立的:图1 每个ADO连接对象都使用一个数据源名字,一个用户ID和口令来建立起到一个数据库的连接。通过执行一些SQL语句,这些SQL语句返回一个已含有数据行的数据库光标,形成每个ADO记录集,可以检查到这些行,也可以通过ADO记录集更新它们。每个记录集包含一个字段集,这些字段集依次包含一些字段对象,这些字段对象含有已经找到的数据库字段的信息,包括数据类型、长度和存入的值。2 基于ADO组件的客户编程实现2.1 组件支持ADO组件支持是通过ATL(Activex Templete Library)来支持的。ATL是一套C+模板库。ATL的优点是能够建立高效的、灵活的、轻量级的COM组件,ATL应用程序比MFC应用程序更小巧、速度更快。收稿日期:2002-12-20作者简介:昝风彪(1971-),男(藏族),青海互助人,青海民族学院计算机系讲师。2003年第3期 青海师范大学学报(自然科学版)Journal of Qinghai Normal University(Natural Science)2003No.3 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/通过ATL使COM应用开发尽可能地自动化,摆脱大量的冗余代码。ATL提供的数据库访问COM接口是对OLE DB API的包装,其接口主要有如下几个类:CDataSource、CSession、CCommand、CRowset、CAcces2sor,用来创建数据源对象、客户程序与供应程序的对话、处理数据等。2.2 编程实现2.2.1ADO支持虽然已经有组件支持,但还需要ADO的支持,在组件支持的数据库开发方式中,必须在应用程序的头文件中包含adoid.h和adoint.h。2.2.2ADO数据库连接在使用ADO数据库之前,必须先建立数据库连接,通过ADOConnection界面来完成。先声明ADO2Connection界面的指针,然后使用CoCreateInstance方法在内存中建立连接。CComPtrm-Conn;CoCreateInstance(CLSID-CADOConnection,NULL,CLSCTX-INPROC-SERVER,IID-IADOConnection,(LPVOID3)&m-Conn);调用CoCreateInstance函数时COM搜索注册表找到CLSID,并创建一个CADOConnection对象的一个实例,并通过IID-IADOConnection接口指针引用对象,而参数CLSCTX-INPROC-SERVER指出ADO连接对象在程序中以DLL方式运行,而不是在单个程序中或甚至在不同的机器中以EXE方式运行。CoCreate2Instrance函数返回一个HRESULT,以表明是否创建成功,一旦分配ADO连接成功,就可以用CADOCon2nection的Open方法连接到数据库。m-Conn-Open(BSTR ConnectionString,BSTR UserID,BSTRPassword,LongOptions);Open方法中指定了三个BSTR参数,用来说明所连接的数据源,用户ID、口令,Options参数指定了以后要用到的光标类型,可以是adOpenUnspecified,adOpenForwardOnly,adOpenKeySet,adOpenDynamic,adOpenStatic。由于在Open方法中数据源、用户ID、口令是BSTR数据类型,所以在代码中变量说明时使用CComBSTR来说明。2.2.3ADO记录集成功建立ADO连接后,就可以创建一个ADO记录集。先声明ADORecordset指针,再调用CoCreate2Instance方法进行分配。CComPtrm-pSet,CoCreateInstance(CLSID-CADORecordset,NULL,CLSCTX-INPROC-SERVER,IID-IADORecordset,(LPVOID3)&m-pSet);同建立ADO连接一样,如果创建ADO记录集成功,就可以使用ADORecord:Open方法来打开所指向数据库的记录集。HRESULT Open(VARIANT Source,VARIANT ActiveConnection,CursorTypeEnum CursorType,LockTypeEnum LockType,27 青海师范大学学报(自然科学版)2003年 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/LONG Options);在Open方法中,参数Source是一个含有SQL SELECT的语句,用来指定所要打开的记录集。Active2Connection是已创建的ADO连接,CursorType是所用到的光标类型,LockType为ADORecordset锁类型。Op2tions为执行选项。创建了ADO记录集后,就可以调用adoint.h中列出的方法来进行对记录的操纵。每次对记录集更新后,调用Update方法来保存对记录集的更改。2.2.4 对字段的操作在数据库操作中经常要对字段进行操作。当记录定位后,需要将字段的值读出或写入记录集内,此时需要执行三个步骤:首先,要从ADO记录集中找到ADOFields容器。CComPtrm-Fields;HRESULT hr=m-pSet-get-Fields(&m-Fields);以上两句代码中,先声明了一个ADOFields指针,并用get-Fields方法将指针指向已创建好的记录集的字段容器,以便对每个字段进行操作。其次,用ADOFields指针获得每个字段并将它存入ADOField变量中。CComPtrm-Field;m-Field-get-Item(CComVariant(Index),&m-Fields);以上两句代码是声明一个ADOField指针,并用get-Item方法将指针指向一个字段,参数Index是字段序号,序号从0开始。第三,确定好某一字段后,就可以用ADOField类的get-Value方法和put-Value方法来查看和处理字段的信息,先声明VARIANT类型的变量,再用此变量将每个ADO字段中的值取出或存入。CComVariant varValue;读出字段值到varValue;hr=m-Field-get-Value(&varValue);或者将varValue中的值放入ADO字段:hr=m-Field-put-Value(varValue);2.2.5 字段的类型和属性我们可以使用ADOField的get-Type方法和get-Attributes方法来得到字段的类型和属性。DataTypeEnum dt;Long FieldAtt;m-Fieldget-Type(&dt);m-Field-get-Attributes(&FieldAtt);字段类型dt返回当前字段的类型,而FieldAtt返回的长整型变量是所有属性的按位与的组合,可以对每一位进行测试来判定每个属性值是否有效,进而可以判断出对字段可以进行的操作。在ADO中使用SQL命令:在很多数据库的操作中,直接运行SQL语句来进行简单的数据库操作,而不需要形成一个记录集,使用是很便利的。在ADO中也允许对ADO连接直接运行SQL语句,使用ADOConnection:Execute方法来完成。ADOConnection.Execute(BSTR CommandText,VARIANT3RecordsAffected,Long Options,ADORecordset3ppiRset);代码中:CommandText参数是一个包含一个SQL语句的BSTR。37第3期 昝风彪:在VC+中基于ADO组件的数据库编程技术 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/RecordsAffected参数是一个可选的变量指针,它返回语句所影响的行数,可以是NULL。在行命令的时候,Options参数包含任何附加选项。ppiRset参数在从命令中返回的情况下,是一个可选的ADORecordSet行。可以为NULL。3 总结在使用COM支持的数据库开发中,首先要创建ADO连接并分配COM接口指针,通过已分配的接口指针来完成对ADO数据库的连接,其次要创建ADO记录集并分配COM接口指针,以便进行记录集数据的操作。采用开放的COM接口,增加数据源支持变得更加容易,数据提供者只需要提供基本的服务,在应用层上的数据使用者就可以获得各种服务组件提供的服务。使用开放的COM接口,更容易实现数据库应用程序的升级和协同开发。参考文献:1ChuckWood.ViaualC+6.0数据库编程大全M.北京:电子工业出版社,2000.2 夏云庆.VisualC+6.0数据库高级编程M.北京:希望电子出版社,2002.The technique of database programing based on ADO component in VC+ZAN Feng-biao(Dept.of Computer,Qinghai Nationalities College,Xining 810007,China)Abstract:Using objects and interfaces of ADO component support,still easiness to upgrade and concurrent de2velopment at Database Application Program.This paper based on ADO component model and program module,anddiscusses the key technique of useing component to develop Database Application Program with VC+.Key words:ADO component;COM;Database47 青海师范大学学报(自然科学版)2003年 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http:/

    注意事项

    本文(在VC_中基于ADO组件的数据库编程技术.pdf)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开