畢設論文 餐飲管理系統(tǒng)

收藏

編號:28763798    類型:共享資源    大?。?span id="rmkcy7s" class="font-tahoma">620.53KB    格式:DOC    上傳時間:2021-09-11
15
積分
關 鍵 詞:
畢設論文 餐飲管理系統(tǒng) 論文 餐飲 管理 系統(tǒng)
資源描述:
第 46 頁 共 46 頁 引言 現(xiàn)代社會正在進入信息社會,蓬勃發(fā)展的餐飲業(yè)作為第三產(chǎn)業(yè)的重要組成部分在國民經(jīng)濟中的作用日益突出;同時,快節(jié)奏的生活,要求餐飲業(yè)跟上時代的步伐,提供高質量、快速的服務。 傳統(tǒng)的手工操作管理存在著許多無法避免的問題,例如: (1)人工計算帳單金額容易出現(xiàn)差錯 (2)收銀工作中跑單、漏單、偷錢現(xiàn)象普遍 (3)個別服務員作弊、改單、宰客情形時有發(fā)生 (3)客人消費單據(jù)難以保存和查詢 (4)無法對大量營業(yè)數(shù)據(jù)進行統(tǒng)計分析 隨著人民生活水平的提高,餐飲業(yè)在服務行業(yè)中占有越來越重要的地位。努力在當前餐飲行業(yè)日趨激烈的競爭中脫穎而出,已成為每位餐飲業(yè)經(jīng)營者所追求的目標。經(jīng)過多年發(fā)展,餐飲管理已經(jīng)逐漸由定性管理,進入到重視定量管理的科學階段。眾所周知,在定量管理的具體實現(xiàn)方法和手段方面,最有效的工具就是電腦管理。 國內(nèi)餐飲業(yè)的由于管理成本過高、服務效率低下,面臨國外餐飲業(yè)的入侵,處于競爭的劣勢;國外采用的新型的餐飲管理系統(tǒng),極大地提高了管理效率和服務水平,國內(nèi)的類似產(chǎn)品比較落后,且無法滿足餐廳的實際需要。為了促進餐飲業(yè)的現(xiàn)代化,提高我國餐飲業(yè)的競爭力,急切需要真正適合餐廳的實際需要的餐飲管理系統(tǒng)。本系統(tǒng)就是針對以上問題設計的。系統(tǒng)實現(xiàn)了一般餐飲企業(yè)日常營運的全面自動管理,并可以適用于管理需求十分相似的娛樂企業(yè)。 本論文首先介紹了餐飲管理系統(tǒng)的概況,對市場上現(xiàn)有的管理系統(tǒng)存在的問題進行了分析,指出了開發(fā)適合餐廳實際需要的餐飲管理系統(tǒng)的必要性,然后介紹了餐飲管理系統(tǒng)的相關基礎知識,其中包括SQL SERVER數(shù)據(jù)庫管理系統(tǒng)和DELPHI 數(shù)據(jù)庫應用程序體系結構,介紹了這兩種工具的基本知識和特點,還有C/S模式的理論和特點,再介紹了本餐飲管理系統(tǒng)的設計分析和應用程序設計,具體分析了各大模塊的設計實現(xiàn),這是本文的重點所在。 1 概述 1.1 餐飲業(yè)的發(fā)展、現(xiàn)狀以及存在的問題 “民以食為天”,作為衣食住行的一部分,飲食在生活中具有極其重要的地位。在原始社會,人類在飲食方面的要求僅限填腹,僅僅是生存的需要,處于與自然作斗爭的范疇,還談不上其他方面的意義。隨著人類社會的發(fā)展,生產(chǎn)力的提高使得生產(chǎn)方式發(fā)生巨大的變化,社會產(chǎn)品逐漸豐富,人們對飲食有了更多的選擇。人類經(jīng)歷工業(yè)時代進入信息時代后,飲食己經(jīng)從生存需要逐步發(fā)展成為具有多種內(nèi)涵的經(jīng)濟文化現(xiàn)象,加上民族文化背景,飲食往往成為民族和文化的一種象征。 而餐飲業(yè)也隨著社會的發(fā)展,從第一產(chǎn)業(yè)、第二產(chǎn)業(yè)中分化出來,逐漸成為第三產(chǎn)業(yè)的重要組成部分,在國民經(jīng)濟中發(fā)揮重要的作用。 我國的餐飲業(yè)歷史悠長,形成了別具一格的飲食文化,但是直到現(xiàn)代餐飲業(yè)才真正成為產(chǎn)業(yè)。 近二十多年來,我國餐飲業(yè)發(fā)展迅猛,日新月異,備種風味特色,各種經(jīng)營形式,各種組織結構的餐廳企業(yè)星羅棋布。當前中國城鎮(zhèn)擁有餐館300多萬家,1999年銷售額達到3199.6億,2000年達到3600億元,市場十分廣闊。與此同時,國外的餐飲業(yè)也加快了進入國內(nèi)市場的步伐,“麥當勞”、“肯德基”兩家美國快餐企業(yè)在進入中國十年以來,根據(jù)中國的特色調整經(jīng)營策略,已經(jīng)占據(jù)了一定的市場份額,而更多的外國餐飲業(yè)也不甘落后,爭相進入我國市場。異國餐飲文化在國內(nèi)餐飲市場相繼出現(xiàn),國內(nèi)外餐飲行業(yè)相互滲透、交叉融合的趨勢日益明顯,表明我國餐飲業(yè)正向橫向和縱向發(fā)拓展,也說明我國餐飲業(yè)正面臨著日益嚴峻的競爭。 (1)經(jīng)營方式落后,經(jīng)營特色不顯著:許多餐飲業(yè)仍保留傳統(tǒng)的經(jīng)營觀念模式,菜譜上的菜名往往無法及時更新,讓人大失所望。 (2)生產(chǎn)方式和管理服務水平低,科技含量不高。我國的餐飲業(yè)仍然以繁重的體力勞動加簡單工具的手工作坊式的生產(chǎn)方式為主,管理水平低下,無法適應信息時代快節(jié)奏的生活。 在與國外餐飲業(yè)的激烈競爭中,民族餐飲業(yè)由于經(jīng)營方式和管理手段落后,在競爭中處于劣勢。餐飲業(yè)的有識之士已經(jīng)看到了傳統(tǒng)餐飲業(yè)的缺點,開始實施新的經(jīng)營方式,借助新技術向現(xiàn)代餐飲轉變。在這一前提下,發(fā)展餐飲管理系統(tǒng)對提高餐飲業(yè)的科技含量,提高勞動生產(chǎn)率,節(jié)約成本,取得經(jīng)營優(yōu)勢有重要的意義。 信息化社會對餐飲業(yè)提出新的挑戰(zhàn)但是也提供新的機遇。生活節(jié)奏加快,餐飲業(yè)也必須跟上時代的步伐;日益發(fā)展的市場和日益嚴峻的競爭,是的我國餐飲業(yè)面臨著一個新的時代難題,經(jīng)營管理方式的落后曾經(jīng)是民族餐飲業(yè)發(fā)展的桂桔;而先進的技術提供了減輕體力勞動,改善服務質量,提高經(jīng)營管理效率的途徑。 開發(fā)符合我國國情的餐飲管理系統(tǒng)是市場的呼喚,是餐飲管理的需要,是社會信息化的必然。 1.2 餐飲管理系統(tǒng)的發(fā)展以及現(xiàn)狀 餐飲管理系統(tǒng)是在餐廳中使用的計算機系統(tǒng),能部分替代體力勞動,能存儲、處理并傳遞業(yè)務數(shù)據(jù),簡化餐廳的服務過程,加快服務速度;使餐廳管理者從繁雜的日常管理活動中解脫出來,專注于提高餐廳的服務水平和管理效率。餐飲管理系統(tǒng)經(jīng)歷了近十年的發(fā)展,日趨完善,受到廣大餐飲業(yè)人士的歡迎。 1.2.1餐飲管理系統(tǒng)的發(fā)展階段 餐飲管理系統(tǒng)是社會發(fā)展和技術進步的產(chǎn)物。二十世紀80年代,國外餐廳中開始使用電子收銀系統(tǒng),改善了資金的管理;而真正功能意義上的餐飲管理系統(tǒng)是在90年代初才開始出現(xiàn)并逐步發(fā)展,其發(fā)展經(jīng)歷了以下三個階段: (1)純軟件型的餐飲管理系統(tǒng): 是微機上運行的一套由庫存管理、資金管理、人事管理和業(yè)務管理等軟件模塊的組合而成的純軟件型的餐飲管理系統(tǒng)。該系統(tǒng)提供用微機點菜的功能,并能存儲業(yè)務數(shù)據(jù)。由子是單機服務,服務能力有限,不少業(yè)務數(shù)據(jù)是事后錄入的,缺少實時性;由于缺乏相應的電子化網(wǎng)絡支撐,這類系統(tǒng)不能加快餐廳的服務速度,提高服務速度,不能滿足餐飲業(yè)經(jīng)營者最迫切的需要。 (2)有線終端式餐飲管理系統(tǒng): 這類系統(tǒng)由主機以及與主機通過有線互連的觸摸屏終端組成,由有線終端向顧客提供點菜等服務,主機軟件提供有關數(shù)據(jù)和信息管理功能以及業(yè)務數(shù)據(jù)統(tǒng)計報表功能,能處理業(yè)務信息并產(chǎn)生必要的單據(jù)輸出。由多臺有線終端同時向顧客提供服務,顧客的操作結果通過網(wǎng)絡傳送,簡化了服務流程,提高了服務速度,餐廳和顧客同時享受到了便利。但這類系統(tǒng)有一個固有的缺陷,那就是它是有線連接的,擴展能力有限:而且觸摸屏本身體積較大,安裝困難,因此終端數(shù)目受到限制,也限制了系統(tǒng)的推廣和普及。 (3)無線終端式餐飲管理系統(tǒng): 無線終端式的餐飲管理系統(tǒng)的終端通過無線方式傳送數(shù)據(jù),因此具有靈活性的特點。它是在吸取前兩代餐飲管理系統(tǒng)的長處,克服它們?nèi)秉c的基礎上開發(fā)的系統(tǒng):在滿足餐飲業(yè)經(jīng)營者需要的同時,著重于提高終端的便攜性并降低系統(tǒng)的使用、安裝和擴展等方面的難度。由于終端通過無線連接,除了初期工程安裝時必須安裝基站外,沒有其他安裝上的困難;在系統(tǒng)使用過程中可以隨意增加終端,而不影響系統(tǒng)的運行:它代表了餐飲管理系統(tǒng)的發(fā)展趨勢和潮流。目前市場上的無線終端式餐飲管理系統(tǒng)主要有兩類,一種是紅外終端式,另一種是射頻無線終端式。 綜上所述,第三類的餐飲管理系統(tǒng)安裝簡單、易于擴展且能較好地滿足餐廳的實際需要,因此受到客戶的青睞。 1.2.2國內(nèi)外餐飲管理系統(tǒng)現(xiàn)狀: 在日韓兩國,餐飲業(yè)正在進行一次革命性的轉變。由于兩國餐飲業(yè)發(fā)展比較成熟,激烈的市場競爭促使餐飲業(yè)管理人員設法提高管理效率和服務水平:全面、細致的管理還為納稅和審核提供了有力的輔助手段,因此這類系統(tǒng)的開發(fā)也得到政府機關的支持和提倡。目前,這兩國的餐飲管理系統(tǒng)已經(jīng)很成熟,有不同規(guī)模的、多種技術特色的餐飲管理系統(tǒng)出現(xiàn)在市場上,而基于射頻無線的系統(tǒng)在餐廳中廣泛使用。 我國的餐飲業(yè)管理系統(tǒng)的發(fā)展落后于國外,目前處于第二階段、第三階段的過度階段。早在90年代初,我國不少軟件公司致力于開發(fā)餐飲管理系統(tǒng),較知名的有廣州的黑馬,深圳的科利華,連邦等等。近幾年,餐飲管理系統(tǒng)的研究也逐漸跟上國外的步伐,已經(jīng)有基于紅外的餐飲管理系統(tǒng)在餐廳中使用。但是還未見基于射頻無線的系統(tǒng)。 1.3 餐飲管理系統(tǒng)的開發(fā)背景 隨著我國國民經(jīng)濟的穩(wěn)定增長,城鎮(zhèn)居民可支配收入不斷增加,人民不再以“溫飽”為滿足,更加注重飲食的質量與檔次。據(jù)國家統(tǒng)計局統(tǒng)計數(shù)字顯示,20世紀90年代以來,我國城鎮(zhèn)居民在外就餐大幅度增長,大眾化餐飲成為市場主流,這極大推進了餐飲行業(yè)的快速發(fā)展。另外,隨著我國正式加入WTO與北京申辦2008年第29屆奧運會的成功,餐飲業(yè)在未來幾年內(nèi)將始終保持一個較高的發(fā)展速度。目前我國城鎮(zhèn)擁有餐館350多萬家,多數(shù)餐館規(guī)模小、服務質量差。隨著餐飲業(yè)的鏈鎖和國外餐飲巨頭的加入,餐飲業(yè)的競爭將會越來越激烈。要想在競爭中處于不敗之地,必須在管理、服務等方面提高服務管理意識。經(jīng)過多年發(fā)展,餐飲管理已經(jīng)逐漸由定性管理,進入到重視定量管理的科學階段,面對當前餐飲業(yè)普遍的產(chǎn)業(yè)化程度低,管理手段、管理技術落后等問題,使用計算機技術管理在很多程度上可以幫助餐飲企業(yè)克服這些困難。眾所周知,在定量管理的具體實現(xiàn)方法和手段方面,最有效的工具就是電腦管理。計算機管理系統(tǒng)可以提高餐飲企業(yè)的管理水平,節(jié)省大量人力、物力和財力,使經(jīng)營管理更加科學有序、經(jīng)營物流清晰,經(jīng)營狀況詳實、準確。 使用計算機管理系統(tǒng)可以給餐飲行業(yè)帶來以下的好處: (1) 可以提高工作效率 ①日常需要的各種報表再不需要人工統(tǒng)計,電腦自動生成。(部分酒樓設專人負責統(tǒng)計工作,使用系統(tǒng)后,就不需要了) ②點菜、分單、出品、結帳、庫存信息全部一體化管理,大大提高工作效率,降低管理難度,酒樓管理變得非常輕松。 (2)可以增加管理水平 ①智能化安全庫存線確定功能,確保最合理的庫存水平,在不需要憑借老員工的經(jīng)驗確定了。 ②客戶關系管理模塊,確保您及早發(fā)現(xiàn)潛在的重要客戶。 (3)可以增加收入 ①菜品組成分析能確保菜品配料保持穩(wěn)定,進一步確保菜品質量,促進銷售,利于品牌營造。 ②自動結帳使您可以任意增刪菜品,隨時調整菜品價格來適應競爭需要,提高競爭力。 (4)可以節(jié)約成本 ①物品采購價格分析可以有效降低采購價格,確保成本降低。 ②物品過期告警能減少物品過期現(xiàn)象出現(xiàn),減少浪費。 ③庫存管理自動化能降低庫存盤點難度,可以適當提高庫存盤點頻率,有效減少庫存物品流失。 (5)提高酒樓的形象 應用計算機輔助管理酒樓,無形中提高了酒樓的形象。 綜上所述,因此,開發(fā)出這樣一套功能完整的餐飲管理軟件,必定是符合社會發(fā)展的需要,符合人們的需求。 2 餐飲管理系統(tǒng)有關基礎知識 2.1 SQL SERVER 數(shù)據(jù)庫管理系統(tǒng)簡介 2.1.1數(shù)據(jù)庫的特點 與文件系統(tǒng)相比 數(shù)據(jù)庫系統(tǒng)有以下特點: (1)數(shù)據(jù)的結構化 在文件系統(tǒng)中,文件之間不存在聯(lián)系 文件內(nèi)部的數(shù)據(jù)一般是有結構的,但是從數(shù)據(jù)的整體來說是沒有結構的 數(shù)據(jù)庫系統(tǒng)也包含許多單獨的文件但是它們之間相互聯(lián)系 在整體上也服從一定的結構形式從而能更適應管理大量數(shù)據(jù)的需求 (2)數(shù)據(jù)共享 共享是數(shù)據(jù)庫系統(tǒng)的目的,也是其最重要的特點,一個數(shù)據(jù)庫中的數(shù)據(jù)不僅可以為同一企業(yè)或者組織內(nèi)部的各部門共享,還可以為不同國家地區(qū)的用戶所共享. (3) 數(shù)據(jù)獨立性 在文件系統(tǒng)中,文件和應用程序相互依賴,一方的改變總要影響另一方的改變,數(shù)據(jù)庫系統(tǒng)則力求較少這種依賴性,實現(xiàn)數(shù)據(jù)的獨立性. (4)可控冗余度 數(shù)據(jù)專用后 每個用戶擁有并使用自己的數(shù)據(jù),許多數(shù)據(jù)就會出現(xiàn)重復,這就是數(shù)據(jù)冗余.實現(xiàn)共享后,同一數(shù)據(jù)庫中的數(shù)據(jù)集中存儲 ,共同使用因而易于避免重復 ,減少和控制數(shù)據(jù)的冗余. 2.1.2用戶分類 數(shù)據(jù)庫系統(tǒng)的用戶是指使用和訪問數(shù)據(jù)庫中數(shù)據(jù)的人,它包括以4種: (1)數(shù)據(jù)庫設計者 負責整個數(shù)據(jù)庫系統(tǒng)的設計工作設計者依據(jù)用戶的需求設計合適的表和格式來存放數(shù)據(jù)并對整個數(shù)據(jù)庫的存取權限做出規(guī)劃 這些工作完成后 即可交給數(shù)據(jù)庫管理員進行管理。注意:這里的設計者一般并不只是指一個人,而往往是一組人. (2)數(shù)據(jù)庫管理員 數(shù)據(jù)庫管理員 Database Administrator DBA 決定數(shù)據(jù)庫種的數(shù)據(jù)并對這些數(shù)據(jù)進行修改,維護,監(jiān)督數(shù)據(jù)庫的運行狀況.數(shù)據(jù)庫管理員的任務主要包括:決定數(shù)據(jù)庫的內(nèi)容, 管理賬號,備份和還原數(shù)據(jù)以及提高數(shù)據(jù)庫的運行效率. (3)應用程序設計者 負責編寫訪問數(shù)據(jù)庫的應用程序 使得用戶可以很友好地使用數(shù)據(jù)庫,可以使用 Visual Basic Visual C++ Delphi 等來開發(fā)數(shù)據(jù)庫應用程序. (4)普通用戶 普通用戶只需操作應用程序來訪問所需要查詢的數(shù)據(jù),不需要關心數(shù)據(jù)庫地具體格式及其維護和管理等問題. 在實際工作中, 數(shù)據(jù)庫管理員利用賬號來控制每個用戶地訪問權限,每個用戶都由自己的賬號和密碼 ,使用此賬號和密碼,用戶可以登錄數(shù)據(jù)庫,并在允許的權限范圍內(nèi)訪問數(shù)據(jù)庫種的數(shù)據(jù). 2.1.3數(shù)據(jù)庫管理系統(tǒng) (BDMS) 數(shù)據(jù)庫管理系統(tǒng) (DBMS) 是指幫助用戶建立,使用和管理數(shù)據(jù)庫的軟件系統(tǒng) ,他通常有下面三個組成部分: (1)數(shù)據(jù)描述語言( Data Description Language DDL ) 用來描述數(shù)據(jù)庫的結構 供用戶建立數(shù)據(jù)庫 (2)數(shù)據(jù)操作語言 (Data Manipulation Language DML) 供用戶對數(shù)據(jù)庫進行數(shù)據(jù)的查詢(數(shù)據(jù)的檢索和統(tǒng)計等)和存儲(數(shù)據(jù)的增加,刪除和修改等)等操作. (3)其他管理和控制程序 包括安全通訊控制和工作日志等. 一般情況下DDL和 DML組成一個一體化的語言,對于關系型數(shù)據(jù)庫,最常用的就是 SQL Structure Query Language語言,幾乎所有的數(shù)據(jù)庫管理系統(tǒng)都提供了對 SQL 語言的支持. 對 DDL 和 DML數(shù)據(jù)庫管理系統(tǒng)都帶有翻譯程序,與普通高級語言類似翻譯程序也可以分為編譯執(zhí)行和解釋執(zhí)行兩種方式, 如 SQL語言,既有解釋型也有編譯型. 數(shù)據(jù)庫管理系統(tǒng)提供了用戶和數(shù)據(jù)庫之間的軟件界面,使得用戶更方便地操作數(shù)據(jù)庫 ,一般來說它應如下功能: (1)數(shù)據(jù)定義 和高級語言類似,需要定義需要的數(shù)據(jù)類型。 (2)數(shù)據(jù)處理 DBMS 必須提供用戶對數(shù)據(jù)庫的存取能力,包括記錄地增加,修改,檢索和刪除等。 (3)數(shù)據(jù)安全 管理和監(jiān)督用戶的權限 ,防止用戶有任何破壞或者惡意的意圖. (4)效率 DBMS 應保證數(shù)據(jù)庫的高效率運行, 以提高數(shù)據(jù)檢索和修改的速度 . 2.1.4網(wǎng)絡結構 可依據(jù)數(shù)據(jù)的多少,使用的人數(shù)與硬件設備等條件,將數(shù)據(jù)庫管理系統(tǒng)分為4種網(wǎng)絡結構:Main Frame 大型數(shù)據(jù)庫,本地小型數(shù)據(jù)庫,分布式數(shù)據(jù)庫和客戶機/服務器數(shù)據(jù)庫。下面分別介紹這4種網(wǎng)絡結構,并重點介紹客戶機/服務器數(shù)據(jù)庫。 (1)Main Frame 大型數(shù)據(jù)庫 大型數(shù)據(jù)庫是由一臺性能很強的計算機(稱為主機或者數(shù)據(jù)庫服務器)負責處理龐大的數(shù)據(jù) 用戶通過終端機與大型主機相連,以存取數(shù)據(jù)。Main Frame 大型數(shù)據(jù)庫的所有檢索和修改的功能都由主機來完成 因此 在有多人使用時 主機會非常忙碌 使得反映比較緩慢 另外 大型主機的性能很強 但價格都相當昂貴一般只有大型機構使用。 (2)本地小型數(shù)據(jù)庫 在用戶較少,數(shù)據(jù)量也不大的情況下,可使用本地小型數(shù)據(jù)庫,一般是由個人建立的個人數(shù)據(jù)庫,常用的DBMS有Access和 Foxpro 等。 (3)分布式數(shù)據(jù)庫 分布式數(shù)據(jù)庫就是為了解決Main Frame 大型數(shù)據(jù)庫反映緩慢的問題而提出的, 它是由多臺數(shù)據(jù)庫服務器組成, 數(shù)據(jù)可來自不同的服務器種。分布式數(shù)據(jù)庫可以將數(shù)據(jù)分放在不同的服務器上,這樣易于管理數(shù)據(jù),而且其存取效率也會比較高。 (4)客戶機/服務器數(shù)據(jù)庫 隨著微機的發(fā)展,其運算速度越來越快,而且價格低廉在利用網(wǎng)絡將終端機,一般為微機和數(shù)據(jù)庫服務器連接后就可以從數(shù)據(jù)庫服務器存取數(shù)據(jù),而且部分工作可以由終端機來完成,以分散數(shù)據(jù)庫服務器的負擔,這樣數(shù)據(jù)庫服務器就不必是價格昂貴的大型主機等,這就是客戶機/服務器數(shù)據(jù)庫網(wǎng)絡結構。 在客戶機/服務器數(shù)據(jù)庫的最簡單形式中,其數(shù)據(jù)庫的處理可分成兩個系統(tǒng):客戶機(Client)和數(shù)據(jù)庫服務器(Database Server)前者運行數(shù)據(jù)庫應用程序,后者運行全部或者部分數(shù)據(jù)庫管理系統(tǒng)。在客戶機上的數(shù)據(jù)應用程序,也稱為前端系統(tǒng)處理所有的屏幕和用戶輸入,輸出,在服務器上的后端系統(tǒng)處理和管理磁盤訪問。例如前端系統(tǒng)的一個用戶對數(shù)據(jù)庫中的數(shù)據(jù)發(fā)出請求(也稱為查詢),前端應用程序就將該請求通過網(wǎng)絡發(fā)送給服務器,數(shù)據(jù)庫服務器就進行搜索,并將用戶查詢所需的數(shù)據(jù)返回到客戶機。結構形式如圖2.1所示: 圖2.1客戶機/服務器數(shù)據(jù)庫形式 客戶機/服務器結構的直接優(yōu)點是很明顯的,由于將處理工作分在兩個系統(tǒng)上進行,在網(wǎng)絡上的流量將大大較少,可以加速數(shù)據(jù)的傳送 。 由于數(shù)據(jù)必須存放在一個單獨的系統(tǒng)中, 對于大公司來說可能是一個問題,因為他們的數(shù)據(jù)庫用戶分散在很廣的地理區(qū)域內(nèi) 或者需要與其他部門或者中心主機共享部分的部門數(shù)據(jù)庫,這種情況就要求有一種方法能夠將數(shù)據(jù)分布在各個主機上,但是客戶機/服務器結構下的網(wǎng)絡流量比較小,因而可以使得公司的局域網(wǎng)能輕松的訪問遠方的任何服務器。 2.1.5 SQL SERVER 2000概述 Microsoft SQL Server 2000( 簡稱 SQL Server)由一系列相互協(xié)作的組件構成,能滿足最大的 Web 站點和企業(yè)數(shù)據(jù)處理系統(tǒng)存儲和分析數(shù)據(jù)的需要. SQL Server 提供了在服務器系統(tǒng)上運行的服務器軟件和在客戶端運行的客戶端軟件, 連接客戶和服務器計算機的網(wǎng)絡軟件則由 Windows NT/2000 系統(tǒng)提供. SQL Server 的數(shù)據(jù)庫系統(tǒng)的服務器運行在 Windows NT/2000 系統(tǒng)上,負責創(chuàng)建和維護表和索引等數(shù)據(jù)庫對象 確保數(shù)據(jù)完整性和安全性, 能夠在出現(xiàn)各種錯誤時恢復數(shù)據(jù). 客戶端應用程序,可以運行在 Windows 9x/NT/2000 系統(tǒng)上完成所有的用戶交互操作, 將數(shù)據(jù)從服務器檢索出來后, 可以生成拷貝以便在本地保留, 也可以進行操作. 提示: 客戶/服務器 C/S 數(shù)據(jù)庫計算是一種分布式的數(shù)據(jù)存儲, 訪問和處理技術, 在它已經(jīng)稱為大多數(shù)企業(yè)計算的標準 Microsoft SQL Server 是客戶/服務器系統(tǒng)應用的完美例子. SQL Server的客戶/服務器提供了許多傳統(tǒng)主機數(shù)據(jù)庫所沒有的先進功能.數(shù)據(jù)訪問并非局限于某些已有的主機數(shù)據(jù)庫應用程序. SQL Server 的一個主要優(yōu)點就是與主流客戶/服務器開發(fā)工具和桌面應用程序的緊密集成,可以使用許多方法訪問SQL Server 數(shù)據(jù)庫, 例如 ,可以在Visual Basic, Visual C++, Access, PowerBuilder, Delphi 和 Visual FoxPro 中訪問 SQL Server 數(shù)據(jù)庫. 在進行數(shù)據(jù)庫應用程序開發(fā)時,可以使用數(shù)據(jù)訪問對象 (ADO), 遠程數(shù)據(jù)對象(RDO),ActiveX 控件,OLE DB, ODBC ,DB-Library和其它第三方提供的開發(fā)工具訪問SQL Server 數(shù)據(jù)庫. SQL Server 的客戶端應用程序可以通過SQL Server 提供的應用程序接口來訪問服務器端的數(shù)據(jù).有4個主要的訪問方法:ODBC, API OLE DB, Transact-SQL 和 DB-Library .對于客戶機,可以將這些 API 作為動態(tài)連接庫來使用,并且通過客戶端的網(wǎng)絡庫與 SQL Server 服務器通信. 2.1.6安裝SQL SERVER 2000的系統(tǒng)要求 在安裝 SQL Server 2000 以前,必須配置適當?shù)挠布蛙浖?,并保證它們正常運行,應該在安裝 SQL Server 2000 之前檢查硬件和軟件的安裝情況,這可以避免很多安裝過程中發(fā)生的問題。 (1)硬件要求: 計算機:INTEL系列或兼容機,PENTIUM 166M HZ或更高 內(nèi)存(RAM):企業(yè)版:至少64MB,推薦128MB或更多 標準版:至少64MB 個人版:WINDOWS 2000/XP上至少64MB,其他操作系統(tǒng)上至少32MB 硬盤空間: SQL SERVER 數(shù)據(jù)庫組件:95-270MB,一般為250MB ANALYSIS SERVICE:至少50MB,一般為130MB ENGLISH QUERY:80MB 監(jiān)視器:VGA或更高分辨率;SQL 圖形工具要求800*600或更高分辨率 定位設備:MICROSOFT鼠標或兼容設備 CD-ROM驅動器:需要 對于內(nèi)存大小,會由于操作系統(tǒng)的不同,可能需要額外的內(nèi)存,而實際的盤空間要求也會因系統(tǒng)配置和選擇安裝的應用程序和功能的不同而異。 注意: Microsoft SQL Server 2000 沒有硬件兼容性列表HCL,如果計算機滿足上表所列的最低要求,則對于能夠在Windows 操作系統(tǒng)中使用的硬件,SQL Server 2000 軟件即可運行。 (2)軟件要求 SQL Server 2000 包括企業(yè)版,標準版,開發(fā)版和個人版每個版本對操作系統(tǒng)的要求都有所不同,每個版本及其組件安裝所需要的操作系統(tǒng)如下所示: 企業(yè)版:Microsoft Windows NT Server 4.0 ;Microsoft Windows NT Server4.0 企業(yè)版; 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 企業(yè)版;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 操作系統(tǒng)。 注意: 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企業(yè)版, 如果在不帶網(wǎng)卡的 Windows 98 計算機上安裝 SQL Server 2000 個人版,需要 Windows 98 第二版。 2.1.7系統(tǒng)數(shù)據(jù)庫設計思想 一個成功的管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫是其中一個非常重要的條件和關鍵技術。系統(tǒng)所涉及的數(shù)據(jù)庫設計分五個步驟:數(shù)據(jù)庫需求分析、概念設計、邏輯設計、物理設計與加載測試。 (1)數(shù)據(jù)庫需求分析的任務是將業(yè)務管理單證流化為數(shù)據(jù)流,劃分主題之間的邊界,繪制出DFD圖,并完成相應的數(shù)據(jù)字典。 (2)概念設計的任務是從DFD出發(fā),繪制出本主題的實體-關系圖,并列出各個實體與關系的綱要表。 (3)邏輯設計的任務是從E-R圖與對應的綱要表出發(fā),確定各個實體及關系的表名屬性。 (4)物理設計的任務是確定所有屬性的類型、寬度與取值范圍,設計出基本表的主鍵,將所有的表名與字段名英文化(現(xiàn)在很多軟件能支持中文字段,如MSSQLServer,我就是用的中文字段名),實現(xiàn)物理建庫,完成數(shù)據(jù)庫物理設計字典。 (5)加載測試工作貫穿于程序測試工作的全過程,整個錄入、修改、查詢、處理工作均可視為對數(shù)據(jù)庫的加載測試工作。 要設計出一個好的信息管理系統(tǒng)數(shù)據(jù)庫,除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則: ①.基本表的個數(shù)越少越好。 ②.主鍵的個數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡單。 ③.字段的個數(shù)越少越好。 ④.所有基本表的設計均應盡量符合第三范式。 2.1.8 SQL編程設計 SQL 語言是應用于數(shù)據(jù)庫的語言,本身是不能獨立存在的是一種非過程性語言( non-procedural 語言),與一般的高級語言,例如 C Pascal 是大不相同的。一般的高級語言在存取數(shù)據(jù)庫時,需要依照每一行程序的順序處理許多的動作 ,但是使用 SQL 時 只需告訴數(shù)據(jù)庫需要什么數(shù)據(jù),怎么顯示就可以了, 具體的內(nèi)部操作則由數(shù)據(jù)庫系統(tǒng)來完成。 例如在本系統(tǒng)中,要從TLCYGLXT數(shù)據(jù)庫中的“菜譜費用信息表”中查找菜名為“一品鮑魚湯” 的菜,則可以使用簡單的幾行命令即可(實際上,該語句經(jīng)常寫為一行,這里只是為了說明,將其分成了3行) Select * From 菜譜費用信息表 Where 菜名=‘一品鮑魚湯’ (1)SQL語言的分類 SQL 語言按照用途可以分為如下3類: (DDL Data Definition Language) 數(shù)據(jù)定義語言 (DML Data Manipulation Language)數(shù)據(jù)處理語言 (DCL Data Control Language)數(shù)據(jù)控制語言 下面分別介紹這3類: ①數(shù)據(jù)定義語言 在數(shù)據(jù)庫系統(tǒng)中,每一個數(shù)據(jù)庫,數(shù)據(jù)庫中的表,視圖和索引等都是對象,要建立一個對象 ,都可以通過 SQL 語言來完成,類似于這一類定義數(shù)據(jù)庫對象的 SQL 敘述即為 DDL 語言。例如數(shù)據(jù)庫和表的創(chuàng)建,用CREAT來創(chuàng)建。下面是DDL命令: CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX ②數(shù)據(jù)處理語言 SQL語法中處理數(shù)據(jù)的敘述稱為 DML,例如使用 SELECT查詢表中的內(nèi)容 或者使用 INSERT(插入)DELETE( 刪除)和 UPDATE(更新)一筆記錄等, 這些屬于DML。 ③數(shù)據(jù)控制語言 對單個的 SQL 語句來說,不管執(zhí)行成功或者失敗,都不會影響到其他的 SQL 語句。但是在某些情況下,可能需要一次處理好幾個 SQL 語句,而且希望它們必須全部執(zhí)行成功。如果其中一個執(zhí)行失敗,則這一批 SQL 語句都不要執(zhí)行,已經(jīng)執(zhí)行的應該恢復到開始的狀態(tài)。 舉個簡單的銀行轉賬的例子,假設要從 A 賬戶中轉 10000元到 B 賬戶中,首先從 A 賬戶中扣除 10000 元 ,然后在 B 賬戶中加入 10000 元。 但是 ,如果從 A 賬戶中扣除 10000 元后 出現(xiàn)錯誤, 導致下一步在 B 賬戶中加入 10000 元的操作不能完成,則 A 賬戶白白被扣除了 10000 元。 因此, 應保證這些操作要么一起完成, 要么都不要執(zhí)行。 這種方式在 SQL 中稱作事務(Transaction)。在 SQL 中, 可以使用 DCL 將數(shù)個 SQL 語句組合起來, 然后交給數(shù)據(jù)庫系統(tǒng)一并處理。 (2)如何使用這些語言? ①查詢數(shù)據(jù) 數(shù)據(jù)庫存在的意義在于將數(shù)據(jù)組織在一起,以方便查詢。查詢的含義就是用來描述從數(shù)據(jù)庫中獲取數(shù)據(jù)和操縱數(shù)據(jù)的過程。SQL語言中最主要,最核心的部分是它的查詢功能。查詢語言用來對已經(jīng)存在于數(shù)據(jù)庫中的數(shù)據(jù),按照特定的組合,條件表達式或者一定次序進行檢索,其基本格式由 SELECT 子句FROM 子句和 WHERE 子句組成的SQL 查詢語句: SELECT <列名表> FROM <表或視圖名> WHERE <查詢限定條件> 也就是說 SELECT 指定了要查看的列,字段 FROM 指定這些數(shù)據(jù)來自那里,表或者視圖 WHERE 則指定了要查詢那些行,記錄。 完整的 SELECT 語句的用法如下所示: SELECT select_list [INTO new_talbe] FROM table_source [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expression [ASC | DESC]] 其中, 帶有方括號的子句均是可選子句, 大寫的單詞表示SQL 的關鍵字, 而小寫的單詞或者單詞組合表示表(視圖)名稱或者給定條件. ②插入與刪除數(shù)據(jù) 新增數(shù)據(jù)使用 INSERT 語句 其語法如下: INSERT [INTO] table_name [column_list] VALUES (data_values) 其中各項參數(shù)的含義如下: table_name 要新增數(shù)據(jù)的表或者視圖名稱. column_list 要新增數(shù)據(jù)的字段名稱,若沒有指定字段列表 則指全部字段. data_values 新增記錄的字段值 ,必須和column_list 相對應,也就是說每一個字段必須對應到一個字段值. 如在表 authors 中插入一筆記錄,即新增一個作者,輸入 SQL語句如下: INSERT authors(author_id,author_name) VALUES(3,張英魁) ③刪除數(shù)據(jù) 要刪除數(shù)據(jù)可以使用 DELETE 語句,其語法如下: DELETE table_name WHERE serach_condition 其中table_name 是要刪除數(shù)據(jù)的表的名稱;search_condition 是用來查找要刪除數(shù)據(jù)的條件。 例如, 刪除 book 表中《Windows 2000 Professional 看圖速成》 一書的記錄,可以輸入以下 SQL 語句: DELETE bookWHERE book_name=Windows 2000 Professional 看圖速成 如果要刪除表中所有的行則可以使用 TRUNCATE 語句,其語法格式如下:TRUNCATE TABLE table_name 下面的例子即為刪除 authors 表中的所有數(shù)據(jù): TRUNCATE TABLE authors ④修改數(shù)據(jù) 在數(shù)據(jù)輸入過程中,可能會出現(xiàn)輸入錯誤,或者是因時間變化而需要更新數(shù)據(jù),這都需要修改數(shù)據(jù)。可以在企業(yè)管理器中一筆一筆的修改記錄,但是使用 SQL 語言可能會更快捷。 修改數(shù)據(jù)需要使用 UPDATE 語句,其語法如下: UPDATE table_name SET column[WHERE condition] 例如,將 authors 表中作者為 “王小明” 全部改為 “王曉明”。SQL 語句如下: UPDATE authors SET author_name=王曉明WHERE author_name=王小明 2.2 DELPHI 數(shù)據(jù)庫開發(fā) 2.2.1 DELPHI 數(shù)據(jù)庫應用程序體系結構 在單機版系統(tǒng)中,數(shù)據(jù)庫和應用程序位于同~臺微機上,我采用的是DELPHI兩層體系結構:在網(wǎng)絡版方案中,數(shù)據(jù)庫位于服務器上,而應用程序位于遠程客戶機上,采用H層體系結構。以下就DELPHI數(shù)據(jù)庫應用程序體系結構進行簡單介紹,并對其中的兩層、多層體系結構進行詳細介紹。 2.2.2DELPHI數(shù)據(jù)庫體系結構簡述 DELPHI使用一種新的開放式數(shù)據(jù)庫體系結構來創(chuàng)建數(shù)據(jù)庫應用程序。甚至可以不使用BDE,而采用另一種新的客戶機數(shù)據(jù)集組件來創(chuàng)建數(shù)據(jù)庫應用程序。采用這種開放式體系結構;可以創(chuàng)建三種類型的數(shù)據(jù)庫應用程序: (1)單層體系結構:這種結構的數(shù)據(jù)庫應用程序可以通過BDE操作本地的PARADOX和 dBase數(shù)據(jù)文件,它直接讀寫本地的平面數(shù)據(jù)文件。 (2)雙層體系結構:這種結構的數(shù)據(jù)庫應用程序,是客戶機/服務器結構中的客戶機應用程序,它可以和本地的或遠程的數(shù)據(jù)庫服務器交互。 (3)多層體系結構:這種結構的數(shù)據(jù)庫應用程序是部分的客戶機/服務器應用程序,其中的客戶機程序提供用戶接口;并與一個應用服務器(有時也稱遠程數(shù)據(jù)代理)交互,而這個通常駐留在其它機器上的應用服務器又和一個遠程數(shù)據(jù)庫服務器交互。 這三種結構的數(shù)據(jù)庫應用程序都使用DELPHI的開放式數(shù)據(jù)集的體系結構,DELPHI提供了幾種不同的方式來構造數(shù)據(jù)庫應用程序,既可以通過BDE來連接數(shù)據(jù)庫,也可以通過其它數(shù)據(jù)庫引擎來連接數(shù)據(jù)庫,此外DelPhi提供一種直接和數(shù)據(jù)庫相連的方法,那就是通過ClientDataset和數(shù)據(jù)庫相連。 下面分別介紹兩層和多層數(shù)據(jù)庫應用體系結構,以及創(chuàng)建它們所應用的組 件 2.2.3雙層數(shù)據(jù)庫應用程序體系結構 在兩層數(shù)據(jù)庫應用程序模型中,客戶機應用程序為數(shù)據(jù)提供一個應用界面,通過BDE直接與本地或遠程的數(shù)據(jù)庫服務器交互。 這種模型中,所有的DELPHI應用程序都是數(shù)據(jù)庫的客戶??蛻艨梢韵驍?shù)據(jù)庫服務器請求信息或者發(fā)送信息。一個服務器能夠同時處理許多請求,并協(xié)調數(shù)據(jù)的訪問和更新。 2.2.4多層數(shù)據(jù)庫應用程序的結構 在多層結構的數(shù)據(jù)庫模型中,一個應用程序被分成幾個部分,駐留在不同 的機器上。客戶機應用程序為數(shù)據(jù)提供一個用戶界面,它通過一個應用程序服 務器來傳遞數(shù)據(jù)請求。應用程序服務器會直接與一個遠程數(shù)據(jù)庫服務器通信。 在這種模型中,客戶機應用程序、應用服務器和遠程數(shù)據(jù)庫服務器可以分布在 不同的機器上。如圖2.2所示: 圖2.2多層結構的數(shù)據(jù)庫模型 使用DelPhi可以創(chuàng)建客戶機程序和應用程序服務器。一個客戶機程序使用標準的數(shù)據(jù)庫控制組件,并通過一個數(shù)據(jù)源連接了一個或多個客戶機數(shù)據(jù)集組件。每一個客戶機數(shù)據(jù)集通過 IProvider 接口(它是應用程序服務器的遠程數(shù)據(jù)模塊的一部分)與應用程序服務器通信。IProvider接口是一個ActiveX雙重接口,它是當一個客戶機第一次使用Tremt6Server組件建立與應用程序服務器的初始連接時,由應用程序服務器創(chuàng)建的。 應用程序服務器創(chuàng)建IProvider接口有兩種方法:一種是應用程序服務器包括一個或多個 IProvider對象,這些對象可以用來創(chuàng)建接口;另一種情況時沒有IProvider對象,DelPhi可以自動創(chuàng)建IProvider接口。一般來說,使用IProvider組件可以對接口有更多的控制。在任何一種情況下,客戶機程序和應用程序服務器都是通過這個接口傳遞數(shù)據(jù)的。這個接口從數(shù)據(jù)集組件收集數(shù)據(jù),并把更新信息送回給它。這些組件是通過BDE與數(shù)據(jù)庫服務器通信的。 總而言之,在多層結構中,有多個與應用程序服務器通信的客戶機程序。應用程序服務器,為所有客戶機程序提供了訪問數(shù)據(jù)庫的網(wǎng)關,這樣我們就集中控制了對數(shù)據(jù)庫的訪問。 2.2.5 DELPHI數(shù)據(jù)庫組件 (1)用Delphi6開發(fā)數(shù)據(jù)庫應用,重點是和各種數(shù)據(jù)庫組件打交道,能和數(shù)據(jù)庫掛鉤的組件對象有5種,它們是:Session(數(shù)據(jù)庫會話)、Database(數(shù)據(jù)庫)、Dataset(數(shù)據(jù)集)、DataSource(數(shù)據(jù)源)、Datacontrol(數(shù)據(jù)控制組件,也叫data-controls即數(shù)據(jù)感知組件)。其中前面4種統(tǒng)稱為數(shù)據(jù)訪問(DataAccess)組件。 (2)ADO組件 Delphi6.0包含了可以用來訪問Microsoft公司的ActiveXDataObjects(ADO)格式數(shù)據(jù)庫的組件。ADO是Microsoft公司關于各種類型數(shù)據(jù)的高等界面,后來逐漸演變成滿足所有數(shù)據(jù)訪問需要的完整解決辦法。ADO的對象模型是所有數(shù)據(jù)訪問接口對象模型中最簡單的一種。Microsoft公司用來訪問ADO數(shù)據(jù)的應用程序界面技術是OLEDB。OLEDB是一種底層編程接口,用來訪問許多不同類型的數(shù)據(jù)源,其中包括消息、文件系統(tǒng)以及其他一些非傳統(tǒng)的數(shù)據(jù)源。OLEDB是一個由ComponentObjectModel(COM)接口組成的集合,用來隱藏創(chuàng)建數(shù)據(jù)訪問服務過程中的細節(jié)。OLEDB提供了訪問任何數(shù)據(jù)資源的方法,包括相互關聯(lián)的數(shù)據(jù)庫和相互不關聯(lián)的數(shù)據(jù)庫、Email和文件系統(tǒng)、文本和圖形以及用戶定義的數(shù)據(jù)對象。 Delphi的ADO組件無需依靠BDE而是使用ADO技術,提供了可以通過數(shù)據(jù)控制組件訪問數(shù)據(jù)的新方法。唯一的要求是在使用ADO組件時必須運行ADO/OLE-DB。ADO組件的使用使得DELPHI在訪問數(shù)據(jù)的類型和采用的技術方面都有了很大的突破。 2.2.6 SQL語言在Delphi中的應用 在Delphi中使用SQL語言非常方便,一般來說,都是通過Tquery或TADOquery組件來使用SQL語言的。可以在Tquery 或TADOquery組件的SQL屬性中設置SQL語句。設計程序時,在該組件的屬性對話框中選擇SQL屬性,單擊帶省略號的按鈕,就可以打開StringListEditor對話框,然后我們就可以在對話框中添加SQL語句。還可以使用Delphi的SQLBuilder來自動生成SQL語句,這樣可以避免手工編寫SQL而可能造成的語法錯誤。靜態(tài)SQL語句在程序設計時便已固定下來,它不包含任何參數(shù)和變量。 動態(tài)SQL語句,也被稱作參數(shù)化的語句,在其中間包含著表示字段名或表名的參數(shù). 例如下面的語句是一條動態(tài)SQL語句: Select*FromBookWhere圖書編號=:bookCode;  其中的變量bookCode便是一個參數(shù)變量,它由一個冒號引導,在程序運行過程中,必須要為該參數(shù)賦值,該條SQL語句才能正確執(zhí)行,每次運行應用程序時可以為該參數(shù)變量賦予不同的值。為參數(shù)賦值有三種方法: ①根據(jù)參數(shù)在SQL語句中出現(xiàn)的順序,設置TADOQuery組件的parameters屬性值為參數(shù)賦值。 ②直接根據(jù)SQL語句中各參數(shù)的名字,調用ParamByName方法來為各參數(shù)賦值。 ③將TADOQuery組件的DataSource屬性設置為另一個數(shù)據(jù)源,這樣將另一個數(shù)據(jù)源中與當前TADOQuery組件的SQL語句中的參數(shù)名相匹配的字段值賦給其對應的參數(shù)。利用這種方法也能實現(xiàn)所謂的連接查詢,創(chuàng)建主要—明細型數(shù)據(jù)庫應用。 在使用動態(tài)SQL語句編程時,常常用到一個很重要的方法Prepare,調用Prepare方法之后,Delphi會將帶參數(shù)的SQL語句傳送給與其對應的數(shù)據(jù)庫引擎,對動態(tài)SQL語句進行語法分析和優(yōu)化。雖然在用動態(tài)SQL語句編程時,調用Prepare方法并不是必須的,但是調用Prepare方法后,會極大地提高動態(tài)SQL語句的執(zhí)行性能,特別是當要反復多次執(zhí)行同一條動態(tài)SQL語句時,其優(yōu)越性會更加明顯。如果在應用程序中執(zhí)行一條SQL語句之前并沒有顯示地調用Prepare方法,每次在執(zhí)行SQL語句時,Delphi會隱含地調用Prepare方法以準備這個查詢。 TadoQuery部件還有一個Prepare屬性,這是一個布爾型屬性,當其屬性值為True時,表明該查詢已被準備好了(SQL語句已被傳送到數(shù)據(jù)庫引擎中),當我們使用參數(shù)編輯器ParametersEditor來為動態(tài)SQL語句中的參數(shù)賦值時,當設置完相應的參數(shù)值并退出參數(shù)編輯器時,Delphi會隱含地調用Prepare方法以準備好查詢。 當SQL語句執(zhí)行完之后,要想準備下一個查詢,首先必須調用Close方法,然后才能調用Prepare方法準備下一個查詢。一般來說,在一個應用程序中應該調用一次Prepare方法,常常在窗體的OnCreate事件處理過程中調用Prepare方法,然后用上述介紹的方法為參數(shù)賦值,最后調用Open方法或ExecSQL方法執(zhí)行SQL語句,以完成查詢。 當然在調用Prepare方法準備好一個查詢時,會消耗一些數(shù)據(jù)庫資源,因而每當一個查詢執(zhí)行完畢之后,要養(yǎng)成調用UnPrepare方法以撤消查詢的好習慣。在運行程序過程中,通過程序改變TQuery或TADOquery部件的SQL屬性值時,Delphi會自動地調用Close方法和UnPrepare方法,以撤消查詢。 在程序運行過程中,要想設置Tquery或TADOquery部件的SQL屬性,必須首先調用Close方法,關閉TQuery或TADOquery部件,然后再調用Clear方法清除SQL屬性中現(xiàn)存的SQL命令語句,最后再調用Add方法為SQL屬性設置新的SQL命令語句。例如:  datamodule4.adoquery2.close; datamodule4.adoquery2.sql.clear; datamodule4.adoquery2.sql.add(SELECT借書證號,密碼FROM[user]WHERE(借書證號=:tt)); datamodule4.adoquery2.parameters[0].value:=username; datamodule4.adoquery2.open;  在為TQuery或TADOquery部件設置SQL屬性時調用Close方法總是很安全的,如果TQuery或TADOquery部件已經(jīng)被關閉了,調用Close方法時不會產(chǎn)生任何影響。在應用程序中為SQL屬性設置新的SQL命令語句時,必須要調用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調用Clear方法,便調用Add方法向SQL屬性中設置SQL命令語句,那么新設置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面,在程序運行時常常會出現(xiàn)出乎意料的查詢結果甚至程序無法運行下去。 在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設置成多條SQL語句。當然有些數(shù)據(jù)庫服務器也支持在TQuery或TADOquery部件的SQL屬性中設置多條SQL語句,只要數(shù)據(jù)庫服務器允許這樣,我們在編程時可以為SQL屬性設置多條SQL語句。在為TQuery或TADOquery部件設置完SQL屬性的屬性值之后,也即編寫好適當?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。 在設計過程中,設置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結果。 在應用程序運行過程中,通過程序調用TQuery或TADOquery組件的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個查詢結果集,而ExecSQL方法還可以用來執(zhí)行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如: Query1.Open(這樣會返回一個查詢結果集) 如果調用Open方法,而沒有查詢結果時,會出錯。此時應該調用ExecSQL方法來代替Open方法。如: Query1.ExecSQL(沒有返回結果) 當然在設計應用程序時,程序設計人員是無法確定TQuery或TADOquery組件中的SQL語句是否會返回一個查詢結果的。對于這種情況應當用Try…Except模塊來設計程序。在Try部分調用Open方法,而在Except部分調用ExceSQL方法,這樣才能保證程序的正確運行。 例如:  Try Query1.Open Except Query1.ExecSQL End 通過Tquery或TADOquery組件可以獲得兩種類型的數(shù)據(jù): ①“活動”的數(shù)據(jù) 這種數(shù)據(jù)就跟通過TTable部件獲得的數(shù)據(jù)一樣,用戶可以通過數(shù)據(jù)瀏覽部件來編輯修改這些數(shù)據(jù),并且當調用Post方法或當焦點離開當前的數(shù)據(jù)瀏覽部件時,用戶對數(shù)據(jù)的修改自動地被寫回到數(shù)據(jù)庫中。 ②非活動的數(shù)據(jù)(只讀數(shù)據(jù)) 用戶通過數(shù)據(jù)瀏覽部件是不能修改其中的數(shù)據(jù)。在缺省情況下,通過TQuery部件獲得的查詢結果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動”的數(shù)據(jù),在應用程序中必須要設置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設置RequestLive的屬性值True)都可以獲得“活動”的數(shù)據(jù)的,要想獲得“活動”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設置為True外,相應的SQL命令還要滿足以下條件。 本地SQL語句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語句的限制為: 查詢只能涉及到一個單獨的表 SQL語句中不能包含ORDERBY命令 SQL語句中不能含聚集運算符SUM或AVG 在Select后的字段列表中不能有計算字段 在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:Like,>,<,>=,<=。各比較運算之間可以有并和交運算:AND和OR 當通過SQL語句查詢數(shù)據(jù)庫服務器中的數(shù)據(jù)庫表: 查詢只能涉及到一個單獨的表 SQL語句中不能包含ORDERBY命令 SQL語句中不能含聚集運算符SUM或AVG運算 另外,如果是查詢Sybase數(shù)據(jù)庫中的表,那么被查詢的表中只能有一個索引。 如果在應用程序中要求TQuery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集,但是SQL命令語句不滿足上述約束條件時,對于本地數(shù)據(jù)庫的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對于數(shù)據(jù)庫服務器中的SQL查詢,只能返回錯誤的代碼。當Tquery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集時,它的CanModIfy屬性的值會被設置成True。 3 系統(tǒng)分析、設計與實現(xiàn) 3.1 系統(tǒng)分析 3.1.1系統(tǒng)需求分析 本系統(tǒng)擬以桂林某TL酒店為對象,它座落于市中心的繁華地帶,占地面積800多平方米,建筑面積2000多平方米,職工人數(shù)50多人,主要經(jīng)營粵菜和川菜。隨著餐館酒店業(yè)的競爭越來越激烈,該餐館已意識到使用計算機信息技術的重要性,決定首先在餐飲管理上采用計算機管理手段。 本系統(tǒng)就是用計算機信息技術提高餐飲酒店的管理水平,主要對點菜收銀、庫房進行管理,同時具有營業(yè)分析功能。點菜收銀管理可以實現(xiàn)點菜、轉臺、并臺、結帳、清臺。營業(yè)分析可對客人點單情況、房臺營業(yè)情況、酒菜銷售情況、銷售收入進行分析。點菜收銀、營業(yè)分析、庫房管理的有機結合,可為酒店經(jīng)營情況提高依據(jù),為酒店餐館的發(fā)展提高重要保證。 3.1.2系統(tǒng)目標設計 餐飲管理系統(tǒng)的主要目標是實現(xiàn)對酒店內(nèi)部各種管理的電子化、自動化,提高各個模塊之間的辦公效率,為高質量酒店服務提供保證。 3.1.3系統(tǒng)開發(fā)設計
展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
提示  裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
關于本文
本文標題:畢設論文 餐飲管理系統(tǒng)
鏈接地址:http://italysoccerbets.com/article/28763798.html

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!