毕设论文餐饮管理系统.doc_第1页
毕设论文餐饮管理系统.doc_第2页
毕设论文餐饮管理系统.doc_第3页
毕设论文餐饮管理系统.doc_第4页
毕设论文餐饮管理系统.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第 46 页 共 46 页 引言 现代社会正在进入信息社会,蓬勃发展的餐饮业作为第三产业的重要组成部分在国民经济中的作用日益突出;同时,快节奏的生活,要求餐饮业跟上时代的步伐,提供高质量、快速的服务。传统的手工操作管理存在着许多无法避免的问题,例如:(1)人工计算帐单金额容易出现差错(2)收银工作中跑单、漏单、偷钱现象普遍(3)个别服务员作弊、改单、宰客情形时有发生(3)客人消费单据难以保存和查询(4)无法对大量营业数据进行统计分析随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。国内餐饮业的由于管理成本过高、服务效率低下,面临国外餐饮业的入侵,处于竞争的劣势;国外采用的新型的餐饮管理系统,极大地提高了管理效率和服务水平,国内的类似产品比较落后,且无法满足餐厅的实际需要。为了促进餐饮业的现代化,提高我国餐饮业的竞争力,急切需要真正适合餐厅的实际需要的餐饮管理系统。本系统就是针对以上问题设计的。系统实现了一般餐饮企业日常营运的全面自动管理,并可以适用于管理需求十分相似的娱乐企业。 本论文首先介绍了餐饮管理系统的概况,对市场上现有的管理系统存在的问题进行了分析,指出了开发适合餐厅实际需要的餐饮管理系统的必要性,然后介绍了餐饮管理系统的相关基础知识,其中包括sql server数据库管理系统和delphi 数据库应用程序体系结构,介绍了这两种工具的基本知识和特点,还有c/s模式的理论和特点,再介绍了本餐饮管理系统的设计分析和应用程序设计,具体分析了各大模块的设计实现,这是本文的重点所在。1 概述1.1 餐饮业的发展、现状以及存在的问题 “民以食为天”,作为衣食住行的一部分,饮食在生活中具有极其重要的地位。在原始社会,人类在饮食方面的要求仅限填腹,仅仅是生存的需要,处于与自然作斗争的范畴,还谈不上其他方面的意义。随着人类社会的发展,生产力的提高使得生产方式发生巨大的变化,社会产品逐渐丰富,人们对饮食有了更多的选择。人类经历工业时代进入信息时代后,饮食己经从生存需要逐步发展成为具有多种内涵的经济文化现象,加上民族文化背景,饮食往往成为民族和文化的一种象征。 而餐饮业也随着社会的发展,从第一产业、第二产业中分化出来,逐渐成为第三产业的重要组成部分,在国民经济中发挥重要的作用。 我国的餐饮业历史悠长,形成了别具一格的饮食文化,但是直到现代餐饮业才真正成为产业。 近二十多年来,我国餐饮业发展迅猛,日新月异,备种风味特色,各种经营形式,各种组织结构的餐厅企业星罗棋布。当前中国城镇拥有餐馆300多万家,1999年销售额达到3199.6亿,2000年达到3600亿元,市场十分广阔。与此同时,国外的餐饮业也加快了进入国内市场的步伐,“麦当劳”、“肯德基”两家美国快餐企业在进入中国十年以来,根据中国的特色调整经营策略,已经占据了一定的市场份额,而更多的外国餐饮业也不甘落后,争相进入我国市场。异国餐饮文化在国内餐饮市场相继出现,国内外餐饮行业相互渗透、交叉融合的趋势日益明显,表明我国餐饮业正向横向和纵向发拓展,也说明我国餐饮业正面临着日益严峻的竞争。(1)经营方式落后,经营特色不显著:许多餐饮业仍保留传统的经营观念模式,菜谱上的菜名往往无法及时更新,让人大失所望。(2)生产方式和管理服务水平低,科技含量不高。我国的餐饮业仍然以繁重的体力劳动加简单工具的手工作坊式的生产方式为主,管理水平低下,无法适应信息时代快节奏的生活。 在与国外餐饮业的激烈竞争中,民族餐饮业由于经营方式和管理手段落后,在竞争中处于劣势。餐饮业的有识之士已经看到了传统餐饮业的缺点,开始实施新的经营方式,借助新技术向现代餐饮转变。在这一前提下,发展餐饮管理系统对提高餐饮业的科技含量,提高劳动生产率,节约成本,取得经营优势有重要的意义。 信息化社会对餐饮业提出新的挑战但是也提供新的机遇。生活节奏加快,餐饮业也必须跟上时代的步伐;日益发展的市场和日益严峻的竞争,是的我国餐饮业面临着一个新的时代难题,经营管理方式的落后曾经是民族餐饮业发展的桂桔;而先进的技术提供了减轻体力劳动,改善服务质量,提高经营管理效率的途径。 开发符合我国国情的餐饮管理系统是市场的呼唤,是餐饮管理的需要,是社会信息化的必然。1.2 餐饮管理系统的发展以及现状 餐饮管理系统是在餐厅中使用的计算机系统,能部分替代体力劳动,能存储、处理并传递业务数据,简化餐厅的服务过程,加快服务速度;使餐厅管理者从繁杂的日常管理活动中解脱出来,专注于提高餐厅的服务水平和管理效率。餐饮管理系统经历了近十年的发展,日趋完善,受到广大餐饮业人士的欢迎。1.2.1餐饮管理系统的发展阶段 餐饮管理系统是社会发展和技术进步的产物。二十世纪80年代,国外餐厅中开始使用电子收银系统,改善了资金的管理;而真正功能意义上的餐饮管理系统是在90年代初才开始出现并逐步发展,其发展经历了以下三个阶段:(1)纯软件型的餐饮管理系统:是微机上运行的一套由库存管理、资金管理、人事管理和业务管理等软件模块的组合而成的纯软件型的餐饮管理系统。该系统提供用微机点菜的功能,并能存储业务数据。由子是单机服务,服务能力有限,不少业务数据是事后录入的,缺少实时性;由于缺乏相应的电子化网络支撑,这类系统不能加快餐厅的服务速度,提高服务速度,不能满足餐饮业经营者最迫切的需要。(2)有线终端式餐饮管理系统:这类系统由主机以及与主机通过有线互连的触摸屏终端组成,由有线终端向顾客提供点菜等服务,主机软件提供有关数据和信息管理功能以及业务数据统计报表功能,能处理业务信息并产生必要的单据输出。由多台有线终端同时向顾客提供服务,顾客的操作结果通过网络传送,简化了服务流程,提高了服务速度,餐厅和顾客同时享受到了便利。但这类系统有一个固有的缺陷,那就是它是有线连接的,扩展能力有限:而且触摸屏本身体积较大,安装困难,因此终端数目受到限制,也限制了系统的推广和普及。(3)无线终端式餐饮管理系统:无线终端式的餐饮管理系统的终端通过无线方式传送数据,因此具有灵活性的特点。它是在吸取前两代餐饮管理系统的长处,克服它们缺点的基础上开发的系统:在满足餐饮业经营者需要的同时,着重于提高终端的便携性并降低系统的使用、安装和扩展等方面的难度。由于终端通过无线连接,除了初期工程安装时必须安装基站外,没有其他安装上的困难;在系统使用过程中可以随意增加终端,而不影响系统的运行:它代表了餐饮管理系统的发展趋势和潮流。目前市场上的无线终端式餐饮管理系统主要有两类,一种是红外终端式,另一种是射频无线终端式。综上所述,第三类的餐饮管理系统安装简单、易于扩展且能较好地满足餐厅的实际需要,因此受到客户的青睐。1.2.2国内外餐饮管理系统现状: 在日韩两国,餐饮业正在进行一次革命性的转变。由于两国餐饮业发展比较成熟,激烈的市场竞争促使餐饮业管理人员设法提高管理效率和服务水平:全面、细致的管理还为纳税和审核提供了有力的辅助手段,因此这类系统的开发也得到政府机关的支持和提倡。目前,这两国的餐饮管理系统已经很成熟,有不同规模的、多种技术特色的餐饮管理系统出现在市场上,而基于射频无线的系统在餐厅中广泛使用。 我国的餐饮业管理系统的发展落后于国外,目前处于第二阶段、第三阶段的过度阶段。早在90年代初,我国不少软件公司致力于开发餐饮管理系统,较知名的有广州的黑马,深圳的科利华,连邦等等。近几年,餐饮管理系统的研究也逐渐跟上国外的步伐,已经有基于红外的餐饮管理系统在餐厅中使用。但是还未见基于射频无线的系统。1.3 餐饮管理系统的开发背景随着我国国民经济的稳定增长,城镇居民可支配收入不断增加,人民不再以“温饱”为满足,更加注重饮食的质量与档次。据国家统计局统计数字显示,20世纪90年代以来,我国城镇居民在外就餐大幅度增长,大众化餐饮成为市场主流,这极大推进了餐饮行业的快速发展。另外,随着我国正式加入wto与北京申办2008年第29届奥运会的成功,餐饮业在未来几年内将始终保持一个较高的发展速度。目前我国城镇拥有餐馆350多万家,多数餐馆规模小、服务质量差。随着餐饮业的链锁和国外餐饮巨头的加入,餐饮业的竞争将会越来越激烈。要想在竞争中处于不败之地,必须在管理、服务等方面提高服务管理意识。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段,面对当前餐饮业普遍的产业化程度低,管理手段、管理技术落后等问题,使用计算机技术管理在很多程度上可以帮助餐饮企业克服这些困难。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。计算机管理系统可以提高餐饮企业的管理水平,节省大量人力、物力和财力,使经营管理更加科学有序、经营物流清晰,经营状况详实、准确。使用计算机管理系统可以给餐饮行业带来以下的好处:(1) 可以提高工作效率日常需要的各种报表再不需要人工统计,电脑自动生成。(部分酒楼设专人负责统计工作,使用系统后,就不需要了)点菜、分单、出品、结帐、库存信息全部一体化管理,大大提高工作效率,降低管理难度,酒楼管理变得非常轻松。(2)可以增加管理水平智能化安全库存线确定功能,确保最合理的库存水平,在不需要凭借老员工的经验确定了。客户关系管理模块,确保您及早发现潜在的重要客户。(3)可以增加收入菜品组成分析能确保菜品配料保持稳定,进一步确保菜品质量,促进销售,利于品牌营造。自动结帐使您可以任意增删菜品,随时调整菜品价格来适应竞争需要,提高竞争力。(4)可以节约成本物品采购价格分析可以有效降低采购价格,确保成本降低。物品过期告警能减少物品过期现象出现,减少浪费。库存管理自动化能降低库存盘点难度,可以适当提高库存盘点频率,有效减少库存物品流失。(5)提高酒楼的形象应用计算机辅助管理酒楼,无形中提高了酒楼的形象。 综上所述,因此,开发出这样一套功能完整的餐饮管理软件,必定是符合社会发展的需要,符合人们的需求。2 餐饮管理系统有关基础知识2.1 sql server 数据库管理系统简介2.1.1数据库的特点与文件系统相比 数据库系统有以下特点:(1)数据的结构化 在文件系统中,文件之间不存在联系 文件内部的数据一般是有结构的,但是从数据的整体来说是没有结构的 数据库系统也包含许多单独的文件但是它们之间相互联系 在整体上也服从一定的结构形式从而能更适应管理大量数据的需求 (2)数据共享 共享是数据库系统的目的,也是其最重要的特点,一个数据库中的数据不仅可以为同一企业或者组织内部的各部门共享,还可以为不同国家地区的用户所共享. (3) 数据独立性 在文件系统中,文件和应用程序相互依赖,一方的改变总要影响另一方的改变,数据库系统则力求较少这种依赖性,实现数据的独立性. (4)可控冗余度 数据专用后 每个用户拥有并使用自己的数据,许多数据就会出现重复,这就是数据冗余.实现共享后,同一数据库中的数据集中存储 ,共同使用因而易于避免重复 ,减少和控制数据的冗余.2.1.2用户分类数据库系统的用户是指使用和访问数据库中数据的人,它包括以4种: (1)数据库设计者 负责整个数据库系统的设计工作设计者依据用户的需求设计合适的表和格式来存放数据并对整个数据库的存取权限做出规划 这些工作完成后 即可交给数据库管理员进行管理。注意:这里的设计者一般并不只是指一个人,而往往是一组人.(2)数据库管理员 数据库管理员 database administrator dba 决定数据库种的数据并对这些数据进行修改,维护,监督数据库的运行状况.数据库管理员的任务主要包括:决定数据库的内容, 管理账号,备份和还原数据以及提高数据库的运行效率. (3)应用程序设计者 负责编写访问数据库的应用程序 使得用户可以很友好地使用数据库,可以使用 visual basic visual c+ delphi 等来开发数据库应用程序.(4)普通用户 普通用户只需操作应用程序来访问所需要查询的数据,不需要关心数据库地具体格式及其维护和管理等问题. 在实际工作中, 数据库管理员利用账号来控制每个用户地访问权限,每个用户都由自己的账号和密码 ,使用此账号和密码,用户可以登录数据库,并在允许的权限范围内访问数据库种的数据.2.1.3数据库管理系统 (bdms) 数据库管理系统 (dbms) 是指帮助用户建立,使用和管理数据库的软件系统 ,他通常有下面三个组成部分:(1)数据描述语言( data description language ddl ) 用来描述数据库的结构 供用户建立数据库(2)数据操作语言 (data manipulation language dml) 供用户对数据库进行数据的查询(数据的检索和统计等)和存储(数据的增加,删除和修改等)等操作. (3)其他管理和控制程序 包括安全通讯控制和工作日志等.一般情况下ddl和 dml组成一个一体化的语言,对于关系型数据库,最常用的就是 sql structure query language语言,几乎所有的数据库管理系统都提供了对 sql 语言的支持. 对 ddl 和 dml数据库管理系统都带有翻译程序,与普通高级语言类似翻译程序也可以分为编译执行和解释执行两种方式, 如 sql语言,既有解释型也有编译型. 数据库管理系统提供了用户和数据库之间的软件界面,使得用户更方便地操作数据库 ,一般来说它应如下功能:(1)数据定义 和高级语言类似,需要定义需要的数据类型。(2)数据处理 dbms 必须提供用户对数据库的存取能力,包括记录地增加,修改,检索和删除等。 (3)数据安全 管理和监督用户的权限 ,防止用户有任何破坏或者恶意的意图. (4)效率 dbms 应保证数据库的高效率运行, 以提高数据检索和修改的速度 . 2.1.4网络结构可依据数据的多少,使用的人数与硬件设备等条件,将数据库管理系统分为4种网络结构:main frame 大型数据库,本地小型数据库,分布式数据库和客户机/服务器数据库。下面分别介绍这4种网络结构,并重点介绍客户机/服务器数据库。(1)main frame 大型数据库 大型数据库是由一台性能很强的计算机(称为主机或者数据库服务器)负责处理庞大的数据 用户通过终端机与大型主机相连,以存取数据。main frame 大型数据库的所有检索和修改的功能都由主机来完成 因此 在有多人使用时 主机会非常忙碌 使得反映比较缓慢 另外 大型主机的性能很强 但价格都相当昂贵一般只有大型机构使用。 (2)本地小型数据库 在用户较少,数据量也不大的情况下,可使用本地小型数据库,一般是由个人建立的个人数据库,常用的dbms有access和 foxpro 等。 (3)分布式数据库 分布式数据库就是为了解决main frame 大型数据库反映缓慢的问题而提出的, 它是由多台数据库服务器组成, 数据可来自不同的服务器种。分布式数据库可以将数据分放在不同的服务器上,这样易于管理数据,而且其存取效率也会比较高。(4)客户机/服务器数据库 随着微机的发展,其运算速度越来越快,而且价格低廉在利用网络将终端机,一般为微机和数据库服务器连接后就可以从数据库服务器存取数据,而且部分工作可以由终端机来完成,以分散数据库服务器的负担,这样数据库服务器就不必是价格昂贵的大型主机等,这就是客户机/服务器数据库网络结构。在客户机/服务器数据库的最简单形式中,其数据库的处理可分成两个系统:客户机(client)和数据库服务器(database server)前者运行数据库应用程序,后者运行全部或者部分数据库管理系统。在客户机上的数据应用程序,也称为前端系统处理所有的屏幕和用户输入,输出,在服务器上的后端系统处理和管理磁盘访问。例如前端系统的一个用户对数据库中的数据发出请求(也称为查询),前端应用程序就将该请求通过网络发送给服务器,数据库服务器就进行搜索,并将用户查询所需的数据返回到客户机。结构形式如图2.1所示:图2.1客户机/服务器数据库形式客户机/服务器结构的直接优点是很明显的,由于将处理工作分在两个系统上进行,在网络上的流量将大大较少,可以加速数据的传送 。由于数据必须存放在一个单独的系统中, 对于大公司来说可能是一个问题,因为他们的数据库用户分散在很广的地理区域内 或者需要与其他部门或者中心主机共享部分的部门数据库,这种情况就要求有一种方法能够将数据分布在各个主机上,但是客户机/服务器结构下的网络流量比较小,因而可以使得公司的局域网能轻松的访问远方的任何服务器。2.1.5 sql server 2000概述microsoft sql server 2000( 简称 sql server)由一系列相互协作的组件构成,能满足最大的 web 站点和企业数据处理系统存储和分析数据的需要. sql server 提供了在服务器系统上运行的服务器软件和在客户端运行的客户端软件, 连接客户和服务器计算机的网络软件则由 windows nt/2000 系统提供. sql server 的数据库系统的服务器运行在 windows nt/2000 系统上,负责创建和维护表和索引等数据库对象 确保数据完整性和安全性, 能够在出现各种错误时恢复数据. 客户端应用程序,可以运行在 windows 9x/nt/2000 系统上完成所有的用户交互操作, 将数据从服务器检索出来后, 可以生成拷贝以便在本地保留, 也可以进行操作. 提示: 客户/服务器 c/s 数据库计算是一种分布式的数据存储, 访问和处理技术, 在它已经称为大多数企业计算的标准 microsoft sql server 是客户/服务器系统应用的完美例子.sql server的客户/服务器提供了许多传统主机数据库所没有的先进功能.数据访问并非局限于某些已有的主机数据库应用程序. sql server 的一个主要优点就是与主流客户/服务器开发工具和桌面应用程序的紧密集成,可以使用许多方法访问sql server 数据库, 例如 ,可以在visual basic, visual c+, access, powerbuilder, delphi 和 visual foxpro 中访问 sql server 数据库. 在进行数据库应用程序开发时,可以使用数据访问对象 (ado), 远程数据对象(rdo),activex 控件,ole db, odbc ,db-library和其它第三方提供的开发工具访问sql server 数据库. sql server 的客户端应用程序可以通过sql server 提供的应用程序接口来访问服务器端的数据.有4个主要的访问方法:odbc, api ole db, transact-sql 和 db-library .对于客户机,可以将这些 api 作为动态连接库来使用,并且通过客户端的网络库与 sql server 服务器通信.2.1.6安装sql server 2000的系统要求 在安装 sql server 2000 以前,必须配置适当的硬件和软件,并保证它们正常运行,应该在安装 sql server 2000 之前检查硬件和软件的安装情况,这可以避免很多安装过程中发生的问题。(1)硬件要求:计算机:intel系列或兼容机,pentium 166m hz或更高内存(ram):企业版:至少64mb,推荐128mb或更多 标准版:至少64mb 个人版:windows 2000/xp上至少64mb,其他操作系统上至少32mb硬盘空间: sql server 数据库组件:95-270mb,一般为250mb analysis service:至少50mb,一般为130mb english query:80mb监视器:vga或更高分辨率;sql 图形工具要求800*600或更高分辨率定位设备:microsoft鼠标或兼容设备cd-rom驱动器:需要 对于内存大小,会由于操作系统的不同,可能需要额外的内存,而实际的盘空间要求也会因系统配置和选择安装的应用程序和功能的不同而异。注意: microsoft sql server 2000 没有硬件兼容性列表hcl,如果计算机满足上表所列的最低要求,则对于能够在windows 操作系统中使用的硬件,sql server 2000 软件即可运行。(2)软件要求sql server 2000 包括企业版,标准版,开发版和个人版每个版本对操作系统的要求都有所不同,每个版本及其组件安装所需要的操作系统如下所示:企业版:microsoft windows nt server 4.0 ;microsoft windows nt server4.0 企业版; windows 2000 server; windows 2000 advanced server 和 windows 2000 data center server 标准版:microsoft windows nt server 4.0 ;windows 2000 server; microsoft windows nt server 企业版;windows 2000 advanced server 和 windows 2000 data center server。 个人版:microsoft windows me; windows 98 windows nt workstation 4.0; windows 2000 professional ;microsoft windows nt server 4.0; windows 2000 server 和所有更高级的 windows 操作系统。 注意: sql server 2000 的某些功能要求必须在 microsoft windows 2000 server(任何版本)下才可以使用。另外,在microsoft windows nt server 4.0 上 必须安装 service pack5 sp5 或更高版本,这是 sql server 2000 所有版本的最低要求,而且 sql server 2000 中文版不支持英文版的 nt 4.0企业版, 如果在不带网卡的 windows 98 计算机上安装 sql server 2000 个人版,需要 windows 98 第二版。2.1.7系统数据库设计思想一个成功的管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出dfd图,并完成相应的数据字典。(2)概念设计的任务是从dfd出发,绘制出本主题的实体关系图,并列出各个实体与关系的纲要表。(3)逻辑设计的任务是从e-r图与对应的纲要表出发,确定各个实体及关系的表名属性。(4)物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如mssqlserver,我就是用的中文字段名),实现物理建库,完成数据库物理设计字典。(5)加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。 要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:.基本表的个数越少越好。.主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。.字段的个数越少越好。.所有基本表的设计均应尽量符合第三范式。2.1.8 sql编程设计sql 语言是应用于数据库的语言,本身是不能独立存在的是一种非过程性语言( non-procedural 语言),与一般的高级语言,例如 c pascal 是大不相同的。一般的高级语言在存取数据库时,需要依照每一行程序的顺序处理许多的动作 ,但是使用 sql 时 只需告诉数据库需要什么数据,怎么显示就可以了, 具体的内部操作则由数据库系统来完成。例如在本系统中,要从tlcyglxt数据库中的“菜谱费用信息表”中查找菜名为“一品鲍鱼汤” 的菜,则可以使用简单的几行命令即可(实际上,该语句经常写为一行,这里只是为了说明,将其分成了3行)select *from 菜谱费用信息表where 菜名=一品鲍鱼汤(1)sql语言的分类 sql 语言按照用途可以分为如下3类:(ddl data definition language) 数据定义语言(dml data manipulation language)数据处理语言(dcl data control language)数据控制语言下面分别介绍这3类:数据定义语言在数据库系统中,每一个数据库,数据库中的表,视图和索引等都是对象,要建立一个对象 ,都可以通过 sql 语言来完成,类似于这一类定义数据库对象的 sql 叙述即为 ddl 语言。例如数据库和表的创建,用creat来创建。下面是ddl命令:createtable,altertable,droptable,createindex,dropindex数据处理语言sql语法中处理数据的叙述称为 dml,例如使用 select查询表中的内容 或者使用 insert(插入)delete( 删除)和 update(更新)一笔记录等, 这些属于dml。数据控制语言对单个的 sql 语句来说,不管执行成功或者失败,都不会影响到其他的 sql 语句。但是在某些情况下,可能需要一次处理好几个 sql 语句,而且希望它们必须全部执行成功。如果其中一个执行失败,则这一批 sql 语句都不要执行,已经执行的应该恢复到开始的状态。举个简单的银行转账的例子,假设要从 a 账户中转 10000元到 b 账户中,首先从 a 账户中扣除 10000 元 ,然后在 b 账户中加入 10000 元。 但是 ,如果从 a 账户中扣除 10000 元后 出现错误, 导致下一步在 b 账户中加入 10000 元的操作不能完成,则 a 账户白白被扣除了 10000 元。 因此, 应保证这些操作要么一起完成, 要么都不要执行。 这种方式在 sql 中称作事务(transaction)。在 sql 中, 可以使用 dcl 将数个 sql 语句组合起来, 然后交给数据库系统一并处理。(2)如何使用这些语言? 查询数据数据库存在的意义在于将数据组织在一起,以方便查询。查询的含义就是用来描述从数据库中获取数据和操纵数据的过程。sql语言中最主要,最核心的部分是它的查询功能。查询语言用来对已经存在于数据库中的数据,按照特定的组合,条件表达式或者一定次序进行检索,其基本格式由 select 子句from 子句和 where 子句组成的sql 查询语句:select from where 也就是说 select 指定了要查看的列,字段 from 指定这些数据来自那里,表或者视图 where 则指定了要查询那些行,记录。完整的 select 语句的用法如下所示:select select_listinto new_talbefrom table_sourcewhere search_conditiongroup by group_by_expressionhaving search_conditionorder by order_expression asc | desc其中, 带有方括号的子句均是可选子句, 大写的单词表示sql 的关键字, 而小写的单词或者单词组合表示表(视图)名称或者给定条件.插入与删除数据新增数据使用 insert 语句 其语法如下:insert into table_name column_listvalues (data_values)其中各项参数的含义如下:table_name 要新增数据的表或者视图名称.column_list 要新增数据的字段名称,若没有指定字段列表 则指全部字段.data_values 新增记录的字段值 ,必须和column_list 相对应,也就是说每一个字段必须对应到一个字段值.如在表 authors 中插入一笔记录,即新增一个作者,输入 sql语句如下:insert authors(author_id,author_name) values(3,张英魁)删除数据要删除数据可以使用 delete 语句,其语法如下:delete table_name where serach_condition其中table_name 是要删除数据的表的名称;search_condition 是用来查找要删除数据的条件。例如, 删除 book 表中windows 2000 professional 看图速成 一书的记录,可以输入以下 sql 语句:delete bookwhere book_name=windows 2000 professional 看图速成如果要删除表中所有的行则可以使用 truncate 语句,其语法格式如下:truncate table table_name下面的例子即为删除 authors 表中的所有数据:truncate table authors修改数据在数据输入过程中,可能会出现输入错误,或者是因时间变化而需要更新数据,这都需要修改数据。可以在企业管理器中一笔一笔的修改记录,但是使用 sql 语言可能会更快捷。修改数据需要使用 update 语句,其语法如下:update table_name set columnwhere condition例如,将 authors 表中作者为 “王小明” 全部改为 “王晓明”。sql 语句如下:update authors set author_name=王晓明where author_name=王小明2.2 delphi 数据库开发2.2.1 delphi 数据库应用程序体系结构 在单机版系统中,数据库和应用程序位于同台微机上,我采用的是delphi两层体系结构:在网络版方案中,数据库位于服务器上,而应用程序位于远程客户机上,采用h层体系结构。以下就delphi数据库应用程序体系结构进行简单介绍,并对其中的两层、多层体系结构进行详细介绍。2.2.2delphi数据库体系结构简述 delphi使用一种新的开放式数据库体系结构来创建数据库应用程序。甚至可以不使用bde,而采用另一种新的客户机数据集组件来创建数据库应用程序。采用这种开放式体系结构;可以创建三种类型的数据库应用程序:(1)单层体系结构:这种结构的数据库应用程序可以通过bde操作本地的paradox和 dbase数据文件,它直接读写本地的平面数据文件。(2)双层体系结构:这种结构的数据库应用程序,是客户机/服务器结构中的客户机应用程序,它可以和本地的或远程的数据库服务器交互。(3)多层体系结构:这种结构的数据库应用程序是部分的客户机服务器应用程序,其中的客户机程序提供用户接口;并与一个应用服务器(有时也称远程数据代理)交互,而这个通常驻留在其它机器上的应用服务器又和一个远程数据库服务器交互。这三种结构的数据库应用程序都使用delphi的开放式数据集的体系结构,delphi提供了几种不同的方式来构造数据库应用程序,既可以通过bde来连接数据库,也可以通过其它数据库引擎来连接数据库,此外delphi提供一种直接和数据库相连的方法,那就是通过clientdataset和数据库相连。 下面分别介绍两层和多层数据库应用体系结构,以及创建它们所应用的组件2.2.3双层数据库应用程序体系结构在两层数据库应用程序模型中,客户机应用程序为数据提供一个应用界面,通过bde直接与本地或远程的数据库服务器交互。 这种模型中,所有的delphi应用程序都是数据库的客户。客户可以向数据库服务器请求信息或者发送信息。一个服务器能够同时处理许多请求,并协调数据的访问和更新。2.2.4多层数据库应用程序的结构 在多层结构的数据库模型中,一个应用程序被分成几个部分,驻留在不同的机器上。客户机应用程序为数据提供一个用户界面,它通过一个应用程序服务器来传递数据请求。应用程序服务器会直接与一个远程数据库服务器通信。在这种模型中,客户机应用程序、应用服务器和远程数据库服务器可以分布在不同的机器上。如图2.2所示:图2.2多层结构的数据库模型 使用delphi可以创建客户机程序和应用程序服务器。一个客户机程序使用标准的数据库控制组件,并通过一个数据源连接了一个或多个客户机数据集组件。每一个客户机数据集通过 iprovider 接口(它是应用程序服务器的远程数据模块的一部分)与应用程序服务器通信。iprovider接口是一个activex双重接口,它是当一个客户机第一次使用tremt6server组件建立与应用程序服务器的初始连接时,由应用程序服务器创建的。 应用程序服务器创建iprovider接口有两种方法:一种是应用程序服务器包括一个或多个 iprovider对象,这些对象可以用来创建接口;另一种情况时没有iprovider对象,delphi可以自动创建iprovider接口。一般来说,使用iprovider组件可以对接口有更多的控制。在任何一种情况下,客户机程序和应用程序服务器都是通过这个接口传递数据的。这个接口从数据集组件收集数据,并把更新信息送回给它。这些组件是通过bde与数据库服务器通信的。总而言之,在多层结构中,有多个与应用程序服务器通信的客户机程序。应用程序服务器,为所有客户机程序提供了访问数据库的网关,这样我们就集中控制了对数据库的访问。2.2.5 delphi数据库组件(1)用delphi6开发数据库应用,重点是和各种数据库组件打交道,能和数据库挂钩的组件对象有5种,它们是:session(数据库会话)、database(数据库)、dataset(数据集)、datasource(数据源)、datacontrol(数据控制组件,也叫data-controls即数据感知组件)。其中前面4种统称为数据访问(dataaccess)组件。(2)ado组件delphi6.0包含了可以用来访问microsoft公司的activexdataobjects(ado)格式数据库的组件。ado是microsoft公司关于各种类型数据的高等界面,后来逐渐演变成满足所有数据访问需要的完整解决办法。ado的对象模型是所有数据访问接口对象模型中最简单的一种。microsoft公司用来访问ado数据的应用程序界面技术是oledb。oledb是一种底层编程接口,用来访问许多不同类型的数据源,其中包括消息、文件系统以及其他一些非传统的数据源。oledb是一个由componentobjectmodel(com)接口组成的集合,用来隐藏创建数据访问服务过程中的细节。oledb提供了访问任何数据资源的方法,包括相互关联的数据库和相互不关联的数据库、email和文件系统、文本和图形以及用户定义的数据对象。 delphi的ado组件无需依靠bde而是使用ado技术,提供了可以通过数据控制组件访问数据的新方法。唯一的要求是在使用ado组件时必须运行ado/oledb。ado组件的使用使得delphi在访问数据的类型和采用的技术方面都有了很大的突破。2.2.6 sql语言在delphi中的应用在delphi中使用sql语言非常方便,一般来说,都是通过tquery或tadoquery组件来使用sql语言的。可以在tquery 或tadoquery组件的sql属性中设置sql语句。设计程序时,在该组件的属性对话框中选择sql属性,单击带省略号的按钮,就可以打开stringlisteditor对话框,然后我们就可以在对话框中添加sql语句。还可以使用delphi的sqlbuilder来自动生成sql语句,这样可以避免手工编写sql而可能造成的语法错误。静态sql语句在程序设计时便已固定下来,它不包含任何参数和变量。动态sql语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数.例如下面的语句是一条动态sql语句:select*frombookwhere图书编号=:bookcode;其中的变量bookcode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条sql语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法:根据参数在sql语句中出现的顺序,设置tadoquery组件的parameters属性值为参数赋值。直接根据sql语句中各参数的名字,调用parambyname方法来为各参数赋值。将tadoquery组件的datasource属性设置为另一个数据源,这样将另一个数据源中与当前tadoquery组件的sql语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要明细型数据库应用。 在使用动态sql语句编程时,常常用到一个很重要的方法prepare,调用prepare方法之后,delphi会将带参数的sql语句传送给与其对应的数据库引擎,对动态sql语句进行语法分析和优化。虽然在用动态sql语句编程时,调用prepare方法并不是必须的,但是调用prepare方法后,会极大地提高动态sql语句的执行性能,特别是当要反复多次执行同一条动态sql语句时,其优越性会更加明显。如果在应用程序中执行一条sql语句之前并没有显示地调用prepare方法,每次在执行sql语句时,delphi会隐含地调用prepare方法以准备这个查询。 tadoquery部件还有一个prepare属性,这是一个布尔型属性,当其属性值为true时,表明该查询已被准备好了(sql语句已被传送到数据库引擎中),当我们使用参数编辑器parameterseditor来为动态sql语句中的参数赋值时,当设置完相应的参数值并退出参数编辑器时,delphi会隐含地调用prepare方法以准备好查询。 当sql语句执行完之后,要想准备下一个查询,首先必须调用close方法,然后才能调用prepare方法准备下一个查询。一般来说,在一个应用程序中应该调用一次prepare方法,常常在窗体的oncreate事件处理过程中调用prepare方法,然后用上述介绍的方法为参数赋值,最后调用open方法或execsql方法执行sql语句,以完成查询。 当然在调用prepare方法准备好一个查询时,会消耗一些数据库资源,因而每当一个查询执行完毕之后,要养成调用unprepare方法以撤消查询的好习惯。在运行程序过程中,通过程序改变tquery或tadoquery部件的sql属性值时,delphi会自动地调用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借书证号,密码fromuserwhere(借书证号=: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命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。 在这里要特别注意的,一般情况下tquery或tadoquery部件的sql属性只能包含一条完整的sql语句,它不允许被设置成多条sql语句。当然有些数据库服务器也支持在tquery或tadoquery部件的sql属性中设置多条sql语句,只要数据库服务器允许这样,我们在编程时可以为sql属性设置多条sql语句。在为tquery或tadoquery部件设置完sql属性的属性值之后,也即编写好适当的sql程序之后,可以有多种方式来执行sql

温馨提示

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

评论

0/150

提交评论