基于Windows环境的实验室进程管理系统 毕业论文.doc_第1页
基于Windows环境的实验室进程管理系统 毕业论文.doc_第2页
基于Windows环境的实验室进程管理系统 毕业论文.doc_第3页
基于Windows环境的实验室进程管理系统 毕业论文.doc_第4页
基于Windows环境的实验室进程管理系统 毕业论文.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着各高校学生的增多, 实验室管理的工作变得越来越繁重。采用传统的人工管理模式,效率低下,不能满足实际的需求。本文描述的是基于windows环境的一个实验室进程管理系统,对一个实验室进程管理系统的需求进行了分析。本系统的主要功能包括:老师可以实时监控学生机系统运行的程序,发现未被允许的进程进行警告;超过一定的时间则关闭未被允许的进程。可以增加和删除允许运行的程序至许可程序集;从许可程序集中,指定本节课允许运行的程序;可临时添加本节可允许运行的程序(不将其加入许可程序集);增加或修改本节课允许运行的程序;许可程序集可以保存。系统的设计与开发采用服务器/客户机的系统结构模式,使用delphi开发工具开发,应用sql server2000数据库管理系统,通过ado连接数据库。第一章 引言31.1课题背景41.2 语言工具41.3主要内容4第二章 相关技术介绍52.1 delphi52.1.1 delphi特点52.1.2 delphi762.2 sql server62.2.1 sql server 200072.2.2 sql server 2000的特点72.3 ado技术7第三章 需求分析与可行性分析73.1 需求分析73.1.1 实验室需求简介73.1.2 功能性需求83.1.3 非功能性需求8安全保密性需求:用户登录需要密码验证83.2 可行性分析93.2.1 经济可行性93.2.2 技术可行性9第四章 总体设计94.1 总体设计目标94.2 功能模块设计94.3 数据库设计114.3.2数据建模114.3.3各实体关系模型114.3.4数据库逻辑结构设计12第五章 系统详细设计155.1 重要代码16第六章 实验室进程管理系统设计总结246.1系统的优点24参考文献25第一章 引言21世纪,人类已全面进入数字信息化社会,现在信息技术的应用越来越普及,不但促进了社会的高速发展,也影响着人们的工作、学习、生活和娱乐的方式以及思想观念。随着科学技术的不断提高,计算机科学与技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域,迅速地改变着人类社会的生产方式和生活方式,成为减轻人们体力与脑力劳动,帮助人们完成一些人们难以完成任务的有效工具。随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公。高校是科研的阵地,教学的实验室管理也应该一改传统的人工管理,更加信息化,时代化,节省人力物力,提高效率。基于这一点,开发了此实验室管理系统。1.1课题背景高校实验室存在一些不良现象,有些学生在实验课上做其他的事。如玩游戏为了提高高校实验室管理效率,试实验室的管理更加的规范。实验室进程管理系统从限制学生电脑的进程来管理。使用实验室进程管理系统,只需一到两名数据操作员即可操作管理系统,节省大量人力和财力;可以存储大量学生上课的基本信息,安全、高效、快捷;可以实时监控学生机系统运行的程序,发现未被允许的进程进行警告;超过一定的时间则关闭未被允许的进程。这些特点可以极大地提高实验室管理的效率。1.2 语言工具该实验室进程管理系统是我所在团队的第一个任务,在语言工具的选择上,我们通过导师的提议以及所有成员集体讨论后,前台工具使用了delphi语言,在后台数据库的选择上,我们使用sql server 2000作为我们的后台。 delphi灵活方便,与后台的sql server2000数据库相结合,可以提供一个高性能的实验室进程管理系统。1.3主要内容本文研究的主要内容有:l 实验室进程管理系统的需求分析l 实验室进程管理系统的可行性分析l 实验室进程管理系统开发的相关技术介绍l 实验室进程管理系统的总体设计l 系统数据库的概念设计l 系统各模块的详细设计l 系统评价以及设计中碰到的难点第二章 相关技术介绍开发数据库管理信息系统需要两种工具,即前台开发语言和后台数据库。本系统前台开发技术使用delphi,后台数据库使用sql server2000。delphi灵活方便,与后台的sql server2000数据库相结合,可以提供一个高性能的实验室进程管理系统。2.1 delphidelphi是pascal语言的一种版本,但它与传统的pascal语言有很大差别。一个delphi程序首先应是程序框架(frame),而这一框架正式应用程序的“骨架”。在骨架上即使没有附着任何东西,仍然可以运行。所要做的工作只是在“骨架”中加入程序。缺省的应用程序是一个空白的窗体(form),运行可以得到一个空白的窗口。这个窗口具有windows窗口的全部性质,可以被放大缩小、移动、最大最小化等。程序框架及一个空白的窗体已经是一个可运行应用程序,只是不处理任何事情。2.1.1 delphi特点delphi自从1995年2月诞生以来,获得了巨大的荣誉和广泛的影响力,以可视化编程、强大的编译功能、友好的用户界面闻名于世。主要特点是:l 高效的可视化组件库和面向对象的架构。l 具有多种操作向导和在线帮助,大大方便程序编写。l 界面设计所见即所得和鼠标拖曳方式,可以轻松设计出华丽的界面。l 支持各种最新及最常用的技术如 win32 api、ole、com、dcom、activex、isapi、nsapi、directx等。l 全面支持windows 应用程序。l 具有开放式数据库结构,集成了丰富的数据库开发工具。l 具有强大的面向网络编程功能,其c/s开发工具在高性能的快速应用程序开发领域成为行业标准。delphi产品按照功能可以分为4个类型:l delphi集成开发环境(integrate develop environment):提供友好的用户编程开发界面,集成了高效的编译器、项目管理器、团队开发支持、高级调试等功能。l delphi可视化组件库(visual component library):提供几百个常用组件,用于数据库访问、用户接口、数据处理、报表和internet开发。l borland数据引擎(borland data engineer):能够进行数据库管理,并与数据库服务器高速连接。l midas:是一个集成与delphi的分布式应用稽核,功能强大,主要用于商业逻辑的智能集中管理和企业交易的快速处理。2.1.2 delphi72002年8月6日,borland公司正式宣布推出delphi 7 studio,全面支持microsoft公司.net平台应用的开发。delphi7是一个针对windows平台上的跨平台快速开发(rad)环境。delphi7的一个显著特性是企业开发和部署。 delphi7的新特点:l 企业应用的mda开发:通过让开发者从设计到发布都重复使用一个应用程序,加速开发进程,同时显著减少代码量和需要的开发时间。l 可视化的快速web开发:让开发者能够在delphi7环境中可视化地创建web应用,并且利用它的应用模型框架,不必再考虑通用的服务器端的开发任务,还能透明地处理会话管理。l 内建的linux的跨平台支持:delphi7在出售时将附带delphi语言版本的dylix3。kylix3是第一个linux操作系统上的高性能的可视化集成开发环境(ide),它适用来快速创建数据库应用、gui应用、web应用和web服务应用。l 企业级的报表能力:让开发者能创建跨平台的报表,这些报表能帮助查看应用程序运行的效率。l windows xp应用:delphi7包含了对windows xp风格支持,让开发者能够创建可以利用windows xp 使用者界面风格的应用。2.2 sql server 数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为企业或组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用。对于一个国家来说,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 2.2.1 sql server 2000sql server 2000 是一个高性能的客户端/服务器结构的关系数据库管理系统。sql server 2000是为支持高容量的事务处理以及数据仓库和决策支持系统而设计的。它是microsoft 公司推出的,该版本继承了sql serve 7.0 版本的优点,同时又比它增加了许多更先进的功能,可跨越从运行microsoft windows 98 的电脑到运行microsoft windows 2000 的大型多处理器的服务器等多种平台使用。2.2.2 sql server 2000的特点l 简单易操作:sql server 2000 界面风格和windows界面风格完全一致。l 兼容性良好,具有扩展性,可靠性。l 数据仓库: sql server 2000增加了olap功能。olap可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示隐藏在大量数据中的倾向及趋势,它允许组织或机构最大限度地从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。2.3 ado技术 ado( active data objects )是一种提供访问各种数据类型的链接机制,是通过odbc的方法访问数据库的接口。ado主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少,同时具有远程数据服务(rds)功能。在delphi中,提供了一组ado组件,用于对ado访问能力的支持。第三章 需求分析与可行性分析3.1 需求分析3.1.1 实验室需求简介 客户端方面:实时监控学生机系统运行的程序,发现未被允许的进程进行警告;超过一定的时间则关闭未被允许的进程。服务器方面:可以增加和删除允许运行的程序至许可程序集;从许可程序集中,指定本节课允许运行的程序;可临时添加本节可允许运行的程序(不将其加入许可程序集);增加或修改本节课允许运行的程序;许可程序集可以保存。3.1.2 功能性需求软件需求分析是指对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析是软件设计、实现测试直至维护的主要基础,良好的需求分析可以避免或尽早提出早期的错误,从而降低软件的开发成本,改进软件的质量。我们所设计完成的实验室进程管理系统应该要完成以下的任务: 客户端 (1) 从教师机获取本节课允许运行程序集;(2) 实时监控学生机系统运行的程序,发现未被允许的进程进行警告;(3) 超过一定的时间则关闭未被允许的进程(4) 系统以托盘程序或系统服务形式运行; 服务器端(5) 可以增加和删除允许运行的程序至许可程序集;(6) 从许可程序集中,指定本节课允许运行的程序;(7) 可临时添加本节可允许运行的程序(不将其加入许可程序集);(8) 增加或修改本节课允许运行的程序;(9) 许可程序集可以保存3.1.3 非功能性需求用户界面需求:简洁、易用、易懂,友好的用户界面。运行环境需求:windows 98及以上操作系统可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据丢失。安全保密性需求:用户登录需要密码验证3.2 可行性分析开发任何一个系统,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可行性分析,以减少项目的开发风险,避免人力,物力和财力的浪费。可行性分析主要包括经济可行性和技术可行性等。3.2.1 经济可行性经济可行性,主要是针对一个学校的开发系统的成本与收益相比较。如今是信息化时代,信息化管理可以使实验室管理更加系统化,全面化、快速化,这样可以为学校带来高校的工作效益和经济效益,开发出本系统可以减少实验室管理人员人数,而且管理方便,各功能实现快速,数据有效的管理。这些效益和管理上的便捷远远超过了开发本系统的成本,所以在经济上具有完全的可行性。3.2.2 技术可行性本系统开发工具是delphi和sql server2000。delphi具有可视化界面,是一种面向对象的语言,简单易学而且灵活方便,sql server 2000是一个安全、可靠的并且支持面向对象设计的数据库系统。易用性和可维护性也很好。在大二期间,就已学过sql server2000。所以,技术上具有完全的可行性。数据库的设计和操作是本系统设计的核心。在大学期间曾经学习过软件工程,也以四人一组完成过有关的大作业,具备一定的系统分析与设计能力,熟悉数据的设计与操纵。因此,本系统的实现在技术上是可行的。第四章 总体设计4.1 总体设计目标l 减少老师、管理人员大量繁琐的工作。l 减少学校在实验室管理方面的人力和物力的投资。实验室进程管理系统功能实用。操作简单,拥有友好的易额面,适用于各类学校的机房进程管理。4.2 功能模块设计系统功能模块包括: 2、 教师机功能:(1) 可以增加和删除允许运行的程序至许可程序集;(2) 从许可程序集中,指定本节课允许运行的程序;(3) 可临时添加本节可允许运行的程序(不将其加入许可程序集);(4) 增加或修改本节课允许运行的程序;(5) 许可程序集可以保存登录用户名 密码教师界面管理员界面课程增加课程删除课程查询发布进程集(加入该老师允许进程集)发布临时进程集(不加入)查看发布进程集教师增删查进程增删查3、 学生机功能(1) 从教师机获取本节课允许运行程序集;(2) 实时监控学生机系统运行的程序,发现未被允许的进程进行警告;(3) 超过一定的时间则关闭未被允许的进程(4) 系统以托盘程序或系统服务形式运行;提示允许运行的进程集学生机客服端监控学生机系统运行的程序制性关闭未被允许的进程4.3 数据库设计4.3.2数据建模模型是软件的第一个技术表示。信息系统的建模是用模型来描述复杂的信息系统,使得系统的要求、结构和数据变得简单。设计者通过描述用户的需求获得与用户的不断交互,最终对整个系统能全面地把握。建立完整的数据模型,完成对信息系统中数据的存储和处理。实验室进程管理系统比较复杂,为了建立这样一个复杂系统的模型,并满足实际对象不断发展的需求,在实际设计中应遵循下列原则:l 准确性:所建立的模型要求能够正确反映实际的对象,能够满足实验室进程管理工作的实际需求。l 完整性:指要求模型既能反映对象系统的静态特性,同时能够反映其丰富的动态特性。l 一致性:要求建立的模型能保证从分析阶段到设计阶段的平稳过渡。4.3.3各实体关系模型经过分析,可以得出以下各实体之间的e-r图,(如图4-6到4-8)teachercourse选课linkprocess上课登记添加教师编号课程编号教师编号登记时间上课时间课程名称课程编号权限密码教师名称进程名称进程介绍进程类型进程名称4.3.4数据库逻辑结构设计 基本定义: 教师与管理员有自己的编号、密码。在要进入该进程管理系统时,需进行身份认证。不用类型的用户有不同的权限。管理员的权限最大,包括进程的增删查、教师的增删改查等。教师有自己的身份认证,可以发布课程信息,每次课可以添加、删除临时进程,同时可以改变自己的登录密码。学生在上课时,只能运行管理员发布的进程以及教师本节课添加的临时进程,其余进程不予运行。进程与课程的删除,若某进程还有课程使用,则不能从进程表中删除教师表teacher:字段名称字段格式字段约束字段说明教师编号intprimary key编号自动加一教师名称varchar(50)密码varchar(50)default 0001默认初始密码为0001权限chardefault 0默认值为0;0为教师、1为管理员,管理员可进行更改课程表:course字段名称字段格式字段约束字段说明课程编号intprimary key标识一个课程,自动加一课程名称varchar(50)上课时间varchar(200)记录该课程上课时间以及一些介绍登记时间varchar(30)该课程登记时间上课登记表link:字段名称字段格式字段约束字段说明教师编号intforeign key 为教师表teacher里的课程编号intforeign key为课程表course里的进程名称varchar(50)foreign key为进程表process里的进程表:process字段名称字段格式字段约束字段说明进程名称varchar(50)foreign key唯一进程介绍varchar(500)进程类型varchar(10)check(proztai in(ap,sp)sp表示系统进程、ap表示应用进程临时表:tempprocess字段名称字段格式字段约束字段说明进程名称varchar(50) 3.3 物理结构设计a.建立一个数据库,数据库名称processcreate database processon(name=libraryfilename=d:sqlprocess.mdf,size=20mb,filegrowth=5mb)log on(name=manaliblog,filename=d:sqlmanaliblog.ldf,size=5mb,maxsize=20mb,filegrowth=10%)use process在该数据库中建立教师表teacher、课程表course、上课登记表link、进程表process及临时表tempprocess。一切活动都在该数据库进行了。b.对于primary key数据库会自动建立索引。c对于有建立聚簇索引表的数据,可以通过聚簇索引存取方法;对于有建立索引表的数据,可以通过索引存取方法;没有索引表的数据,有hash存取方法可以选择;最后选择进行全表扫描得到。4 运行设计 4.1 数据字典设计a.数据项b.数据结构 教师=教师编号+教师姓名+密码+权限 课程=课程编号+课程名称+上课时间及介绍+课程登记时间;上课情况=教师证号+课程编号+进程名;进程=进程证号+进程介绍+进程类型 c数据存储 数据存储描述=名称:manalibdata;存储在相应的磁盘中,形成计算机文档,通过键盘输入数据,存储在表中。刚建立该管理系统时,进程的创建较频繁,接下去比较稳定,不同教师的不同课程,可能会临时增加一些进程,一般情况下为进程的查询。 4.2 安全保密设计 初定为用户分为两大类:教师和学生,教师在教师机上进行进程的管理,学生机上只能运行教师允许的进程,其余的不予运行。教师分为两种:管理员和普通教师。管理员拥有所有的权限,包括教师的权限管理,基本信息的增删改查;普通教师由管理员授予不用的权限。只能在上课时修改该节课所要用到的进程,不能对其他课程的进程进行修改。 学生可以对所上课程允许的进程进行查询,也只能运行老师所允许的进程。第五章 系统详细设计该实验室进程管理系统是由纬度工作室的所有成员共同完成的,对于个人而言,所完成的任务就是其中的若干个模块。在本系统的设计中,我所完成的任务主要有员工信息录入模块、员工信息统计模块、宿舍信息录入模块、学生休学及学生复学模块。详细设计如下。5.1 系统运行平台设置5.1.1、硬件环境:处理器:pentium 800以上;内存:256m及以上;硬盘空间:1gb及以上;屏幕分辨率:1024*8005.1.2、软件环境:windows 2000 professional 或 windows 2000 server操作系统。5.2 重要代码学生机: function getpathfileofmodule(modulename:string):string; /枚举进程所调用的模块及进程文件所在路径var hprocsnap:thandle; /窗体句柄 pprocess:thandle; pe32:tprocessentry32; /process32first 得到一个系统快照里第一个进程的信息 buf:array0.max_path of char; /显示模块对应的文件名和路径 hmod:hmodule; cbneeded:dword; begin hprocsnap:=createtoolhelp32snapshot(th32cs_snapall,0); /创建快照函数createtoolhelp32snapshot if hprocsnap=invalid_handle_value then exit; pe32.dwsize:=sizeof(processentry32); /在调用process32first前需要设置,否则将会失败 if process32first(hprocsnap,pe32)=true then /返回第一个进程是否调用成功 while process32next(hprocsnap,pe32)=true do /顺序调用进程 begin if uppercase(pe32.szexefile)=uppercase(modulename) then begin pprocess:=openprocess(process_query_information or process_vm_read, false, pe32.th32processid); if pprocess0 then begin if enumprocessmodules(pprocess,hmod,sizeof(hmod),cbneeded) then begin zeromemory(buf,max_path+1); getmodulefilenameex(pprocess,hmod,buf,max_path+1); result:=strpas(buf); end; end; end; end; closehandle(hprocsnap);end;$r *.dfmprocedure tform1.get();varprocesslist :thandle;pe :tprocessentry32;found:boolean;summ: word;newitem: tlistitem;begin / processenumlistview1.items.clear;processlist:=createtoolhelp32snapshot(th32cs_snapprocess,0); /创建快照函数createtoolhelp32snapshotpe.dwsize:=sizeof(tprocessentry32); /在调用process32first前需要设置,否则将会失败found := process32first(processlist, pe); /process32first 得到一个系统快照里第一个进程的信息summ := 0;while found do begin summ := summ + 1; newitem := listview1.items.add; /在listview1显示 /newitem.imageindex := -1; temp1:=extractfilename(pe.szexefile); /获取进程名赋给一个变量 / temp1:=winword.exe; result1:=1; result1:=search(temp1); if(result1=0) then begin temp2:=temp1; messagedlg(警告!您开启了在这节课不被允许的程序,我们将在10秒后自动关闭该程序!,mtwarning,mbok,0); /showmessage(警告!您开启了在这节课不被允许的程序,我们将在10秒后自动关闭该程序!); edit1.text:=warning!+temp1; break; end; newitem.caption :=extractfilename(temp1);/返回进程名称 newitem.subitems.add(formatfloat(00, summ);/返回序号 newitem.subitems.add(inttostr(pe.th32processid);/返回进程id / newitem.subitems.add(inttostr(tthreads); /返回进程线程数 newitem.subitems.add(getpathfileofmodule(extractfilename(pe.szexefile); /返回每个进程文件所在路径 found := process32next(processlist, pe); edit1.text:=当前系统共有+inttostr(summ)+个进程 ;end;closehandle(processlist);end;function tform1.killtask(exefilename: string): integer;const process_terminate = $0001; var continueloop: boolean; fsnapshothandle: thandle; fprocessentry32: tprocessentry32; begin result := 0; fsnapshothandle := createtoolhelp32snapshot(th32cs_snapprocess, 0); fprocessentry32.dwsize := sizeof(fprocessentry32); continueloop := process32first(fsnapshothandle, fprocessentry32); while integer(continueloop) 0 do begin if (uppercase(extractfilename(fprocessentry32.szexefile) = uppercase(exefilename) or (uppercase(fprocessentry32.szexefile) = uppercase(exefilename) then result := integer(terminateprocess( openprocess(process_terminate,bool(0),fprocessentry32.th32processid),0); continueloop := process32next(fsnapshothandle, fprocessentry32); end; closehandle(fsnapshothandle);end; procedure tform1.timer3timer(sender: tobject);begin result:=killtask(temp2); if(result0)then begin showmessage(自动shanchu成功); end;end;procedure tform1.formclosequery(sender: tobject; var canclose: boolean);beginmessagedlg(上课期间该软件不允许被关闭!,mtwarning,mbok,1);/canclose:=false;end;function tform1.search(exefilename: string):integer;varrs:integer;begin with adostoredproc1 do begin close; procedurename:=proc_tempprocess;1; parameters.refresh; parameters.parambyname(proname).value:=exefilename; parameters.parambyname(rs).value:=rs; execproc; / open; end; search:=adostoredproc1.parameters.paramvaluesrs;end;end.教师机:教师添加:begin if edit2.text = then showmessage(教师姓名不能为空) else begin with adoquery1 do begin close; sql.clear; sql.add(insert into teacher(usename,password,powers); sql.add(values(:name,:pass,:powers); parameters.parambyname(name).value:=edit2.text; if(edit3.text=) then parameters.parambyname(pass).value:=001 else parameters.parambyname(pass).value:=edit3.text; if(radiogroup1.itemindex=0) then parameters.parambyname(powers).value:=0 else parameters.parambyname(powers).value:=1; execsql; close; sql.clear; sql.add(select * from teacher); open; label9.caption :=记录总数:+inttostr(recordcount); end ; edit2.text:=; edit3.text:=; showmessage(教师添加成功!); end; end;教师删除:begin if edit4.text= then showmessage(先进行查找,再删除) else begin if adoquery1.recordcount0 then begin if messagedlg(确定要删除所有符合条件的记录吗?,mtconfirmation,mbokcancel,0)=mrok then begin adoquery1.first ; while not adoquery1.eof do begin id:=adoquery1.fieldbyname(useno).asstring ; with adoquery2 do begin close; sql.clear ; sql.add(select * from link); sql.add(where useno=:id) ; parameters.parambyname(id).value:=id; open ; end; if adoquery2.recordcount0 then begin if messagedlg(id+有课程安排,是否跳过该记录继续删除?,mtconfirmation,mbokcancel,0)=mrok then adoquery1.next else exit;end else begin adoquery1.delete;adoquery1.next;end; end; if messagedlg(已经删除记录,mtinformation,mbok,0)=mrok then begin adoquery1.close; adoquery1.sql.clear ; adoquery1.sql.add(select * from teacher); adoquery1.open ; label10.caption :=记录总数:+inttostr(adoquery1.recordcount); edit4.text:=; end; end; end; end;end;教师查询:/模糊查询var tt:string; i:shortint;begin if edit9.text= then showmessage(请输入搜索词) else begin tt:=edit9.text; for i:=0 to length(tt) do if(tti=chr(39) then begin delete(tt,i,1);end; edit9.text:=tt; with adoquery1 do begin close; sql.clear ; sql.add(select * from teacher); sql.add(where usename+powers like %+edit9.text +%); open ; label9.caption :=记录总数:+inttostr(recordcount); end; end;end;进程搜索:var tt:string; i:shortint;begin if edit9.text= then showmessage(请输入搜索词) else begin tt:=edit9.text; for i:=0 to length(tt) do if(tti=chr(39) then begin delete(tt,i,1);end; edit9.text:=tt; with adoquery1 do begin close; sql.clear ; sql.add(select distinct proname,proztai,proshow from process); sql.add(where proname+proshow+proztai like %+edit9.text +%); open ; label10.caption :=总数:+inttostr(recordcount); end; end;end;进程删除:var id:string;begin if edit9.text= then showmessage(先进行查找,再删除) else begin if adoquery1.recordcount0 then begin if messagedlg(确定要删除所有符合条件的记录吗?,mtconfirmation,mbokcancel,0)=mrok then begin adoquery1.first ; while not adoquery1.eof do begin if adoquery1.fieldbyname(proztai).asstringap then begin showmessage(删除停止,不能删除系统进程!); exit;end; id:=adoquery1.fieldbyname(proname).asstring ; with adoquery2 do begin close; sql.clear ; sql.add(select * from link); sql.add(where

温馨提示

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

评论

0/150

提交评论