ImageVerifierCode 换一换
格式:DOC , 页数:94 ,大小:887.54KB ,
资源ID:3548141      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3548141.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(彩色电视机故障信息管理系统客户端数据库.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

彩色电视机故障信息管理系统客户端数据库.doc

1、 彩色电视机故障信息管理系统(客户端)The MIS fo TV applying in failure information学生:全俊林 指导教师:龚迪琛摘 要本文介绍了如何使用Visual C+.0编程制作以彩色电视机故障信息管理系统(客户端部分)为例,实现信息管理的自动化。由此实现了信息的增长、删除、修改、查看等功能,并且进而实现信息的安全管理,使信息的管理更加人性化,规范化。集计算机技术、网络通信技术为一体的信息管理系统。采用先进有效的管理体制,可以改善公司的经营环境、减少经营生产成本,提高公司的竞争力;使得公司的运营数据更加准确、及时、全面、详实,同时对各种信息进一步加工,使公司领

2、导层的决策依据充足,更具科学性,从而提高故障排除效率,提高信息运用率,有助于进一步提高了生产效率,使公司的管理水平跨上新台阶,为公司连续、健康、稳定的发展打下基础。AbstractThe main work of this paper is introduce how to use Visual C+.0programming a Color TV Malfunction-Information In-Common System, achieve the auto-manage of the Malfunction-Information. According these, this syst

3、em achieves the informations function of add、delete、edit and view., it also get the information managed safety, so the management of the information will be more humanity & normalize.Thereby, it can improve the efficiency of the malfunctions elimination, enhance the exploitation of the information,

4、and also help improving the efficiency of the produce by a large step. 关键词: 数据库 信息管理 模块化管理 MIS信息管理系统 目录摘 要1目录21.绪论31.1 前言31.2 课题背景 目的 研究方法41.3 重要完毕工作及规定52MIS系统设计及功能分析介绍52.1 MIS系统介绍52.2 系统设计及功能分析62.3 功能模块设计73. 数据库设计及ADO访问数据库73.1 数据库设计过程73.2 创建应用程序93.3 数据库操作准备113.4 ADO访问数据库134.功能模块的创建194.1 系统主体窗体的创建19

5、4.1.1主菜单的创建194.1.2右键菜单的创建204.1.3工具栏的创建214.1.4数据显示与表格控件的创建224.2 系统用户权限管理模块的创建234.2.1添加用户对话框的创建244.2.2 更改密码对话框的创建264.2.3 删除用户对话框的创建264.2.4 用户登录对话框的创建264.3 信息管理模块的创建274.3.1 添加记录对话框的创建274.3.2 查询记录对话框的创建294.3.3 修改记录对话框的创建304.3.4 查看记录对话框的创建324.4 打印预览模块的创建325. Windows Sockets335.1 规范简介335.2 Bekeley套接口355.3

6、 Microsoft Windows和针对Windows的扩展355.4 接口网络编程原理365.5 Windows Sockets编程原理386. 远程数据的管理和系统的实现406.1远程数据的管理406.2 程序的编译和系统的实现417. 问题扩展428. 小 结44致 谢45参考文献461.绪论1.1 前言信息化建设对公司来说无疑已经成为公司在现代竞争社会中立足的重要因素。而从中国大陆公司现状来看,大部分公司的信息化建设都是依靠专业化软件公司。毋庸置疑,对于大规模的管理系统,例如CRM(Client Relation Manager),ERP(Enterprise Resource Pl

7、an)等,使用专业软件公司开发的产品,功能相对齐全,安全级别也相对较高。但对于公司内部小范围内所需的一些小系统而言,如也依靠此种方式,势必会产生无谓的成本流失。鉴于这种形式,借助这次毕业设计的机会,在龚迪琛教师的指导下,通过一段时间的努力,开发出了这套彩色电视机故障信息管理系统(客户端部分)。本系统重要用于对已有故障信息进行更高效的管理,提高信息的运用率,改变了以往烦琐的查找,大大提高了故障的排除速度及对的率,对进一步提高生产及管理效率具有十分重要的意义。1.2 课题背景 目的 研究方法 (1)背景随着中国加入WTO,竞争也越来越惨烈,中国的制造业同样面临者巨大的挑战。科学技术的飞速发展,产品

8、功能规定的日益增多,复杂性增长,寿命期缩短,更新换代速度加快。然而,产品的管理,特别是机械产品方案的远程管理手段,则显得力不从心,跟不上时代发展的需要。目前,机械产品远程管理已得到了比较广泛和进一步的研究,并初见成效,公司中庞大的剧烈变化的产品数据仅仅依靠手工方式来管理是很难做到准确性、完整性、及时性和可追溯性的规定的。因此,将公司产品块化的管理创新成果与信息系统的建设结合起来是很好的解决方案。模块化的产品远程管理可以在保持产品较高通用性的同时提供产品的多样化配置和服务,因此,机械产品远程管理方案应当得到进一步的研究和开发。在这里以彩色电视机故障信息管理系统(客户端部分)作为研究对象。(2)目

9、的设计(重要研究内容或创新点)本着提高效率减少成本为出发点,以彩色电视机故障信息管理为具体范例,探讨对公司产品信息管理MIS系统的开发,并增长远程管理功能,使生产工程部的故障解决工作系统化,规范化。(3) 研究方法与技术路线及预期结果本课题为应用型管理系统的开发,尝试增长远程管理功能,采用小型DBMS(数据库管理系统)ACESS,通过TCP/IP协议运用winsockect结合,DAO或者ADO与关系数据的接口实现产品信息的管理,查询,整理等工作。 本部分为客户端部分。1.3 重要完毕工作及规定(1)尽量采用生产工程部现有的软硬件环境及齐全的故障信息,从而达成充足运用现有资源,提高系统开发水平

10、和应用效果的目的。(2)系统应符合生工部资料管理规范,符合普通员工操作的规范,达成操作过程中的直观、方便、实用、安全等规定。(3)系统采用Visual C+6.0环境,用ADO(ActiveX Data Objects)数据访问方式,采用Microsoft Access 2023作为数据源,使整个系统易于使用及维护。(4)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。(5)系统应具有数据维护功能,及时根据数据变化进行添加、删除、修改、查询等操作,并加入拥护权限功能,以及远程管理功能,使系统更加安全合用。2MIS系统设计及功能分析介绍2.1

11、 MIS系统介绍所谓MIS(管理信息系统-Management Information System)系统 ,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。是一门新兴的科学,其重要任务是最大限度的运用现代计算机及网络通讯技术加强公司的信息管理,通过对公司拥有的人力、物力、财力、设备、技术等资源的调查了解,建立对的的数据,加工解决并编制成各种信息资料及时提供应管理人员,以便进行对的的决策,不断提高公司的管理水平和经济效益。目前,公司的计算机网络已成为公司进行技术改造及提高公司管理水平的重要手段。随着我国与世界信息高速公路的接轨,公司通过计算机网络获

12、得信息必将为公司带来巨大的经济效益和社会效益,公司的办公及管理都将朝着高效、快速、无纸化的方向发展。MIS系统通常用于系统决策,例如,可以运用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或局限性。换句话说,MIS系统的最终目的是使管理人员及时了解公司现状,把握将来的发展途径。 一个完整的MIS应涉及:辅助决策系统(DSS)、工业控制系统(IPC)、办公自动化系统(OA)以及数据库、模型库、方法库、知识库和与上级机关及外界互换信息的接口。其中,特别是办公自动化系统(OA)、与上级机关及外界互换信息等都离不开Intranet的应用。可以这样说,

13、现代公司MIS不能没有Intranet,但Intranet的建立又必须依赖于MIS的体系结构和软硬件环境。传统的MIS系统的核心是CS(Client/Server客户端/服务器)架构,而基于Internet的MIS系统的核心是BS(Browser/Server浏览器/服务器)架构。BS架构比起CS架构有着很大的优越性,传统的MIS系统依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制;而BS架构则不需要专门的操作环境,在任何地方,只要能上网,就可以操作MIS系统,这其中的优劣差别是不言而喻的。基于Internet上的MIS系统是对传统MIS系统概念上的扩展,它不仅可以用于高层决策,并且

14、可以用于进行普通的商务管理。通过用户的具名登录(或匿名登录),以及相应的权限控制,可以实现在远端对系统的浏览、查询、控制和审阅。随着Internet的扩展,现有的公司和学校不再局限于物理的有形的真实的地区,网络自身成为事实上发展的空间。基于Internet上的MIS系统,填补了传统MIS系统的局限性,充足体现了现代网络时代的特点。随着Internet技术的高速发展,因特网必将成为人类新社会的技术基石。基于Internet的MIS系统必将成为网络时代的新一代管理信息系统,前景极为乐观。2.2 系统设计及功能分析通过一个彩电故障信息管理系统,使生产工程部客户端部分的故障解决工作模块化,系统化,规范

15、化,自动化,从而达成提高故障排除效率,提高信息运用率的目的。本系统功能分析是在系统开发总体任务的基础上完毕的,本系统需要完毕的功能如下:l 故障信息的输入、查询、修改、删除l 故障信息的打印l 系统用户管理,权限管理2.3 功能模块设计在系统功能分析的基础上,考虑Visual C+程序编制的特点,得到图1所示的系统功能模块图。增长新信息信息数据彩电故障信息共享系统 信息变动管理员信息管理修改新信息权限验证打印管理系统管理 删除新信息 查 询信息查询用户权限增长删除修改 图1系统功能模块图 图2数据流程3. 数据库设计及ADO访问数据库3.1 数据库设计过程数据库技术是信息资源管理最有效的手段。

16、数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息规定和解决规定。数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户解决的规定,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和解决的需要,进行物理存储安排,设计索引,形成数据库内模式。数据结构的好坏将直接影响

17、到系统的效率以及实现的效果。好的数据库结构会减少数据库的存储量、冗余度,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于数据库的应用程序的实现方法等,一般可将数据库结构设计分为四个阶段,即需求分析、概念结构设计、逻辑结构设计和物理设计。(1)数据库需求分析需求分析的任务是具体了解应用环境,了解与分析用户对数据和数据解决的需求,相应用系统的性能的规定,提出新系统的目的,为第二阶段、第三阶段的设计奠定基础。在仔细研究资料管理过程的基础上,归纳出系统的数据流程图如上图2所示,所有数据均由管理员输入管理。根据图2的数据流程图,可得到所须设计的数据项和数据结构如下:l 故障信息,涉及的数据项

18、有显象管、机芯、机壳、器件、技术员、时间、其他、信息名、具体内容等。l 权限验证,涉及的数据项有用户名、密码等。由上分析,为此需要有2个数据表分别用来存放故障信息的用户信息。这两个数据表均用Access 2023实现。Access中的设计视图如图3、图4所示,其中数据类型根据具体的数据字段来设立。图3 info1视图图4 login视图(2)数据库概念结构设计概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。概念结构设计是在需求分析的基础上对所有数据规定按一定方法进行抽象与综合解决,设计出不依赖于某种具体DBMS

19、的满足用户应用需求的信息结构。这种信息结构我们称为概念模型。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表达,概念模型特点: (1)具有较强的语义表达能力,可以方便、直接地表达应用中的各种语义知识。 (2)应简朴、清楚、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 最常用的概念结构设计方法有实体分析法、面向对象设计方法、属性综合法和规范化关系方法。我们此处重要讨论实体分析法。这是一种自上而下抽象的方法。这种方法规定根据前面数据的需求分析,拟定系统范围,拟定实体及其属性,画出系统的实体联系模型(ER图)。在分析需求的基础上,我们得到整个系统

20、的E-R图。3.2 创建应用程序本彩电故障信息共享系统采用Visual C+ 6.0的ADO方法开发。工程创建具体环节如下:(1) 打开Visual C+后,选择菜单“File/New”中的“Project”选项卡中的“MFC AppWizard exe”,设立工程名字为“CaidianGuzhang”,选择存储位置,单击“OK”。(2) 创建一个单文档应用程序,在Step1中,选择“Single Document”,然后单击“Next”按扭,进入“Step 2 of 6”。(3) 一直单击“Next”按扭,直到进入“Step 6 of 6”。由于为了能使数据更直观,我们采用列表形式,所以需要

21、在本环节中,选择CCaidianGuzhangView类的Base Class(基类)为ClistView。然后单击“Finish”,最后将出现确认窗口,如图6所示,检查无误后,单击“拟定”,即可完毕工程创建。图6 确认(4) 为了使程序能支持ADO数据库对象,以使程序能对的的调用数据库,应当在头文献stdafx.h中加入 #import c:Program FilesCommon FilesSystemadomsado15.dll rename_namespace(AdoNS) rename(EOF,adoEOF)using namespace AdoNS; 导入ADO库并在主程序入口:BO

22、OL CCaidianGuzhangApp:InitInstance()中加入AfxOleInit();初始化COM环境。ADO类的定义是作为一种资源存储在ADO DLL(msado15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C使用的COM vtable接口。当使用import指令时,在运营时Visual C需要从ADO DLL中读取这个类型库,并以此创建一组C头文献。ADO库包含三个智能指针:_ConnectionPtr、_CommandPtr和_RecordsetPtr。_ConnectionPtr通常被用来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存

23、储过程。_CommandPtr返回一个记录集。它提供了一种简朴的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,可以运用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。 _RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。3.3 数据库操作准备(1) 初始化接口: initialDbConnect(CString mdbname)在本系统中通过建立一个数据库类class DatabaseOperate 来实现整个信息系统对数据的操作,下面是对其提供的重要

24、接口的设计:该接口函数的作用是初始化连接数据源。BOOL DatabaseOperate:InitialDbConnect(CString mdbname) m_pConnection.CreateInstance(_uuidof(Connection);/先连接数据库CString strConnect;BSTR bstrSQL;strConnect.Format(_T(Provider = Microsoft.JET.OLEDB.4.0; Data ource=%s),mdbname);bstrSQL = strConnect.AllocSysString();AfxMessageBox(

25、e.ErrorMessage();return false; return true; 该接口的重要功能是连接我们在Access 2023中设计的数据源,CString mdbname变量作为数据库文献mdb的名称,由调用 DatabaseOperate 类的主程序给出。在本设计中是“info1.mdb”(2)执行查询,修改,添加,删除等功能的接口函数的设计BOOL DatabaseOperate:ExecuteSQLEx(CString strSQL)_variant_t RecordsAffected;/_bstr_t bstrSql(strSQL);try m_pConnection-E

26、xecute(bstrSql,&RecordsAffected,adCmdText);catch (_com_error e)AfxMessageBox(e.ErrorMessage();return FALSE; return TRUE; 通过执行一条SQL语句来实现数据库的读写操作,其中m_pConnection是我们在调用InitialDbConnect初始化接口时候创建的连接型智能指针,我们可以通过它来执行SQL语句(3) 获取数据信息接口函数的设计BOOL DatabaseOperate: GetCurrentRecordSet(Recordstruct&result,long Sh

27、ijiansuoyin,CString tablename)_RecordsetPtr tem_pRecordset;tem_pRecordset.CreateInstance(_uuidof(Recordset);/初始化Recordset指针CString strSql;strSql.Format( _T(select * from %s where sjsy=%d ), tablename, Shijiansuoyin);BSTR bstrSQL = strSql.AllocSysString(); trytem_pRecordset-Open(bstrSQL,(IDispatch*)m

28、_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); catch (_com_error e)/异常解决AfxMessageBox(e.ErrorMessage();if (tem_pRecordset-State) tem_pRecordset-Close();tem_pRecordset.Release();return FALSE;while(!tem_pRecordset-adoEOF)/遍历所有记录 _variant_t v_xxg,v_jx,v_jk, v_qjv_ xxg = tem_pRecordset-GetColle

29、ct(_T(显象管);v_ jx = tem_pRecordset-GetCollect(_T(机芯);v_ jk = tem_pRecordset-GetCollect(_T(机壳);v_ qj = tem_pRecordset-GetCollect(_T(器件);./获取各个字段的信息/将各字段信息赋值给result结构体,此处省略tem_pRecordset-MoveNext();/转到下一条纪录if (tem_pRecordset-State) tem_pRecordset-Close();tem_pRecordset.Release();return TRUE;其中参数Records

30、truct&result是对查询结果定义的结构体,与前面我们在数据库中建立的彩电信息的结构一致:typedef struct _Recordstruct CString xxg ;/显象管CString jx;/机芯CString qj;/器件CString jsy;/技术员CString sj;/时间CString qita;/其他信息CString sj;/信息名CString qita;/具体内容long sjsy;/时间索引Recordstruct,* pRecordstruct;3.4 ADO访问数据库(1) 生成应用程序框架并初始化OLE/COM库环境 创建一个标准的MFC App

31、Wizard(exe)应用程序,然后在使用ADO数据库InitInstance函数中初始化OLE/COM库(由于ADO库是一个COM DLL库)。创建一个标准的MFC AppWizard(exe)应用程序,然后在使用ADO数据库的InitInstance函数中初始化OLE/COM库(由于ADO库是一个COM DLL库)。本例为: BOOL CAdotestDlg:OnInitDialog() :CoInitialize(NULL); /初始化OLE/COM库环境 程序最后要调用 :CoUninitialize();/释放程序占用的COM 资源。此外:m_pRecordset-Close();

32、注意!不要多次关闭!m_pConnection-Close();m_pRecordset = NULL;m_pConnection = NULL; (2) 引入ADO库文献 使用ADO前必须在工程的stdafx.h文献最后用直接引入符号import引入ADO库文献,以使编译器能对的编译。ADO类的定义是作为一种资源存储在ADO DLL(msado15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C使用的COM vtable接口。当使用import指令时,在运营时Visual C需要从ADO DLL中读取这个类型库,并以此创建一组C头文献。这些头文献具有.tli 和.tlh扩展名,

33、读者可以在项目的目录下找到这两个文献。在C程序代码中调用的ADO类要在这些文献中定义。 程序的第三行指示ADO对象不使用名称空间。在有些应用程序中,由于应用程序中的对象与ADO中的对象之间也许会出现命名冲突,所以有必要使用名称空间。假如要使用名称空间,则可把第三行程序修改为: rename_namespace(AdoNS)。第四行代码将ADO中的EOF(文献结束)更名为adoEOF,以避免与定义了自己的EOF的其他库冲突。 (3) 运用智能指针进行数据库操作 在CaboutDlg头文献中定义两个ADO智能指针类实例,并在对话框中加入一个ListCtrl。 class CAdotestDlg :

34、 public CDialog _ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset; ClistCtrl m_List; . ADO库包含三个智能指针:_ConnectionPtr、_CommandPtr和_RecordsetPtr。_ConnectionPtr通常被用来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。_CommandPtr返回一个记录集。它提供了一种简朴的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,可以运用全局_ConnectionPtr接口,也可以在_Co

35、mmandPtr接口里直接使用连接串。_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。 在使用ADO程序的事件响应中OnButton1加入以下代码: void CAdotestDlg:OnButton1() m_List.ResetContent(); m_pConnection.CreateInstance(_uuidof(Connection); /初始化Connection指针 m_pRecordset.CreateInstance(_uuidof(Recordset);/初始化Recordset指针 try m_p

36、Connection-Open(DSN=ADOTest,0); /连接叫作ADOTest的ODBC数据源 /注意:这是连接不需要用户ID或密码的open 函数 / 否则形式为 -Open(DSN=test;uid=sa;pwd=123;,0); / 执行SQL语句得到一个记录集把其指针赋值给m_pRecordset CString strSql=select * from middle; BSTR bstrSQL = strSql.AllocSysString(); m_pRecordset-Open(bstrSQL,(IDispatch*)m_pConnection,adOpenDynami

37、c,adLockOptimistic,adCmdText); /adOpenDynamic:动态 adLockOptimistic乐观封锁法 adCmdText:文本查询语句 while(!m_pRecordset-adoEOF)/遍历所有记录 /取纪录字段值方式之一 _variant_t TheValue; /VARIANT数据类型 TheValue = m_pRecordset-GetCollect(BIG_NAME);/得到字段BIG_NAME的值 if(TheValue.vt!=VT_NULL) m_List.AddString(char*)_bstr_t(TheValue); /将该

38、值加入到列表控件中 /取纪录字段值方式之二 / _bstr_t TheValue1=m_pRecordset-Fields-GetItem(BIG_NAME)-Value; / CString temp=TheValue1.copy(); / m_List.AddString(temp); /数据类型转换 _variant_t vUsername,vBirthday,vID,vOld; TRACE(id:%d,姓名:%s,年龄:%d,生日:%srn, vID.lVal,(LPCTSTR)(_bstr_t)vUsername,vOld.lVal,(LPCTSTR)(_bstr_t)vBirthd

39、ay); m_pRecordset-MoveNext();/转到下一条纪录 m_pRecordset-Close(); m_pConnection-Close(); catch (_com_error e)/异常解决 AfxMessageBox(e.ErrorMessage(); m_pRecordset-Close(); /注意!不要多次关闭!否则会犯错 m_pConnection-Close(); m_pRecordset = NULL; m_pConnection = NULL; 程序中通过_variant_t和_bstr_t转换COM对象和C类型的数据, _variant_t类封装了O

40、LE自治VARIANT数据类型。在C+中使用_variant_t类要比直接使用VARIANT数据类型容易得多。好,编译后该程序就能运营了,但记住运营前要创建一个叫ADOTest的ODBC数据源。该程序将把表middle中的BIG_NAME字段值显示在列表控件中。(4) 执行SQL命令并取得结果记录集为了取得结果记录集,我们定义一个指向Recordset对象的指针:_RecordsetPtr m_pRecordset;并为其创建Recordset对象的实例: m_pRecordset.CreateInstance(ADODB.Recordset);SQL命令的执行可以采用多种形式,下面我们一进行

41、简朴介绍。 1.运用Connection对象的Execute方法执行SQL命令Execute方法的原型如下所示: _RecordsetPtr Connection15:Execute ( _bstr_t CommandText, VARIANT * RecordsAffected,long Options ) 其中CommandText是命令字串,通常是SQL命令。 参数RecordsAffected是操作完毕后所影响的行数, 参数Options表达CommandText中内容的类型,Options可以取如下值之一: adCmdText:表白CommandText是文本命令 adCmdTabl

42、e:表白CommandText是一个表名 adCmdProc:表白CommandText是一个存储过程 adCmdUnknown:未知 Execute执行完后返回一个指向记录集的指针。2.运用Command对象来执行SQL命令 _CommandPtr m_pCommand;m_pCommand.CreateInstance(ADODB.Command);_variant_t vNULL;vNULL.vt = VT_ERROR;vNULL.scode = DISP_E_PARAMNOTFOUND;/定义为无参数m_pCommand-ActiveConnection = m_pConnection

43、;/非常关键的一句,将建立的连接赋值给它m_pCommand-CommandText = SELECT * FROM users;/命令字串m_pRecordset = m_pCommand-Execute(&vNULL,&vNULL,adCmdText);/执行命令,取得记录集。在这段代码中我们只是用Command对象来执行了SELECT查询语句,Command对象在进行存储过程的调用中能真正体现它的作用。3.直接用Recordset对象进行查询取得记录集(5)记录集的遍历、更新 根据我们刚才通过执行SQL命令建立好的users表,它包含四个字段:ID,username,old,birthd

44、ay以下的代码实现:打开记录集,遍历所有记录,删除第一条记录,添加三条记录,移动光标到第二条记录,更改其年龄,保存到数据库。 _variant_t vUsername,vBirthday,vID,vOld;_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(ADODB.Recordset);m_pRecordset-Open(SELECT * FROM users, _variant_t(IDispatch*)m_pConnection,true), adOpenStatic, adLockOptimistic, adCmdText);

45、while(!m_pRecordset-adoEOF) vID = m_pRecordset-GetCollect(_variant_t(long)0);/取得第1列的值,从0开始计数, /你也可以直接给出列的名称,如下一行 vUsername = m_pRecordset-GetCollect(username);/取得username字段的值 vOld = m_pRecordset-GetCollect(old); vBirthday = m_pRecordset-GetCollect(birthday); /在DEBUG方式下的OUTPUT窗口输出记录集中的记录 if(vID.vt != VT_NULL & vUsername.vt != VT_NULL & vOl

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服