freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖書館數(shù)據(jù)庫管理系統(tǒng)解析-閱讀頁

2025-04-22 23:05本頁面
  

【正文】 ADO環(huán)境中完成特定功能的組件。ADO數(shù)據(jù)集訪問組件與常用的數(shù)據(jù)訪問組件是并列的關(guān)系。 數(shù)據(jù)控制類DataControl數(shù)據(jù)控制類負責(zé)數(shù)據(jù)庫數(shù)據(jù)的顯示,并把用戶對數(shù)據(jù)的修改傳回。在系統(tǒng)中主要使用數(shù)據(jù)網(wǎng)格控件DBGrid和數(shù)據(jù)庫導(dǎo)航器控件DBNavigator。Delphi 6 提供了專門用于數(shù)據(jù)訪問的基類控件。Tdatabase:當(dāng)一個基于BDE的數(shù)據(jù)庫應(yīng)用程序需要一個永久數(shù)據(jù)庫連接時,需要定制向一個數(shù)據(jù)庫服務(wù)器的連接時,需要事務(wù)控制和特殊的數(shù)據(jù)庫別名時就得用到Tdatabase對象。在一個應(yīng)用程序中為每一個數(shù)據(jù)庫連接顯示的聲明Tdatabase對象要根據(jù)需要而定,不是必需的。TdataSource對象用于在DataSet對象(包括Tquery,TstoredProc,Ttable等)和數(shù)據(jù)感知組件之間提供一個連接的紐帶,以便在窗體上顯示數(shù)據(jù)庫中的數(shù)據(jù),在數(shù)據(jù)庫中導(dǎo)航定位與編輯數(shù)據(jù)集中的數(shù)據(jù)。同樣,一個數(shù)據(jù)感知組件如果想和數(shù)據(jù)源相聯(lián)系以便顯示和操縱數(shù)據(jù),就必須以TDataSource對象為中介。然后以Tdatasource對象為中介,用數(shù)據(jù)感知組件向用戶顯示數(shù)據(jù)庫的內(nèi)容并接受用戶的查詢和修改等操作。可以在TQuery組件的SQL屬性中設(shè)置SQL語句。還可以使用Delphi的SQL Builder來自動生成SQL語句,這樣可以避免手工編寫SQL而可能造成的語法錯誤。動態(tài)SQL語句,也被稱作參數(shù)化的語句,在其中間包含著表示字段名或表名的參數(shù),例如下面的語句是一條動態(tài)SQL語句: Select * From Students Where StudentCode =: StudentCode。為參數(shù)賦值有三種方法:①根據(jù)參數(shù)在SQL語句中出現(xiàn)的順序,設(shè)置TQuery部件的Params屬性值為參數(shù)賦值。③將TQuery部件的DataSource屬性設(shè)置為另一個數(shù)據(jù)源,這樣將另一個數(shù)據(jù)源中與當(dāng)前TQuery部件的SQL語句中的參數(shù)名相匹配的字段值賦給其對應(yīng)的參數(shù)。在程序運行過程中,要想設(shè)置TQuery部件的SQL屬性,必須首先調(diào)用Close方法,關(guān)閉TQuery部件,然后再調(diào)用Clear方法清除SQL屬性中現(xiàn)存的SQL命令語句, 最后再調(diào)用Add方法為SQL屬性設(shè)置新的SQL命令語句。(‘ Where Name =Lucy ‘)。在應(yīng)用程序中為SQL屬性設(shè)置新的SQL 命令語句時,必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設(shè)置SQL命令語句,那么新設(shè)置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面, 在程序運行時常常會出現(xiàn)出乎意料的查詢結(jié)果甚至程序無法運行下去。當(dāng)然有些數(shù)據(jù)庫服務(wù)器也支持在TQuery部件的SQL屬性中設(shè)置多條SQL語句,只要數(shù)據(jù)庫服務(wù)器允許這樣,我們在編程時可以為 SQL 屬性設(shè)置多條SQL語句。在設(shè)計過程中,設(shè)置完TQuery部件的SQL屬性之后將其Active屬性的值置為True, 這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應(yīng)用中有與TQuery部件相連的數(shù)據(jù)瀏覽部件( 如TDDGrid TDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結(jié)果。Open方法和ExecSQL方法是不一樣的。此時應(yīng)該調(diào)用ExecSQL 方法來代替Open方法。對于這種情況應(yīng)當(dāng)用Try…Except模塊來設(shè)計程序。Delphi中用ADOQuery來使用SQL語句同樣十分方便。在Delphi中調(diào)用數(shù)據(jù)庫,就可以調(diào)用ADOQuery組件,通過修改其中的SQL…屬性中的SQL語句來實現(xiàn)對數(shù)據(jù)庫的各項操作。而且,在每一次修改完成以后,還應(yīng)該記得重新將ADOQuery激活。167。在本系統(tǒng)中,做為圖書倉庫管理系統(tǒng)是一個比較小的應(yīng)用系統(tǒng),它所產(chǎn)生和處理的數(shù)據(jù)量也比較小。我首先想到的數(shù)據(jù)庫是Borland公司的Paradox數(shù)據(jù)庫。Access做為一個數(shù)據(jù)庫管理系統(tǒng),它被集成在Microsoft Office中。與其他的數(shù)據(jù)庫系統(tǒng)相比,Access更加簡單易學(xué),一個普通的計算機用戶可以很快地掌握它??尚行苑治龊晚椖块_發(fā)計劃在前面已經(jīng)敘述,下面所要做的是進行軟件需求分析,概要設(shè)計和詳細設(shè)計。167?,F(xiàn)在所要做的是要準(zhǔn)確定義系統(tǒng)必須做什么以及系統(tǒng)必須具備的功能。在系統(tǒng)中我采用數(shù)據(jù)流圖(DFD)這種半形式化的描述方式表達需求。它有四種基本圖形符號:◆ →:箭頭,表示數(shù)據(jù)流;◆ 〇:圓或橢圓,表示加工;◆ ═:雙杠,表示數(shù)據(jù)存儲;◆ □:方框,表示數(shù)據(jù)的源點或終點。在這里我一共使用了三層數(shù)據(jù)流圖,即頂層圖,0層圖和1層圖(也是底層圖)。經(jīng)過對系統(tǒng)的分析首先得到系統(tǒng)的頂層DFD,如下: 一步細化得到系統(tǒng)的0層DFD,如下:再進一步細化每一個數(shù)據(jù)加工功能,得到系統(tǒng)的1層DFD圖。通過以上對數(shù)據(jù)流圖的分析之后,我們已大體地了解了系統(tǒng)的功能和目標(biāo),接下來所要做的就是系統(tǒng)功能模塊的劃分和數(shù)據(jù)庫的設(shè)計,也就是系統(tǒng)的概要設(shè)計。 系統(tǒng)概要設(shè)計在軟件需求分析階段,搞清楚了軟件“做什么”的問題,形成了目標(biāo)系統(tǒng)的邏輯模型。首先,我們需要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。模塊化是指解決一個復(fù)雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。 將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應(yīng)盡量保持其獨立性。在系統(tǒng)的概要設(shè)計中我采用結(jié)構(gòu)化設(shè)計(Structure Design,簡稱SD),SD以需求分析階段產(chǎn)生的數(shù)據(jù)流圖DFD為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。然后,進一步細分模塊,添加細節(jié)。以下就是系統(tǒng)的結(jié)構(gòu)圖:(在這里為了表達方便我將結(jié)構(gòu)圖分開來表達?,F(xiàn)實世界的事物反映到人的頭腦中,人的大腦對它有個認識過程,經(jīng)過分析(選擇、命名、分類等)進入信息世界。這兩個問題貫穿了整個軟件系統(tǒng)的開發(fā)過程,這也就是數(shù)據(jù)庫的設(shè)計問題,軟件設(shè)計的一個核心。目前廣泛使用的數(shù)據(jù)模型可分為兩種類型,一種是獨立于計算機系統(tǒng)的“概念數(shù)據(jù)模型”,如“實體聯(lián)系模型”;另一種是直接面向數(shù)據(jù)庫邏輯結(jié)構(gòu)的“結(jié)構(gòu)數(shù)據(jù)模型”。ER模型直接從現(xiàn)實世界抽象出實體類型及實體間聯(lián)系,然后用ER圖來表示數(shù)據(jù)模型。但ER模型只能說明實體間語義的聯(lián)系,不能進一步說明詳細的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫設(shè)計的第一步?!?菱形框,表示聯(lián)系類型(實體間的聯(lián)系)。對于關(guān)鍵碼的屬性,在屬性名下劃一橫線。本系統(tǒng)為圖書倉庫管理,主要管理圖書的入庫、出庫以及庫存等事項。依據(jù)倉庫管理的實際情況,考慮了多方面的因素以后,確定系統(tǒng)的ER圖如下:(為了表達的方便,在這里我沒有在一張圖上表達出所有的關(guān)系,而是用一張總體ER圖,和幾張實體屬性關(guān)系圖來表達數(shù)據(jù)庫的結(jié)構(gòu)。在本系統(tǒng)中庫存是核心,也是基本,沒有了庫存其它的也就沒有什么意義了。供應(yīng)商信息的添加主要出于對圖書來源問題的思考。入庫聯(lián)系類型將庫存信息、供應(yīng)商信息和員工信息聯(lián)系在一起,可以方便地實現(xiàn)三個實體之間的聯(lián)接,而出庫聯(lián)系類型則將庫存信息和員工信息較好地聯(lián)接起,同時這兩個聯(lián)系類型又都具有各自特有的屬性。在這里,我選用的是關(guān)系數(shù)據(jù)庫。在這里不得不提到一個概念——范式。我在系統(tǒng)中定義的表格都嚴(yán)格地按照范式的思想和要求去完成,數(shù)據(jù)庫中的所有表格都達到了三范式的要求。通過對這六張表格的操作可以較好地完成系統(tǒng)設(shè)計的各項功能,六張表格之間有著不同程度的聯(lián)系。)BookRecord 表(庫存信息表) 字段名稱 數(shù)據(jù)類型 說明K BookID 數(shù)字 圖書編號 BookName 文本 圖書名 Author 文本 作者 Publisher 文本 出版社 PubDate 日期/時間 出版日期 Price 貨幣 價格 BookType 文本 圖書類型 Number1 數(shù)字 庫存數(shù)量 Addation 文本 備注 庫存信息表庫存信息表主要用于記錄倉庫中現(xiàn)存放的所有圖書的詳細信息,包括圖書編號、書名、作者、出版社、圖書類型等有關(guān)圖書的各類信息,它即是該數(shù)據(jù)庫的主表,也是系統(tǒng)主界面的主要內(nèi)容。考慮到編號比較難于記憶,所以使用了出版社和圖書類型兩個字段,在系統(tǒng)中我提供了出版社和圖書類型的分類查找,而且全部采用自動生成,每當(dāng)系統(tǒng)中有新的出版社類型和圖書類型,彈出菜單會自動添中新類型,這樣就可以比較方便地實現(xiàn)按出版社和按圖書類型查找。做為備注有一點說明,我的數(shù)據(jù)庫中備注的數(shù)據(jù)類型是文本,而不是備注類型,主要考慮到該字段的長度并不大,而且在Delphi中文本數(shù)據(jù)類型的處理也比較方便一點。它主要用來為系統(tǒng)提供員工的有關(guān)信息,因為在系統(tǒng)中,入庫和出庫操作均與員工有著一定的聯(lián)系,在查詢?nèi)霂煨畔⒑统鰩煨畔r,有時需要查找有關(guān)此項記錄有關(guān)的員工信息,在系統(tǒng)中我是通過入庫記錄與員工記錄(出庫記錄和員工記錄)之間的聯(lián)接查詢來完成的。Shopkeeper 表(供應(yīng)商信息表) 字段名稱 數(shù)據(jù)類型 說明K ShopkeeperID 數(shù)字 供應(yīng)商編號 ShopkeeperName 文本 供應(yīng)商姓名 Address 文本 地址 PostNo 數(shù)字 郵編 OfficePhone 文本 辦公電話 HomePhone 文本 住宅電話 Email 文本 Email PayType 文本 付款方式 供應(yīng)商信息表供應(yīng)商信息表主要用于記錄有關(guān)供應(yīng)商的各類信息,包括姓名、地址、電話、付款方式等。在供應(yīng)商信息中,考慮當(dāng)實際情況,我特別加入了Email和付款方式這兩個字段,因為在當(dāng)今信息世界中,多種多樣的通訊方式和多種多樣的付款方式是必然的,是數(shù)據(jù)庫中必須與以記錄。出庫信息表主要用于記錄有關(guān)出庫的詳細信息,包括出庫數(shù)量、出庫日期以及圖書、員工的編號。值得提出的一點是入庫記錄和出庫記錄的添加不僅僅是單表操作,由于它們都與庫存記錄相聯(lián)系,所以,無論您是添中入庫記錄還是添加出庫記錄,都必須同時修改庫存記錄,以保持?jǐn)?shù)據(jù)的一致性,否則將引發(fā)系統(tǒng)出錯而這些我都讓其在系統(tǒng)中自動完成。在入庫信息表和出庫信息表中我還定義了幾個外鍵,它提供了一種表示幾個關(guān)系聯(lián)系的方法。Key 表(密碼信息表) 字段名稱 數(shù)據(jù)類型 說明K KeyName 文本 用戶姓名 KeyNo 文本 用戶密碼 密碼信息表密碼信息表主要用于記錄所有的用戶名和用戶密碼。通過以上設(shè)計已經(jīng)完成了系統(tǒng)的概要設(shè)計,當(dāng)我們有了系統(tǒng)的功能模塊圖和數(shù)據(jù)庫之后,就需要著手去實現(xiàn)每一個模塊,為每一個功能設(shè)計程序流程圖,這也就是系統(tǒng)的詳細設(shè)計。 系統(tǒng)詳細設(shè)計在前面的概要設(shè)計中,已將系統(tǒng)劃分為多個模塊,并將它們按照一定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口。在處理過程設(shè)計時我采用的是結(jié)構(gòu)化程序設(shè)計(簡稱SP)方法。因此詳細設(shè)計的結(jié)果基本決定了最終程序的質(zhì)量。詳細設(shè)計的目標(biāo)不僅是邏輯上正確地實現(xiàn)每個模塊的功能,還應(yīng)使設(shè)計出的處理過程清晰易讀。系統(tǒng)總體設(shè)計的好壞直接影響著下一步工作,只有在這一階段設(shè)計出好的模塊圖和程序流程圖,才能更有利于編碼,產(chǎn)生好的軟件系統(tǒng)。 系統(tǒng)窗體模塊組成167。那么,能不能將這些數(shù)據(jù)源集中管理,最好是做成一個統(tǒng)一的模塊,需要時就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個問題最好的答案。(datamoduleform)窗體圖,除報表窗體外所有的數(shù)據(jù)存取組件和數(shù)據(jù)源組件都在此數(shù)據(jù)模塊中進行了定義。tsxs數(shù)據(jù)庫已在ODBC配置程序中進行了設(shè)置。另外,在本系統(tǒng)的數(shù)據(jù)模塊窗體圖中,我大多采用的AODQuery組件而沒有采用BDE組,這主要是基于對ADO組件的了解。同時我也使用了BDE組件中的Table,因為在某些時候BDE有著其自身特有的優(yōu)越性。Procedure Popup2Handler(Sender:TObject)。begin file://快捷按鈕1(點“按出版社分類”按鈕產(chǎn)生)的點擊事件with do begin file://打開數(shù)據(jù)模塊窗體的MainQuery,對BookRecord表進行操作close。 file://清除SQL屬性中的SQL命令語句(‘select * from BookRecord where Publisher=:Pub‘)。open。end。Var s1,s2,s3,s4,s5 :String。(‘where BookID Like :BookID and BookName Like :Name and Author Like :Author and Publisher Like :pub and BookType Like :BookType‘)。(‘BookID‘).Value:=s1。(‘Name‘).Value:=s2。(‘Author‘).Value:=s3。(‘Pub‘).Value:=s4。(‘BookType‘).Value:=s5。if FieldValues[‘BookID‘]=NULL file://判斷是否找到記錄then beginMessagedlg(‘沒有找到你所需要的記錄!‘,mtInformation,[mbOK],0)。:=‘‘。:=‘‘。close。(‘select * from BookRecord‘)。end。end。begin file://庫存表刷新按鈕事件with dobeginclose。(‘select * from BookRecord‘)。end。**********************************************************************procedure (Sender: TObject)。begin file://自動生成快捷按鈕1的內(nèi)容with dobegin file://從數(shù)據(jù)庫中選擇出版社類型close。(‘select distinct Publisher from BookReco
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1