温湿度测量系统设计(上位机软件设计)毕业设计_第1页
温湿度测量系统设计(上位机软件设计)毕业设计_第2页
温湿度测量系统设计(上位机软件设计)毕业设计_第3页
温湿度测量系统设计(上位机软件设计)毕业设计_第4页
温湿度测量系统设计(上位机软件设计)毕业设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温湿度测量系统设计(上位机软件设计)摘要本课题实现方法是上位机通过RS_485总线及规定的通信协议发出的命令发送给下位机,下位机再根据此命令解释成相应时序信号直接控制传感器。下位机不时读取设备状态数据,转换成数字信号反馈给上位机。上位机对接收到的数据经过处理,在上位机上显示和存储与数据库中等。同时上位机对用户进行管理,方便用户对采集到的数据进行查看及对历史数据的查询等。介绍了温湿度测量系统上位机的软件构成。用VISUALC作为开发平台,采用MFC类库,利用VC60基于对话框的模板,MICROSOFTACCESS作为后台开发数据库,并利用MSCOMM控件完成串口通信设计了一个实时监测上位机软件系统。本文从上位机软件出发,利用面向对象、数据库、串口通信等技术完成系统信息和数据存储、数据和曲线实时显示、历时查询、等功能,实现了上位机系统的监测任务。给出了软件的总体设计方案和各功能模块的设计,说明了该软件的主要功能,并给出了系统的运行界面和应用模式。关键词温湿度,数据采集,串口通信,MFC,上位机,MSCOMMTEMPERATUREANDHUMIDITYMEASUREMENTSYSTEMDESIGN(PCSOFTWAREDESIGN)ABSTRACTAPPROACHISPCTHROUGHRS_485BUSANDPROVISIONSOFTHECOMMUNICATIONPROTOCOLUNDERORDERSTOSENDOUTAMACHINE,LOWERLEVELCOMPUTERACCORDINGTOTHISCOMMANDTOEXPLAINAGAININTOCORRESPONDINGTIMINGSIGNALDIRECTLYCONTROLSENSORFROMLOWERLEVELCOMPUTEREQUIPMENTSTATEDATA,CONVERTEDINTODIGITALSIGNALFEEDBACKTOTHEPCPCDOCKINGRECEIVEDATAPROCESSED,INUPPERMACHINEDISPLAYANDSTORAGEANDDATABASEMEDIUMMEANWHILEPCUSERMANAGEMENT,THECONVENIENTUSERFORTHECOLLECTEDDATAINVIEWOFHISTORICALDATAANDTHEQUERYETCINTRODUCEDTHETEMPERATUREANDHUMIDITYMEASUREMENTSYSTEMOFSOFTWARECONSTITUTESUPPERMACHINEUSEVISUALCASADEVELOPMENTPLATFORM,USINGMFCLIBRARIES,USINGVC60DIALOGBASEDTEMPLATES,MICROSOFTACCESSASABACKGROUND,ANDBYUSINGTHEDEVELOPMENTOFDATABASEMSCOMMCONTROLDESIGNFORACOMPLETESERIALCOMMUNICATIONREALTIMEMONITORINGPCSOFTWARESYSTEMTHISPAPER,STARTINGFROMTHEPCSOFTWAREBYUSINGOBJECTORIENTED,DATABASE,SERIALCOMMUNICATIONTECHNOLOGYCOMPLETESYSTEMINFORMATIONANDDATASTORAGE,DATAANDCURVEREALTIMEDISPLAY,LASTEDINQUIRY,ANDOTHERFUNCTIONS,REALIZEDTHEPCSYSTEMMONITORINGTASKGIVENTHEGENERALDESIGNOFTHESOFTWARESOLUTIONSANDTHEFUNCTIONMODULEDESIGN,SHOWSTHESOFTWARESMAINFUNCTIONISPRESENTED,ANDTHEOPERATIONOFTHESYSTEMINTERFACEANDAPPLICATIONMODEKEYWORDSTEMPERATUREANDHUMIDITY,SERIALCOMMUNICATION,DATAACQUISITION,MFC,PC,MSCOMM目录摘要IABSTRACTII1绪论111课题意义及目的112课题主要研究的内容12面向过程与面向对象221面向过程与面向对象技术222面向对象的程序设计423本章小结53系统相关技术介绍631VISUALC开发平台6311WINDOWS编程模型6312VC应用程序创建过程7313VC集成开发环境介绍832数据库技术9321VC60开发数据库技术的特点9322SQL语言概述10323ADO数据库访问技术1233单片机与PC串口通信技术17331数据通信的概念17333串行通信的通信方式18334串行通信的过程及通信协议1934实时数据显示技术2035VC串口通信技术20331事件驱动方式21332查询方式2136MSCOMM控件串口编程基本流程23361在当前PROJECT中插入MSCOMM控件24362初始化并打开串口24363捕捉串口事项25364串口读写25365关闭串口2637本章小结264系统总体设计2741系统功能描述2742系统总体设计2743系统的通信协议28431模块接口协议格式28432上位机命令帧数据格式29333下位机上传数据帧格式2944本章小结305上位机软件设计与各模块的实现3151系统功能模块划分31511用户登录的设计31512系统软件程序设计3452相关数据库的设计39521数据库配置39522使用ADONET访问数据库39523VC到数据库的连接4053数据库中表的设计4354本章小结436结束语44致谢45参考文献461绪论11课题意义及目的在工农业生产、日常生活以及科学研究等诸多领域中,温度和湿度是两个很普遍而又非常重要的参数。因此,在这些领域中,对于这两个参数的测量与控制就显得尤为重要,特别是在纺织工业、冶金、化工、食品、温室种植,汽车制造以及气象预报和科研实验室等许多地方,都具有举足轻重的作用。传感器技术、微控制器技术和计算机技术日渐成熟之后,现代的温湿度测量与控制系统克服了以往系统中存在的一些问题,比如对环境温湿度的控制与调节以及数据的记录都由微控制器或计算机自动完成,且测得的数据也更加的精确,对环境温湿度的调节更具有实时性。12课题主要研究的内容木课题以WINDOWSXP为开发平台,以C为开发语言,以VISUALC60作为前台开发环境,MICROSOFTACCESS作为后台开发数据库。本文从上位机软件出发,利用面向对象、数据库、串口通信、多线程等技术,设计并实现温湿度测量系统的上位机应用软件。此软件具有温湿度的实时监测、历史记录查看及其数据库管理等功能,高度可视化、全中文界面、具有可扩展性,减少了人为的差错,它与通信模块和下位机等共同构成了温湿度测量系统。本论文的主要研究内容如下L学习和掌握C语言、VC开发平台、数据库技术、串口通信原理及多线程技术。2分析整个温湿度测量系统的总体框架及其功能特点。3根据用户需求设计出温湿度测量系统的上位机软件,给操作人员提供可视化界面,实现对温湿度的实时监测、历史记录查看及其数据库管理等功能。4对软件进行现场测试,以验证设计的可行性、准确性和优越性。2面向过程与面向对象21面向过程与面向对象技术传统的软件设计方法是面向过程的,所谓面向过程的程序设计是用结构化编程语句来编写程序。它把一个复杂的程序分解成若干个较小的过程,每个过程都可以单独地设计、修改、调试。其程序流程完全由程序员控制,用户只能按照程序员设计好的程序处理问题。它是一种自顶向下逐步求精的设计方法和单入口单出口的程序结构。面向过程是先分析出解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候按照步骤依次调用。面向过程程序设计涉及到结构分析与结构设计技术,它们在现在的应用中表现出了许多明显的缺点,用这些技术开发出的软件,其稳定性、可修改性和重用性都比较差。首先,结构分析与结构设计技术的本质是功能的分解,是围绕实现处理功能的过程来构造系统的。结构化方法强调过程抽象,将现实世界映射为数据流和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动的操作所加工,这是以过程为中心来构造系统和设计程序的。然而用户需求的变化大部分是针对加工的,因此这种变化对基于过程的设计来说是不可能实现的,用这利,技术设计出的系统往往是不稳定的,即用户需求的变化往往造成系统的较大变化,从而需要花费很大代价才能实现这种变化。其次,结构分析与结构设计技术清楚地定义了目标系统的接口。当系统对外界的接口发生变化时,结构分析与结构设计技术很难扩充新的接口,这样的系统较难修改和扩充。另外,结构化方法从本质上仍是把数据和操作分离,以至在实现阶段,一些具有潜在可重用价值的软件部分和具体应用环境密不可分。这些原因都使得结构分析与结构设计技术开发出的软件可重用性较差。为了克服传统的设计方法的缺点,逐渐创造出了新的软件开发技术,即面向对象技术。面向对象技术是一个非常实用而且强有力的软件开发方法,它具有许多特色,如符合人们通常的思维方式,高度连续性,重用性好,可维护性强等。面向对象的定义可以是面向对象对象类继承通信。一个面向对象的程序的每一成分应是对象,计算都是通过新的对象的建立和对象之间的通信来执行的。对象是面向对象开发模式的基本成分,是基本运行时的实体,每个对象可以用一组属性和它可以执行的一组操作来定义,就是封装了数据和操作的程序块,反映了面向对象的封装的特征。属性一般只能通过执行对象的操作来改变。操作就是成员函数,也叫方法,描述了对象执行的功能。若通过消息传递,还可以为其它对象使用。从用户的角度看,对象提供了所需要的行为。类是一组具有相同数据结构和相同操作的对象的集合,它可以被视为一个具有类似特性与共同行为的对象的模板,用来产生对象。对象就是类的实例,可以使用该类的成员函数,对象的状态包含在它的实例变量中。类的实现可使用能提供它所需要服务的其它类的实例,这些实例应该受到保护不被其它对象存取,包括了同一个类所生成的所有其它实例。把一组对象的共同特性加以抽象并存储在一个类中的能力,是面向对象技术最重要的一点是否建立了一个丰富的类库是衡量一个面向对象程序语言成熟与否的重要标志。继承是使用己经存在的定义作为基础建立起新定义的技术,类之间的继承关系是现实世界中遗传关系的直接模拟。封装使程序局部化,易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。新类的定义可以是现存类所声明的数据、定义与新类所增加的声明的组合,可以沿用现存类的某些特征。新类复用现存类的定义,而不要求修改现存类。现存类可以看成父类或者基类来引用,新类则相应得作为子类或者派生类引用,可以具有自己独立的属性和操作。使用继承设计一个新类,可以视为描述一个新对象的集合,它是现存类所描述对象集合的一个子集合。继承性是面向对象的最主要特点,是面向过程所不具备的。对象之间进行通信的一种构造叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息。消息在一个对象与另一个对象之间传送,发送给一个对象的消息定义了一个操作和一个参数表,并指定某一个对象。当一个对象接收到发送给自己的消息时,就会调用消息中指定的操作,并且将参数表中的值与形式参数结合起来。接收对象对消息的处理可能会改变对象的状态,即改变接收对象的属性,并发送消息给自己或者另外一个对象。因此,可以把这种消息的传递大致地看成传统的过程方法中的函数调用。接收到消息的对象经过解释,然后予以响应。这种通信机制叫做消息的传递。对象、类、继承及消息代表了面向对象开发模式,同时面向对象还具有其它的特点,如多态性。多态性技术主要在结构方面提供了灵活性,多态性有静态多态性和动态多态性两种。静态多态性表现为成员函数的重载,发生在一个类的内部而动态多态性表现为函数的重写,则反映在父类和子类之间。封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护、易于修改,减少了复杂性,支持开发人员建立灵活的可扩充的系统。面向对象相对于面向过程的方法有许多优点L面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。面向对象是以功能来划分问题,而不是步骤。功能上的统一保证了面向对象设计的可扩展性。2面向对象把问题域的概念直接映射到对象以及对象间的接口。而传统的方法忽略了数据和操作之间的内在联系,软件要解决的问题其实都是相互之间存在一定联系的事物组成的,每个具体的事物都具有行为和属性两方面特征,所以把表示事物静态属性的数据结构和描述事物动态行为的操作放在一起构成的整体才可以完整而自然地表示客观世界中的实体。3面向对象技术从分析到设计再到编码用的是一致的模型表示,具有高度连续性。4面向对象技术具有的继承性和封装性支持软件复用,易于扩充,能较好地适应复杂的大系统不断发展和变化的要求,要复用类,可以直接创建该类的实例,实现复用,还可以从该类派生出满足新需要的子类。继承性使得派生类不仅可以重复父类的数据结构和方法,而且可以在父类基础上修改和扩充,并且不会影响父类的使用。5面向对象技术把属性和方法封装在“对象”中,当外部功能发生变化时,保持对象结构的相对稳定,使改动局限于对象内部。类是独立性很强的模块,向类的实例发送消息就可以运行,并且观察它是否可以正确地完成要求的工作,对类的测试比较容易实现,发现错误也通常集中在类的内部,容易调试和维护。所以,用面向对象技术开发的软件,易于扩展、调试和维护。22面向对象的程序设计C就是典型的面向对象的编程语言,VISUALC就是WINDOWS环境下最主要的应用开发系统之一,它不仅是C语言的集成开发环境,还与WIN32紧密相连,因此,VISUALC可以完成各种应用程序开发,从底层的软件到顶层面向用户的软件。使用VISUALC环境开发应用程序缩短了开发时间,且界面友好,易于操作。在用VISUALC开发面向对象应用程序时,可以使用WINDOWS提供的WINDOWSAPIAPPLICATIONPROGRAMMINGINTERFACE函数,也可以直接使用MICROSOFT提供的MFCMICROSOFTFOUNDATIONCLASSES类库。API函数可以实现窗口创建、移动和修改,实现与设备无关的图形操作功能,实现与操作系统有关的多种功能,但是,利用API函数编程时,大量的代码需要用户自己编写,编程工作量很大。MFC类库则集成了大量已经预先定义好的类,是C十的类集,该类集以层次结构组织起来,其中封装了大部分WINDOWSAPI函数和控件,包含的功能涉及到整个WINDOWS操作系统。不仅为用户提供了WINDOWS图形环境下应用程序的框架,而且还提供了创建应用程序的组件。使用MFC类库和VISUALC提供高度可视的应用程序开发工具,使得现在应用程序的开发更简单,并可提高代码的可靠性与可重用性。MFC提供的类库让程序员把精力更多的放在功能拓展上,而不用太在意细节的实现,还允许在编程过程中自定义和扩展应用程序中的类,同时也允许调用WINDOWSAPI函数,使得应用程序以最小的规模实现最丰富的功能。MFC是C语言中的一个安全子集,简化了C开发基于WINDOWS的应用程序的工作,MFC精心设计的类库结构以一种软件包的形式把进行WINDOWS应用开发这一过程所需的各种程序模块有机地组织起来。MFC包含的类分层结构和功能具有可伸缩性,这使得MFC能跟上软件发展的潮流,并且保持了程序的向下兼容性,它还增强了对数据库应用程序的支持,可以使用ODBC类和高性能的ODBC驱动程序来访问提供ODBC支持的数据库中的数据,还可以通过数据访问对象,通过编程语言来访问和操纵数据库中的数据并管理数据库。目前的MFC包含了一百多个类,不同的类实现不同的功能,它们之间既有区别又有联系,这些类按照层次关系可以分为根类、窗口和控件类、绘图和打印类、应用程序体系结构类、文件和数据库类、INTERNET和网络工作类、OLE类以及调试和异常类等等。用户可以根据编程的需要调用相应的类,或者自己定义有关的类。VISUALC60为了减轻程序员的工作量,特别增强了应用程序向导的功能。应用程序向导为程序员提供了一个基于MFC的应用程序框架,只要在此基础上添加实现特定功能的代码即可。23本章小结本章主要介绍了面向过程与面向对象的技术,课题主要研究的内容及论文的整体框架,对论文的整体结构与内容有了一定的了解。3系统相关技术介绍31VISUALC开发平台二十世纪九十年代以来,伴随着计算机硬件技术的高速发展,WINDOWS操作系统风靡全球,形成了操作系统市场的垄断地位。WINDOWS应用软件也蓬勃发展,广泛应用于各个行业,包括教育领域。对于应用软件的开发,微软公司也提供了强大、复杂的开发工具VISUALC以后简称VC,借助其生成代码的向导,能快速生成可运行的WINDOWS应用程序的外壳。VC附带的基本类库,即MFC封装了大部分从前进行开发所用的API函数,己经成为许多C编译器进行WINDOWS开发的行业标准。1VISUALC介绍VISUALC有很多版本,本课题用的是VC60。VC60是MICROSOFT公司推出的一个基于WINDOWS系统平台、可视化的集成开发环境,它的源程序按C语言的要求编写,并加入了微软提供的功能强大的MFCMICROSOFTFOUNDATIONCLASS类库。MFC中封装了大部分WINDOWSAPI函数和WINDOWS控件,它包含的功能涉及到整个WINDOWS操作系统。MFC不仅给用户提供了WINDOWS图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准WINDOWS应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。(2)VISUALC的优势VC60的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C类层次结构,其中封装了大量的类及其函数,很多WINDOWS程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。311WINDOWS编程模型WINDOWS程序启动后,执行特定的任务,其中最重要的是创建应用程序的主窗口,这个主窗口需要自己的代码来处理WINDOWS发送给它的信息,所以WINDOWS程序是通过来自操作系统的消息来处理用户的输入。WINDOWS中的大部分消息是严格定义的,而且适用于所有的程序。例如,当创建一个窗口时,发送一个WM_CREAT消息当用户按下鼠标左键时,会发送一个WM_LBUTTONDWON消息。WINDOWS还对选定的窗口发送WM_COMMAND消息,以响应用户菜单的选择、对话框按钮的单击等操作,用户也可以定义自己的消息,并且能够由程序发送到桌面的任何窗口,接收响应。WINDOWS引入了一个名为图形设备接口GDI的抽象层。其中包含了一个重要的概念设备环境DC,它其实是一个对窗口的绘图属性保持跟踪的数据结构。WINDOWS提供视频和打印机驱动程序。当应用程序进行显示或打印任务时,就把设备环境映射到具体物理设备上,所以自己的应用程序不必知道系统连接的显卡和打印机的类型,不必进行硬件寻址,而只是调用GDI函数,发出适当的输入/输出指令即可。在进行WINDOWS编程时,可以使用大量已经建立的格式在资源文件中存储数据。链接程序把二进制资源文件与C编译程序的输出组合起来,生成一个可执行文件。资源文件可以包括位图、图标、菜单定义、对话框布局和字符串等等。一般情况下,使用所见即所得工具来编辑资源。例如,在布置一个对话框时,可以使用资源和可编辑框来选择需要在对话框中放置的元素按钮、列表框等,并且用鼠标来确定元素的位置和大小。312VC应用程序创建过程VC开发工具包含了两个完整的WINDOWS应用程序开发系统。一个是只使用WIN32API函数开发C语言的WINDOWS程序另一个是在MFC类库应用程序框架范围内的C编程。使用MFC类库编程接口也可以直接调用一些WIN32函数。本课题采用了第二种方法进行应用程序的开发。如无特殊说明,一般指基于MFC类库的开发。图31概括了VC应用程序创建过程。VISUALCRESOURCEHWINDOWS头文件资源脚本文件(RC)资源编译器源文件位图、图标和其他资源资源文件(RES)运行时头文件MFC头文件编译器OBJ文件链接程序可执行文件WINDOWS运行库和MFC库资源编译代码编译图31313VC集成开发环境介绍VC十被称为可视化集成开发环境是由于在VC中能够执行如下的功能第一,生成不用编写代码的起始应用程序;第二,通过许多不同方法查看项目文件;第三,编辑源文件和包含文件;第四,建立应用程序的可视界面菜单和对话框;第五,编译和链接;第六,运行时调试应用程序。下面介绍几个VC中的常用组件L应用程序向导APPWIZARD。APPWIZARD是一个标准的C源代码生成器。它通过一系列的对话框来提示用户输入所需创建的程序的信息。然后APPWIZARD生成一些文件,这些文件构成程序的框架。由APPWIZARD生成的程序是一个基本的WINDOWS程序,它生成的是基本代码,用户应在此基础上完善自己内容。2类向导CLASSWIZARD。CLASSWIZARD是一个交互式工具,主要进行类代码的维护。用来建立新的类,定制类,把消息映射为类成员函数,或者把控制框映射为类变量成员。在开发程序时,可用CLASSWIZARD建立程序所需要的类,包括消息处理和消息映射例程用于定位处理消息的代码。3资源视图RESOURCEVIEW。RESOURCEVIEW包含了项目中所有的层次列表,用于编辑和管理应用程序中用到的各种可视元素,包括快捷键、对话框、图标、菜单、字符串、工具栏等。4类视图CLASSVIEW。CLASSVIEW用于显示项目中所有的类信息,主要是定制现有的类和建立新的类,并在每个类中,显示了成员函数和成员变量,还可以完成添加、删除、定位的功能。5文件视图FILEVIEW。FILEVIEW视图同CLASSVIEW非常相似,将项目中的所有文件C源文件、头文件、资源文件、HELP文件等以视图的形式分类显示。在视图中可以显示和编辑源文件和头文件。32数据库技术系统开发平台选择VC,它是目前比较流行的可视化开发环境之一,集成了一些实用的组件,方便了编程工作。利用ADO技术可以方便的连接数据库,并通过SQL语言完成对数据的相关操作。321VC60开发数据库技术的特点VC作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。VC作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用VC开发应用程序的过程中,系统生成了大量的各种类型的文件,为今后系统开发、调试奠定了基础。VC的MFC类库实际上是WINDOWS下编程的一套最为流行的类库。MFC的框架结构大大方便了编程工作,它合理的封装了WIN32API函数,并设计了一套方便的消息映射机制,这套机制本身比较庞大和复杂。VC60提供了多种数据库访问技术ODBCAPI、MFCODBC、DAO、OLEDB、ADO等。L简单性VC60中提供了MFC类库、ATL模板等一系列工具,用于帮助程序员快速的建立应用程序,大大简化了应用程序的设计过程。使用这些技术,只需要编写很少的代码就可以开发一个数据库应用程序。2灵活性VC60提供的开发环境可以使程序员根据自己的需要设计应用程序的界面和功能,VC60还提供了丰富的类库和方法。3访问速度快为了解决ODBC开发数据库应用程序访问数据库速度慢的问题,VC60提供了新的访问技术OLEDB和ADO,它们都是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,这大大提高了对数据库的访问速度。本课题使用的就是ADO访问方法。4可扩展性VC60提供了OLE技术和ACTIVEX技术,这种技术可以增强应用程序的能力。这两种技术可以使应用程序组件化,增强程序的可扩展性。5访问不同种类数据源传统的ODBC技术只能访问关系型数据库,在VC60中,提供了OLEDB访问技术,不仅可以访问关系型数据库,还可以访问非关系型数据库。322SQL语言概述SQLSTRUCTUREDQUERYLANGUAGE数据库结构化查询语言出现于20世纪70年代中期,是一种十分重要的标准化数据库语一言。目前,各种数据库管理系统几乎都支持SQL或提供SQL接口。SQL数据库结构化查询语一言集数据定义、数据查询、数据操纵和数据控制功能于一体,数据定义功能是指定义数据库的结构,包括定义基本表、定义视图和第一索引三部分,数据操纵是指对关系中的具体数据进行增、删、改等操作,数据控制是指对数据访问权限的授予或撤销。目前,绝大多数流行的关系型数据库管理系统都采用了SQL语一言标准,本文中用ADO访问ACCESS数据库进行的相关操作就使用了SQL语言。下面介绍SQL语言的常用命令及特点。LSQL语一言常用命令1SQL的查询功能,SQL查询语句也称为SELECT命令,其功能是从一个或多个表中检索数据。基本格式为SELECT查询目标FROM表1,表2,WHERE条件表达式GROUPBY分组列名HAVING组选择条件表达式ORDERBY排序项序其中SELECT用来说明要查询的数据项;FROM说明要查询的数据来自哪个或哪些表;WHERE说明查询的条件;GROUPBY用于对查询结果进行分组;HAVING短语必须跟随GROUPBY使用,用于限定分组满足的条件;ORDERBY短语用来对查询的结果进行排序。2SQL的数据定义功能,SQL数据定义功能包含了表结构的定义、修改与删除以及视图的创建与删除。其中表结构的定义格式为CREATETABLE,NULL/NOTNULLCHECKERRORDEFAULTPRIMARYKEY/UNIQUEREFERENCESTAG,少说明NULL/NOTNULL表示定义该字段是否允许空值。CHECKERROR表示定义字段规则及违反规则后的提示信息。DEFAULT表示指定该字段值默认值。PRIMARYKEY/UNIQUE表示主键或唯一索引。REFERENCESTAG表示定义参考完整性。3表结构修改格式为ALTERTABLEADD/ALTERCOLUMN,NULL/NOTNULLCHECKERRORDEFULTPRIMARYKEY/UNIQUEREFERENCESTAG表示要添加一个字段,字段名1是给出要添加字段名字。ALTERCOLUMNOPEN“PROVIDERMIEROSOFTJETOLEDB40;DATASOURCETESTMDB“,”“,”“,ADMODEUNKNOWN/连接数据库/上面一句中连接字串中的PROVIDE是针对ACCESS2000环境的,对于ACCESS97,需要改为PROVIDERMIEROSOFTJETOLEDB35L;CATEH_COM_ERRORE/捕捉异常CSTRINGERRORMESSAGE;ERRORMESSAGEF0RMAT“连接数据库失败RN错误信息S”EERRORMESSAGEAFXMESSAGEBOXERRORMESSAGE;/显示错误信息在这段代码中是通过CONNECTION对象的OPEN方法来进行连接数据库的,下面是该方法的原型HRESULTCONNECTION15OPEN_BSTR_TCONNECTIONSTRING,_BSTR_TUSERID,_BSTR_TPASSWORD,LONGOPTIONS;上述函数中参数CONNECTIONSTRING为连接字串参数USERID是用户名;参数PASSWORD是登陆密码;参数OPTIONS是连接选项,用于指定CONNECTION对象对数据的更新许可权,一般情况下OPTIONS可以是如下几个常量ADMODEUNKNOWN缺省当前的许可权未设置。ADMODEREAD只读ADMODEWRITE只写ADMODEREADWRITE可以读写ADMODESHAREDENYREAD阻止其它CONNECTION对象以读权限打开连接ADMODESHAREDENYWRITE阻止其它CONNECTION对象以写权限打开连接ADMODESHAREEXELUSIVE阻止其它CONNECTION对象以读写权限打开连接ADMODESHAREDENYNONE阻止其它CONNECTION对象以任何权限打开连接下面给出一些常用的连接方式供大家参考第一种,通过JET数据库引擎对ACCESSZOOO数据库的连接M_PCONNEETIONOPEN“PROVIDERMICROSOJLJOROLEDB4O;DATASOUREECTESTMDB”,“”,“”,ADMODEUNKNOWN;第二种,通过DSN数据源对任何支持ODBC的数据库进行连接M_PCONNEETIONOPEN“DATASOUREEADOTEST;UIDSA;PWD;”,“”,“”,ADMODEUNKNOWN;第三种,不通过DSN对SQLSERVER数据库进行连接M_PCONNECTIONOPEN“DRIVERSQLSERVER;SERVER127001;DATABASEVCKBASE;UIDSA;PWD139”,“”,ADMODEUNKNOWN;其中SERVER是SQL服务器的名称,DALABASE是库的名称。CONNECTION对象除了OPEN方法外还有许多方法,比如说CONNECTIONTIMEOUT与STATE。CONNECTIONTIMEOUT用来设置连接的超时时间,需要在OPEN之前调用,例如M_PCONNECTIONCONNECTIONTIMEOUT5;/设置超时时间为5秒M_PCONNECTIONOPEN“DATASOUREEADOTEST”,“”,“”,ADMODEUNKNOWN;STATE属性指明当前CONNECTION对象的状态,0表示关闭,1表示己经打开,可以通过读取这个属性来作相应的处理,例如IFM_PCONNECTIONSTATEM_PCONNECTIONCLOSE;/如果己经打开了连接则关闭它。33单片机与PC串口通信技术331数据通信的概念在实际工作中,计算机的CPU与外部设备(简称外设)之间常常要进行信息交换;一台计算机与其他计算机之间也往往要交换信息。数据通信就是以传送数据为业务的通信。即是说,通信系统所操纵的对象是数据而不是别的。数据通信方式由两种,即并行数据通信和串行数据通信。通常根据信息传递的距离决定采用哪种通信方式。例如,在PC机与外部设备(如打印机等)通信时,如果距离小于30米。可采用并行数据通信方式;当距离大于30米时,则要采用串行数据通信方式。8051单片机具有并行和串行两种基本数据通信方式。两种通信方式的原理、优点、缺点、应用对比列举如下表表31两种通信方式的比较并行数据传送串行数据传送原理各数据位同时传送数据位按位顺序进行优点传送速度快、效率高最少只需要一根传输线即可完成成本低缺点数据位数传输线根数成本高速度慢应用传送距离0VRESPONSEM_COM1GETINPUT;/READ/对数据进行其他处理/接收到字符,MSCOMM控件发送事件/处理其他MSCOMM控件VOIDCMAINFRAMEONCOMMSEND/准备需要发送的命令,放在TXDATA中CBYTEARRAYARRAY;ARRAYREMOVEALL;ARRAYSETSIZECOUNT;FORI0;IGETDLGITEMTEXTIDC_COMBO_SAVE,TEMPIFTEMPCOMPARE“文本“0TEMPEMPTYCFILEFPIFFPOPENFILENAME,CFILEMODECREATE|CFILEMODEWRITE|CFILEMODENOTRUNCATE,NULLAFXMESSAGEBOX“不能打开保存文件“FPCLOSERETURNFPSEEKTOENDCTIMETCTIMEGETCURRENTTIMETEMPFORMAT“时间D年D月D日D时D分D秒“,TGETYEAR,TGETMONTH,TGETDAY,TGETHOUR,TGETMINUTE,TGETSECONDFPWRITETEMP,TEMPGETLENGTHTEMPEMPTYTEMP“数据内容“FPWRITETEMP,TEMPGETLENGTHTEMPEMPTYFPWRITESTRDATA,STRDATAGETLENGTHTEMPFORMAT“数据长度D字节。“,STRDATAGETLENGTHFPWRITETEMP,TEMPGETLENGTHTEMPEMPTYFPWRITE“RN“,2ELSECTIMETTCTIMEGETCURRENTTIMECSTRINGSTRTEMPSTRTEMPFORMAT“D年D月D日D时D分D秒“,TTGETYEAR,TTGETMONTH,TTGETDAY,TTGETHOUR,TTGETMINUTE,TTGETSECONDTRYTHISM_DBOPEN“TEMPMDB“IFFLAGSTHISM_PRSOPENAFX_DAO_USE_DEFAULT_TYPE,“SELECTFROMSEND“,NULLTHISM_PRSADDNEWTHISM_PRSSETFIELDVALUE“时间“,STRTEMPGETBUFFER0THISM_PRSSETFIELDVALUE“数据“,THISM_SENDGETBUFFER0THISM_PRSUPDATEIFFLAGRTHISM_PRSOPENAFX_DAO_USE_DEFAULT_TYPE,“SELECTFROMRECEIVE“,NULLTHISM_PRSADDNEWTHISM_PRSSETFIELDVALUE“时间“,STRTEMPGETBUFFER0THISM_PRSSETFIELDVALUE“数据“,THISM_RECEIVEGETBUFFER0THISM_PRSUPDATETHISM_PRSCLOSECATCHCDAOEXCEPTIONE/DISPDAOEXCEPTIONEAFXMESSAGEBOX“不能打开数据库“THISM_DBCLOSE串口参数设置程序VOIDCMYDLGONPAINTCRECTRECTGETDLGITEMIDC_STATIC1GETWINDOWRECTSCREENTOCLIENTRECTCSTRINGTABSTR“INTI0,J0,K0INTCOUNTCSTRINGTEXT“IFSTEPM_COMMGETPORTOPENAFXMESSAGEBOX“COM端口还没有打开请先设置参数,然后再打开“RETURNTHISUPDATEDATATRUEIFTHISM_SENDISEMPTYAFXMESSAGEBOX“请在发送区输入数据“RETURNIFCBUTTONTHISGETDLGITEMIDC_CHECK_SAVEGETCHECK1THISSAVETHISM_SEND,S/字符转十六进制IFCBUTTONTHISGETDLGITEMIDC_CHECK_HEXGETCHECK1THISM_SENDMAKEUPPERINTSTRLENTHISM_SENDGETLENGTHFORINTI0IM_SENDGETATI0IFTHISM_SENDGETATIA/AFXMESSAGEBOXTHISM_SEND/INTCOUNTTHISM_SENDGETLENGTHCBYTEARRAYARRAYARRAYREMOVEALLARRAYSETSIZECOUNTFORINTI0IM_SENDITHISM_COMMSETOUTPUTCOLEVARIANTARRAYTHISM_SENDEMPTYTHISUPDATEDATAFALSE52相关数据库的设计521数据库配置本系统直接采用了ACCESS文件的相对路径来实现读取数据库的功能。ACCESS是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。ACCESS数据库有一定的极限,它本身并不是一个数据库服务器16,对于数据庞大的情况下,ACCESS本身不是一个好的选择。SQLSERVER是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比ACCESS要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。另外要考虑的是数据库的安全性问题。ACCESS比起SQLSERVER而言总的安全性能要差。但是从应用的角度而言,ACCESS数据库易于使用,而且在创建和配置上ACCESS数据库都比SQLSERVER要容易。所以本系统选用了ACCESS2000作为后台数据库。522使用ADONET访问数据库ADONET(ACTIVEXDATAOBJECTS)是最新的数据库访问技术,可以说是访问SQLSERVER数据库和ODBC数据库的最佳解决方案。ADONET的优势为A)同样的ADONET访问技术可以用于本地、网络和INTERNET数据库的访问。B)ADONET中的数据集可以以XML格式传递给相应的应用程序连接。C)对XML的支持是内置的,因此ADONET有很多灵活性,适合于访问VISUALBASICNET中的各种不同的数据类型。D)ADONET非常简单,编程模型在所有典型的数据访问中都是统一的。ADONET数据库访问类的主要对象原则上有两大类A)用于连接数据库和传递SQL命令的类。CONNECTION其职责是根据用户提供的连接串,与数据库连接。COMMAND其职责是根据用户所提供的SQL语句和C向数据库传递命令。B)用于接收C命令所返回的记录的类。DATAREADER以只能向前、只读的数据流方式接收C返回的记录。DATASET使用DATASET一般就要使用数据适配器DATAADAPTER,可以用数据适配器的FILL方法将用户的SQL语句所返回的记录填充到DATASET中,而DATASET是本地计算机内存中一块被命名的地方。523VC到数据库的连接开发一个数据库应用软件,正确的连接到数据库是全部工作的基础。ADONET中负责连接数据库的对象是CONNECTION。如果访问的是SQLSERVER数据库,它的前缀为SQL(SQLCONNECTION)。如果访问的是其他数据库,它的前缀为OLEDB(OLEDBCONNECTION)。使用前应先导入SYSTEMDATASQLCLIENT对于SQLSERVER数据库或SYSTEMDATAOLEDB(对于其他数据库)。确定连接字符串连接字符串是访问数据库的基本信息,如果访问的是SQLSERVER数据库,使用的连接对象是SQLCONNECTION,其连接字符串主要有4项用户名、口令、数据库名、服务器名。格式为UID用户名;PWD口令;DATABASE数据库名;SERVER服务器名不区分大小写,但等号,分号,引号必须为英文状态下输入的。如果访问的不是SQLSERVER数据库,或访问的是SQLSERVER数据库而使用的连接是OLEDBCONNECTION,则连接串还应说明数据库的提供者。其格式变化为PROVIDER数据库提供者;USERID用户名;PASSWORD口令;INITIALCATALOG数据库名;DATASOURCE服务器名对于ACESS数据库(无服务器)格式为PROVIDER数据库提供者;USERID用户名;PASSWORD口令;DATASOURCE数据库名不区分大小写,但等号,分号,引号必须为英文状态下输入的。数据库连接对象CONNECTION的定义定义格式为DIM|PUBLIC|PRIVATE自定义的连接变量名ASOLEDBCONNECTION(1)SQL的组成SQL是一个几乎所有关系数据库管理系统都支持的一种结构化查询语言。由4部分组成。这4部分是数据控制语言(DCL),数据定义语言(DDL),数据操纵语言(DML)及一些的语言元素。ADCL数据控制语言,用来进行安全性管理,可以确定哪些拥护可以查看或者更改数据。这些语句包括GRANT、DENY、REVOKE等。BDDL数据定义语言,用来执行数据库的任务,创建数据库及数据库中的各种对象,这些语句包括CREATE、ALTER、DROP等。CDML数据操纵语言,用来在数据库中操纵各种对象,检查和修改数据,这就是最常用的SELECT、INSERT、UPDATE、DELETE语句。DSQL的附加语言元素,这些元素包括变量、运算符、函数等。(2)SQL数据库中表的操作在做数据库开发时,对数据库本身应该关心的是服务器名称、数据库中的表、表中有那些字段。这些字段的数据类型和每条记录的值。SQL语句可以创建数据库、表及对数据库中的表及表中的字段和记录进行增、删、改、查等多种操作。A给表增加记录使用INSERT语句可以向表中加入新的数据记录,其格式如下INSERTINTO表名(字段列表)VALUES(值1,值2,值N)B修改表中的数据记录对已存在的表中的数据记录,SQL语言使用UPDATE语句来进行更新。UPDATE语句不加入新记录,也不删除记录,仅将现存的结果改动的记录更新。其语法格式为UPDATE表名SET列1值1,列2值2,列N值NC删除表中的数据记录SQL使用DELETE语句删除表中的指定行,使用TRUNCATE来删除表中的全部记录。如果DELETE语句不指定删除条件,也将会删除表中的全部记录。在删除全部记录时,DELETE语句与TRUNCATE的区别是对于EDENTITY列(自动增量列),使用TRUNCATE删除全部记录,同时复位IDENTITY列;而不带条件的DELETE语句,删除全部记录不复位EDENTITY列。DELETE语句的格式为DELETEFROM表名WHERE条件TRUNCATE的格式为TRUNCATETABLE表名D运用SELECT语句对表中记录进行查询SELECT语句可以说是使用最频繁的SQL语句,它可以实现对数据库的查询操作,这可以对查询结果进行分组统计、合计、排序等,也可以用SELECT语句的返回值生成另一个新表。其简单语法如下SELECT字段名表FROM表名WHERE条件若要取全部字段SELECTFROM表名WHERE条件(3)SQL语句的执行COMMAND对象在ADONET中的职责就是利用建立好的连接为用户向数据库发布SQL命令。COMMAND对象的执行除了执行数据阅读器EXECUTEREADER外,还有返回单个值的执行EXECUTESCALAR、非查询执行EXECUTENONQUER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论