1、摘 要当今社会进入了计算机时代,信息就是财富,科学技术成为第一生产力。在计算机技术的不断发展中,人们越来越认识到计算机在当今社会中的巨大作用。电子计算机在信息处理方面表现出来的巨大优势,使得计算机被应用到现代社会的方方面面,使得计算机成为现代社会不可缺少的一部分。也就是这个原因,为了对奇特的资产进行更加有效、方便的管理。本系统力求概念清晰、通俗易懂、操作容易、功能强大、实用性强。使得本系统在对设备资产进行管理的过程中,尽可能的发挥它的作用。当然,为了在管理设备资产时,不使单位账目发生严重错误,本系统力求最好的稳定性,最强的安全性,尽可能少的程序Bug。本系统设计主要从设备信息输入与修改、设备信
2、息查询、信息汇总与报表打印三大功能入手。设备信息输入与修改就是设备基本信息的导入与修改,添加设备相关信息至后台数据库,以及从后台数据库调用相关信息;信息查询是设备的各类查询以及设备基本参数及外形图展示,以及设备折旧,设备维修,设备删除等相关信息的查询;信息汇总与报表打印子系统,输出该管理系统中设备相关信息。系统主界面主要是采用delphi软件开发平台设计而成, 采用Access2000数据库平台,采用ADO数据库访问技术访问数据库,完成采用windos传统界面设计方式设计而成,最后介绍个人在设计过程的心得体会。关键词:ERP 软件工程 Delphi 数据库Based on Delphi env
3、ironment under equipment ERP management systemAbstractNow the society entered the Computer Age, the information is the wealth, the science and technology becomes the first productive forces. In in computer technology unceasing development, the people more and more realize to the computer in now soci
4、etys huge function. The electronic accounting machine the huge superiority which displays in the information processing aspect, causes the computer to apply to the modern societys aspects, enables the computer to become a modern society essential part. Also is this reason, in order to effectively ca
5、rries on, the convenient management to the unusual property.。The concept of the system to clear and simple, easy to operate, powerful, practicality strong. Makes equipment for the system in the asset management process, as the play its role. Of course, in order to the management of equipment assets,
6、 the accounts do not make serious errors units, the best system to the stability of the strongest security, minimal procedures inside. Information systems design mainly from the importation of equipment and modifications, equipment information enquiries, information aggregation and print statements
7、by the three major functions. Information is imported equipment and equipment modifications to the basic information and get modified to add background information related equipment database, and access relevant information from the background database and repair; Information is the basic equipment
8、of enquiries and equipment parameters and shape of the display, as well as equipment depreciation, equipment maintenance, equipment and other relevant information to the inquiry; Information aggregation and statements printing subsystem, and the output of the management information system equipment.
9、 The system is mainly used delphi interface design based software development platforms, using Access2000 database platform using ado database access technology database completed application form designed by windos traditional interface design, the final presentation of the experiences of individua
10、ls in the design process.Keywords: ERP Software Engineering Delphi Database 目 录第一章 绪论1第一节 应用背景及系统简介1第二节 需求分析2第三节 相关领域介绍3第二章系统设计16第一节 系统总体设计16第二节 系统详细设计17第三章 关键技术的实现21第一节 利用ADO访问数据库21第二节 数据的查询25第四章 系统使用说明27第一节 界面组成27第二节 系统操作说明29第五章 结束语30参考文献31附 录32致 谢3939第一章 绪论第一节 应用背景及系统简介一、应用背景设备管理是企业的一项重要工作,一个企业的良
11、性发展必然要涉及到企业设备的有效管理,对于那些技术装备密集型大型企业,设备的管理显得尤其重要,大型企业因为各种设备资产规模庞大,分布范围广,故设备的管理工作需要大量的人力和物力,而且手续繁琐,工作量大,时间长,容易出现差错。企业中设备管理的主要任务是建立健全的设备管理制度,合理配备并有效事业设备 资产,提到设备资产的使用效益,保证设备的安全和完整,做到帐实相符。传统的设备管理模式无论从质量还是效率上,都难以使用经营管理新形式的需要,因此寻找一种简便,高效的管理手段成为必然。设备管理系统既可独立使用,也可与其他系统配合使用(如,BOM管理、工艺管理等),形成完整的 生产管理系统,它也是一个完整的
12、ERP系统中不可缺少的一部分。二、系统简介本系统是针对当前企业中各类设备所进行的管理和核算,主要包括设备的输入,设备的修改,设备的查询,设备的统计报表,以及设备各种规格参数及外型展示和各类报表输出等内容。能够反映企业设备的增加,减少以及其他变动并输出相应的增减变动报表,同时完成设备的各类汇总和统计,折旧等处理要求。通过使用本设备管理系统,应该能够做到如下几点:(一)简化了设备管理手续繁琐问题,提高效率。(二)节省设备管理的人力,减少支出成本。(三)减少、排除设备管理的混乱,责任不名确的现象。(四)对于设备的管理,达到规范化的程度,为整个企业的云做提供良好的环境。 第二节 需求分析一、功能要求设
13、备管理系统需要满足来自三方面的需求,这三个方面分别是设备信息输入与修改、设备信息查询、信息汇总与报表打印。设备信息输入与修改就是设备基本信息的导入与修改,添加设备相关信息至后台数据库,以及从后台数据库调用相关信息并修;信息查询是设备的各类查询以及设备基本参数及外形图展示,以及设备折旧,设备维修,设备删除等相关信息的查询;信息汇总与报表打印子系统: 输出该管理系统中设备相关信息。二、性能要求本设备管理系统能性能上应达到以下几个要求1各子系统的数据格式必须统一,实行数据共享,并留有接口,能方便地进行数据格式转换。2设计方案必须提供较齐全的功能,并留有接口,便于二次开发和升级维护。3设计方案必须考虑
14、设备管理的自身的特点,通用性强,系统故障时仍可在计算机上采用手工操作。4设计方案必须使系统的开发周期短、开发成本低。5设计方案必须,优化此系统响应时间,用户帮助设施,出错信息处理和命令交互等,使系统具有良好的人机交互界面。三、运行环境要求(一) 系统软件需求1开发环境:Microsoft windows XP;Baland Delphi 7.0;Access 2000;Photoshop CS2. 运行环境:Microsoft Windows NT 4.0系统或以上配置;(二) 系统硬件需求Intel Pentium III系列处理器或者更高配置;64M SDRAM内存或者更高;集成显示芯片或
15、更高配置;1G硬盘或者更高第三节 相关领域介绍一、ERP概述 (一)ERP系统概述ERP首先是一种企业经营管理的思想,是美国著名的计算机技术咨询和评估集团Gartner Group INC在20世纪90年代初提出的一整套企业管理系统体系标准,其实质是在MRP(Manufacturing Resources Planning,制造资源计划)基础上进一步发展而成的面向供应链的管理思想。从软件产品的开发的角度来看,ERP系统是综合应用了客户机子/服务器(C/S)体系、关系数据库结构、面向对象技术(OOP)、图形用户接口(GUI)、第四代语言(4GL),网络通信等信息产业成果。从企业管理角度来看,ER
16、P是整合了企业管理理念、业务流程、基础数据、人力物力、计算机硬件和软件于一体的企业资源管理系统。(二)ERP的发展历史从对制造企业管理生产过程的库存和采用原料的计划管理开始,随后引入了MRP理论对生产过程进行管理,以及此后成本和财务核算,供应链的管理,ERP系统理论的形成和发展大致经理了五个历史阶段。1.第一阶段,20世纪40年代的库存控制订货点法订货点的基本原理。领料时,某一物料在永续盘存记录上的库存下降到预先确定的订货水平时,就发出补货订单,这是一种按照过去的库存经验来预测未来的物料需求方法,订货点法依靠对库存补充 周期内的需求量预测,并保留一定的安全库存设备来确定订货点,安全库存设置的
17、目的是为了防止需求的波动造成生产中的缺料问题。2.第二阶段,20世纪60年代的开式MRP所谓开式MRP(Material Reguirement Planing)又称时段式MRP计划,是20世纪60年代初在订货点计划方法理论的基础上发展起来的,初期在订货点计划方法理论的基础上发展起来的,初期的 MRP的原理是利用 主生产计划MPS(Master Production Schedule)、物料清单BOM(Bill Of Material),现有库存量及未交付订单等各种资料,经计算而得到相关物料的需求数量,并以此为据进行采购和生产过程。它以相关 需求为理论基础,以投入量最少投入时间最迟为计划原则,
18、根据独立需求产品的交付时间和数量来决定所有零组件和原材料的投入和采购,出产的时间和数量,由于在计算的管理中未加入控制反馈过程可称之为开式MRP。3.第三阶段,20世纪70年代,闭式MRP单纯的MRP未考虑生产能力是否满足,没有于独立需求的可行性进行验证,因此,计算出来的物料需求有可能因设备和工时的不足而没有能力生产,或者因远材料的不足而无法生产,因此开式MRP不便于实际应用,也得不到真正可行计划的最佳详细计划,所以20世纪70年代后期,在单纯的MRP基础上加如了如下内容:(1)加入了主生产计算,用来进行预测,需求管理获得可靠,稳定的产品成品信息。(2)在MRP之后加入了车间现在管理,采购等功能
19、,同时也将计划执行的结果来及时反馈到上一级部门。这种就是闭环的MRP系统,运行”计划-执行-评估和回馈-计划”过程有效的处理生产过程中生产资源的规划与控制问题。4.第四阶段,20世纪80年代MRP II在闭环MRP系统中,生产计划控制依据主生产计划展开执行实现了对企业制造物流的有效控制和管理,但是未包括同物流密切相关的资金流的控制和管理。对资金流的控制和 管理由企业财务人员和特定的系统另行管理,这就造成了数据的重复和不一致,对企业资金帐目不能有效的反映企业实际的运营状况。 因此20世纪80年代初,有关专家在闭环MRP的基础上引入了财务和成本核算系统,与生产子系统结合发展出MRP II系统。5、
20、第五阶段,20世纪90年代的企业资源计划ERP20世纪90年代中期,随着制造企业国际化趋势的需要,各个MRPII软件厂商不断的在自己产品中加入了新的内容,其计划内容从原来的起来制造范围之内扩展到整个企业,甚至企业之外与之相关的字遇按,MRP II逐渐演变为功能更完善,技术更先进的制造企业的计划和控制系统,美国的著名咨询公司Gartner总结了MRP II软件的发展趋势,提出了企业资源计划的概念,很快被学术界承认,逐步扩大使用。Gartner Group提出了ERP具备的功能标准应包括四个方面:(1)超越MRP II范围的集承功能。(2)支持混合式的制造环境。(3)支持能动的监控能力,提高业务效
21、绩。(4)支持开放的C/S环境。ERP是对MRP的扩展,从本质上看,ERP仍然是以MRP为核心,但在功能和技术上却远远超过了传统的MRP。(三)ERP发展方向ERP的基本思想是将企业的业务流程看作是一个紧密联接的供应链,其中包括供应商、制造工厂、分销网络和客户等;将企业内部划分成几个相互协同作业的支持子系统,如财务、市场营销、生产制造、质量控制、服务维护等。但是,在实际实施ERP系统的时候,一方面,受到企业管理基础的影响,管理人员的素质和高层领导的参与程度在很大程度上决定了系统实施的成败,而ERP软件系统本身并不是绝对的“药到病除”;另一方面,ERP系统往往跟不上计算机技术的发展,而使得客户怀
22、疑其先进性,如:早期强调的客户机/服务器模式,已经被日益高涨的电子商务所淹没。一方面,企业正在将自身业务从纵向的、高度集成的、注重内部功能优化的大而全模式向更灵活、更专注于核心竞争力的实体模式转化,从而企业可以在整个供应链和价值网络中优化其经济和组织结构。一个首要的优化方式就是不仅注重B2B或B2C电子商务模式,而且更注重协作商务(c-commerce)过程。协作商务是指在企业内部员工之间、业务伙伴之间、企业与客户之间通过电子化方式协同工作的商业社区。这个商业社区可以是某个行业或行业段,或供应链或供应链段。在协作社区内,企业不仅仅依靠各自产品或服务的质量、成本和交付速度来竞争,而且还需要依赖为
23、其它协作伙伴提供的信息质量获得竞争优势。这一变化使得企业客户或解决方案供应商需要重新考虑和设计企业管理系统,以便涵盖更多的外向型系统元素。传统ERP系统不得不从系统结构和业务功能等诸多方面彻底改变,于是,新一代的管理系统应运而生,这就是ERP II。其实,ERP II定义是一种新的商业战略,它由一组行业专业化的应用组成,通过它们建立和优化企业内部和企业之间流程、协作运营和财务运作流程,从而将客户和股东价值优化。市场研究指出从现在到2005年,企业需要在协作社区内为协作商务而发布关键业务信息的需求将会使得ERP II逐步代替ERP系统成为企业内部和企业之间业务流程管理的首选。传统ERP系统注重制
24、造业企业的资源计划和库存准确率,同时也注意到了企业的业务可见度。后续扩展的ERP需求使一些非制造业企业也采用ERP系统作为后台财务处理系统。但由于企业客户对供应链管理SCM、客户关系管理CRM和电子商务功能等新功能的要求不断出现,一些ERP厂商为应对这方面的需求而推崇所谓的EAS企业应用套件。但是EAS那种在企业内对全部的人提供全部的事的方式并不适用未来的企业对专注和外部联结性的强烈需求。ERP II的定义强调未来的企业注重深度行业专业分工和企业之间的交流,而不仅仅是企业业务过程管理。ERP II系统的特征ERP II系统包含6个基本特征,分别从业务、应用和技术方面定义了其战略取向:(1)ER
25、P II的作用:从传统ERP的资源优化和业务处理扩展到利用企业间协作运营的资源信息,并且不仅仅是电子商务升蓝软件公司模式的销售和采购;(2)领域:ERP II的领域已经扩展到非制造业;(3)功能性:超越传统通用的制造、分销和财务部分,而扩展到那些针对特定行业或行业段业务;(4)业务处理:从注重企业内部流程管理发展到外部联结(6)系统结构:与单调的ERP系统结构不同,ERP II系统结构是面向Web和面向集成设计的,同时是开放的、组件化的。(6)数据处理方式:与ERP系统将所有数据存储在企业内部不同,ERP II面向分布在整个商业社区的业务数据进行处理。可以看出,除了系统结构的不同之外,ERP
26、II的这些特征代表了传统ERP的扩展。下面的对比表清晰地展示了从ERP到ERPII的发展趋势,另外也从技术层面说明了ERP和ERP II的不同之处。ERPERP企业内部管理优化作用参与价值链/协作商务制造业/分销领域所有行业制造、销售、财务等功能跨行业、行业段和特定行业内部业务处理外部联结封闭、单一整体结构开放、组件化内部产生和使用数据内外部发布和采用在技术上,采用了Java和EJB技术,支持Windows NT/2000、Unix和OS/400甚至Linux等各种操作系统;在系统架构方面,面向对象,构建了一个易于扩展的、完全组件式的开放式系统结构;在系统功能方面,从根本上面向电子商务和工作流
27、的工作模式而设计,并充分考虑了诸如商业信息动态发布、个性化用户界面、动态业务流程重组、与其它应用系统的集成、企业商业智能等高级需求,从而保证了企业用户能从容参与协作社区运作。提出全新的“企业价值链”概念。在企业提供的各种不同类型产品和服务背后是它的企业管理规范,而企业管理的核心就是企业自身的“价值观”,企业通过提供产品和服务与社会交换,从而实现了其自身价值。在实现与社会交换的众多环节中(如企业内外部的各项业务和事务交流),帮助企业能顺利实现价值的“价值链”贯穿始终。随着新的电子商务时代来临,客户和供应商,以及合作伙伴(包括不一定有商务买卖关系的伙伴),更加深入地渗透到企业“价值链”中,企业的许
28、多决策和决定更大程度上依赖于他们的参与。“价值链“的作用将愈来愈明显。(四)ERP系统开发构架图图1-1 ERP系统开发构架二、面向对象编程技术(一)面向对象编程技术简介面向对象方法的产生,是计算机科学发展的要求。80年代,特别是90年代以来,软件的规模进一不扩大,对软件可靠性和代码可重用性的要求也进一步提高。就是在这样的背景下,面向对象的程序设计方法应运而生。和传统的程序设计方法相比,面向对象程序设计具有抽象,封装和多态性等特征。对象和类是面向对象技术中两个重要概念,也是掌握面向对象编程技术的关键。1对象。对象是程序设计的重要组成部分,使用面向对象技术的程序基本上是一些对象的集合,没个对象均
29、又对象数据和对象行为所组成。对象数据是存储在对象总的数据代表对象的状态,在面向对象程序设计中,这些数据称为属性,如下图所示,设备管理系统中设备属性又设备编号、名称,型号等信息组成,由次可见,属性包含能区分不同对象的信息。对象行为是代表对象能做什么,在面向对象程序设计中,行为是通过过程,函数,子列程来定义的。在面向对象程序设计中,这些行为包含在方法中,可以通过向它发送消息来调用方法。图1-2 设备信息2类。在面向对象程序设计中,类是具有相同属性和方法的相关对象的集合,它为属于该类的全部对象提供了抽象的描述,类和对象的关系犹如模具和铸件的关系。类的特性如下。(1)封装:所谓封装简单的说就是数据隐藏
30、,就是将一组数据和这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。在这种情况下,用户不可以直接操作数据的,他必须通过和数据相关的操作来访问数据。换句话说,数据封装就是给数据提供一个与外界联系的表状接口,无论是谁,只有通过这些接口,使用规范的方式,才能访问这些数据。同时由于程序员总是和接口打教导,他们也不必要了解数据的具体细节。三、数据库访问技术(一)数据库库访问技术比较及选择在Delphi7.0中实现前后台数据库连接方法主要有三种:BDE数据库访问技术、ADO数据库访问技术、DbExpress数据库访问技术。下面对这3种数据库访问技术详细介绍并根据本系统实际情况选择合适的数据
31、库访问技术开发本系统。1BDE技术BDE技术是Delphi颇具特色的数据库连接管理技术,凭借窗体和报表,BDE可以访问诸如Paradox、dBase,本地InterBase服务器的数据库,也可以访问远程数据库服务器上的数据库,如:Oracle、Sybase、Informix等C/S数据库中的数据库。主要优点是在数据量大的情况下比ADO执行速度快,安全可靠。但程序打包时需打包BDE数据引擎,打包文件过大。2ADO技术ADO是微软提出的一项技术,通过ADO可以访问各种类型数据库,特别是OLEDB数据库,ADO成为访问数据库的新的标准接口,从版本5.0开始,Delphi t添加了对ADO的支持。在w
32、indos平台上,windos98se第二版就有这个驱动了.Microsoft® ActiveX® Data Objects (ADO) 使您的客户端应用程序能够通过 OLE DB 提供者访问和操作数据库服务器中的数据。ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的主要功能。它的主要优点是:易于使用,速度快,内存支出低,占用磁盘空间少。ADO 同时还具有远程数据服务 (RDS) 功能。使用 RDS,可在一次往返过程中实现三步操作:将数据从服务器移到客户端应用程序或 Web 页,在客户端对数据进行操作,然后将更新结果返回服务器。3dbExpress技术dbExpr
33、ess技术支持多平台数据库产品,可以对linux平台上的kylix数据存取访问,进行跨平台数据库系统开发,dbExpress的重要特点是交叉平台,摆脱了传统的BDE、ADO以及ODBC等存取数据方式,可以在linux和windos平台运行,尤其适合开发多层应用而且dbEpress是目前在kylix中存取数据唯一方法。综上所述:BDE的最大优势就是简单而又十分快速地访问数据库(这里是指不是海量数据的情况下);但在C/S模式中不好使用,也就是不宜满足大型应用。而且在程序打包时要假如baland数据引擎,打包文件大,BDE数据库技术目前已经停止发展。ADO的优势是提供更为统一的访问接口,基本上支持任
34、何数据库,在数据库很大的情况下,仍然能稳定工作,但速度上是慢很多的,其性能在不断完善。DBExpress可以说是介于上面两者之间的,也可以说是综合了它们的优点,当然部分缺点也进来了。速度访问上是很快的,但数据量很大的情况下,速度就会比ADO慢得多了,支持的数据库也很有限,但连接配置还是很方便的。所以在本系统设计,我选择了ADO数据库连接技术。(二)delphi7.0数据库组件介绍用Delphi7.0开发数据库应用,重点是和各种数据库组件打交道,能和数据库挂钩的组件对象有5种,它们是:Session(数据库会话)、Database(数据库)、Dataset(数据集)、DataSource(数据源
35、)、Data control(数据控制组件,也叫data-controls即数据感知组件)。其中前面4种统称为数据访问(Data Access)组件。ADO组件 Delphi7.0包含了可以用来访问Microsoft公司的ActiveX Data Objects(ADO)格式数据库的组件。ADO是Micrsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。ADO的对象模型是所有数据访问接口对象模型中最简单的一种。Microsoft公司用来访问ADO数据的应用程序界面技术是OLE DB。OLE DB是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消
36、息、文件系统以及其他一些非传统的数据源。OLE DB是一个由Component Object Model(COM)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。OLEDB提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、Email和文件系统、文本和图形以及用户定义的数据对象。Delphi的ADO组件无需依靠BDE而是使用ADO技术,提供了可以通过数据控制组件访问数据的新方法。唯一的要求是在使用ADO组件时必须运行ADO/OLEDB。ADO组件的使用使得DELPHI在访问数据的类型和采用的技术方面都有了很大的突破。数据模块设计窗口 数据模块设计窗口是用来设计和维护数
37、据模块的。数据模块设计窗口中包含了所有以.DTI作为文件扩展名的Data Diagram文件的信息。DTI文件在编译时不起任何作用。(三)SQL语言在Delphi中的应用在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery或TADOquery组件来使用SQL语言的。可以在Tquery或TADOquery组件的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开String List Editor对话框,然后我们就可以在对话框中添加SQL语句。还可以使用Delphi的SQL Builder来自动生成SQL语句,这样可以避免
38、手工编写SQL而可能造成的语法错误。静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:Select * From Book Where 设备编号 =:Code;其中的变量bookCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法1.根据参数在SQL语句中出现的顺序,设置TADOQuery组件的parameters属性值为参数赋值。2.直接根据S
39、QL语句中各参数的名字,调用ParamByName方法来为各参数赋值。3.将TADOQuery组件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TADOQuery组件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要明细型数据库应用。在使用动态SQL语句编程时,常常用到一个很重要的方法Prepare,调用Prepare 方法之后,Delphi会将带参数的SQL语句传送给与其对应的数据库引擎,对动态SQL语句进行语法分析和优化。虽然在用动态SQL语句编程时,调用Prepare方法并不是必须的,但是调用Prepare方法后,
40、会极大地提高动态SQL 语句的执行性能,特别是当要反复多次执行同一条动态SQL语句时,其优越性会更加明显。 如果在应用程序中执行一条SQL语句之前并没有显式地调用Prepare方法,每次在执行SQL 语句时,Delphi会隐含地调用Prepare方法以准备这个查询。TadoQuery部件还有一个Prepare属性,这是一个布尔型属性,当其属性值为True时, 表明该查询已被准备好了( SQL 语句已被传送到数据库引擎中 ) , 当我们使用参数编辑器Parameters Editor来为动态SQL语句中的参数赋值时,当设置完相应的参数值并退出参数编辑器时,Delphi会隐含地调用Prepare方
41、法以准备好查询。当SQL语句执行完之后,要想准备下一个查询,首先必须调用Close方法,然后才能调用Prepare方法准备下一个查询。一般来说,在一个应用程序中应该调用一次Prepare方法,常常在窗体的OnCreate事件处理过程中调用Prepare方法, 然后用上述介绍的方法为参数赋值,最后调用Open方法或ExecSQL方法执行SQL语句,以完成查询。当然在调用Prepare方法准备好一个查询时,会消耗一些数据库资源, 因而每当一个查询执行完毕之后,要养成调用UnPrepare方法以撤消查询的好习惯。在运行程序过程中,通过程序改变TQuery或TADOquery部件的SQL属性值时,De
42、lphi会自动地调用Close方法和UnPrepare 方法,以撤消查询。在程序运行过程中,要想设置Tquery或TADOquery部件的SQL属性,必须首先调用Close方法,关闭TQuery或TADOquery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句, 最后再调用Add方法为SQL属性设置新的SQL命令语句。例如: datamodule4.adoquery2.close; datamodule4.adoquery2.sql.clear; datamodule4.adoquery2.sql.add(SELECT 用户,密码 FROM user WHERE (用户 =
43、 :tt); datamodule4.adoquery2.parameters0.value:=username; datamodule4.adoquery2.open;在为TQuery或TADOquery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery或TADOquery部件已经被关闭了,调用Close方法时不会产生任何影响。在应用程序中为SQL属性设置新的SQL 命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,
44、 在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。在这里要特别注意的,一般情况下TQuery或TADOquery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。当然有些数据库服务器也支持在TQuery或TADOquery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为 SQL 属性设置多条SQL语句。在为TQuery或TADOquery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。在设计过程中,设置完TQuery或TADOquery部件的SQL属性之后将其Activ
45、e属性的值置为True, 这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery或TADOquery部件相连的数据浏览部件( 如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。在应用程序运行过程中,通过程序调用TQuery或TADOquery组件的Open方法或ExecSQL 方法可以执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令), 并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT, UPDATE, DELE
46、TE等命令),例如:Query1.Open (这样会返回一个查询结果集)如果调用Open方法,而没有查询结果时,会出错。此时应该调用ExecSQL 方法来代替Open方法。如:Query1.ExecSQL (没有返回结果)当然在设计应用程序时,程序设计人员是无法确定TQuery或TADOquery组件中的SQL 语句是否会返回一个查询结果的。对于这种情况应当用TryExcept模块来设计程序。在 Try 部分调用Open方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。例如:TryQuery1.OpenExceptQuery1.ExecSQLEnd通过Tquery或
47、TADOquery组件可以获得两种类型的数据:1.“活动”的数据这种数据就跟通过TTable部件获得的数据一样,用户可以通过数据浏览部件来编辑修改这些数据,并且当调用Post方法或当焦点离开当前的数据浏览部件时,用户对数据的修改自动地被写回到数据库中。2.非活动的数据(只读数据)用户通过数据浏览部件是不能修改其中的数据。在缺省情况下,通过TQuery部件获得的查询结果数据是只读数据,要想获得“活动”的数据,在应用程序中必须要设置Tquery或TADOquery组件的RequestLive属性值为True,然而并不是在任何情况下(通过设置RequestLive的属值True)都可以获得“活动”的数据的,要想获得“活动”的数据,除了将TQuery部件的RequestLive属性设置为True外,相应的SQL命令还要满足以下条件。本地SQL语句查询情况下,要得到可更新的数据集,SQL语句的限制为:1.查询只能涉及到一个单独的表2.SQL语句中不能包含ORDER BY命令3.SQL语句中不能含聚集运算符SUM或AVG4.在Select后的字段列表中不能有计算字段5.在Select语句WHERE部分只能包含字段值与常量的比较运算,这些较运算符是:Like, , =, =。各比较运算之间可以有并和交运算:AND和OR当通过SQL语句查询数据库服务器中的数据库表;1.查询只能涉及到一个单独的