版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、116/120分布式數(shù)據(jù)庫課程設(shè)計(jì)與實(shí)現(xiàn)面向連鎖超市治理系統(tǒng)的分布式數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)目錄TOC o 1-3 hz u HYERLIK _c013466 1.連鎖超市治理系統(tǒng)概述 PAGEREF _To31001346 1 YERIK _oc3001467 1.背景介紹 PGRE _Toc013467 h 1HPERLIN l _Toc3100136 1.2 可行性分析PAEEF oc311468h 1 HYPERI l _To3100349 13系統(tǒng)目標(biāo)和先進(jìn)之處 AGEREF Tc3100136 h HYPERLNK _3001347 .小組成員和任務(wù)分配PAER _To31013470 h
2、 HYPERNKl _To3003472.需求分析 AGERF_Toc30131 h 4 HYPERIKl _Toc3103472.1用戶需求概述 PERE _Toc31001342 h PERLIK l T310134732.2 業(yè)務(wù)需求分析 PARF _Toc31001347 h HYPERLK l Toc1013742.3功能分析PAGREF Toc311344 HYPLIN _Toc31003475 3.系統(tǒng)總體設(shè)計(jì)AGERF _To31017 h 8 YPRLIN l _Toc10147 3.1繪制用例圖設(shè)計(jì)系統(tǒng)功能 PAGEE _Toc3100146 h HYPERINK Toc3
3、0147732繪制系統(tǒng)流程圖PAERF Toc001377 h9 HYINK l _c3101348 3. 系統(tǒng)開發(fā)環(huán)境 PGEREF _oc31013478 h 0 HYPERLIKl _Toc0134793.系統(tǒng)的運(yùn)行環(huán)境 PAGEREF Toc3101479 h 11PERLIK l _Toc101348 3.系統(tǒng)運(yùn)行演示 PAEE _Toc3100140h11 HYPELINKl _Toc31001341 .6系統(tǒng)類庫設(shè)計(jì)PGE _To1001348h 1 HYPERLINK l _T10018 4.分布式數(shù)據(jù)庫分析與設(shè)計(jì) PGE _Toc300148h HYPRLIN _To1013
4、48 .1數(shù)據(jù)庫分析 PAGEREFTo301483 h 16YPERLINl _Toc00134842數(shù)據(jù)庫概念設(shè)計(jì) AGEEF _Toc101384 16PERLINK _Toc310013485 .數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) AGREFTc3101385 h0 HYERLIK l _c31013486 4.4 分片與位置分配設(shè)計(jì) PAGEREF _Toc01346 h 24HYPERINK l_Toc310013484.4.1站點(diǎn)通信模型 PGEF _Toc31013487 h 4 HRLK l To31001348 2數(shù)據(jù)表的分片與位置分配設(shè)計(jì)PAEREF _Toc3100348h 25 HY
5、ELINK l _Toc310013495.基于SQ的M的詳細(xì)設(shè)計(jì)(實(shí)現(xiàn))PAGEREF To31001349 h27 HPELINK l To1013 .1公共類設(shè)計(jì) PAGERF Toc100140 h27 HYLINK l _Toc10034911.1文件操作類CFileOpate PAGERE _To30014 h 2HYEINK l _Toc31013925.12時(shí)刻格式轉(zhuǎn)換類CyTmPAGEREF _Toc3013492 h 2 HYPRLINK l _Toc3101343 5.1.3數(shù)據(jù)操作類CAOConn PAEEF Toc001343 h 29HYPERK _oc301349
6、4 5.1.數(shù)據(jù)庫表的操作類CtlePatIf PGEREF _Toc300149 HPERIN l_c31001345 5.2界面窗口設(shè)計(jì) AGEREF_oc101345 4 HPEIK _T31001346 5.2.系統(tǒng)啟動(dòng)登錄開發(fā) PAGEREF _Tc31013496h 41 HPEIK Toc3101349752.主界面對話框設(shè)計(jì) PAGEREF _Toc31001397 h 43HPELIN l Toc103498 5.2.通用報(bào)表對話框設(shè)計(jì)開發(fā) PAER _c30139 44HYERLIN l To1003495.2.4打印對話框設(shè)計(jì)開發(fā) PGRF _o31013499h 46H
7、YERLIN l _Toc01500 5.差不多資料模塊設(shè)計(jì) EREF_Tc31001500 h 48 YPRLNl _To3101501 5.3. 差不多資料治理功能開發(fā) PGERE T3101501 h 8 YPRLIK l _Toc310013525.3.2價(jià)格自動(dòng)生成功能開發(fā) PAEEF _To3100150 h 52 HYPERLN _Tc0013503 5.3報(bào)表功能實(shí)現(xiàn) AEREF _To310013503h 5 HYPELINK _Toc310013504 5進(jìn)貨/銷售模塊設(shè)計(jì)PGEEF _Tc310030455 HYRK l _To31001305 54.1進(jìn)貨/銷售登記設(shè)計(jì)
8、 AGEREF _To101505 55HYPELINKl _Toc31006 5.42進(jìn)貨設(shè)計(jì)PAEREF_Tc3101350 5 HYPRLINK l _T310135 5.43月度統(tǒng)計(jì)設(shè)計(jì)PGERE Tc310013507 h 61 HYPRLIN_Toc3003508 .5庫存模塊設(shè)計(jì)AGERE_Toc100130 62 HYPERLIKl _To31001505.1 庫存查詢功能開發(fā) PAGEREF_Toc31013509 h 62 HYPELINKl _Toc31013 5.5.2 庫存報(bào)警功能開發(fā) AGERFToc300510 h 63 HYPERIK l _Toc3100351
9、 6.開發(fā)技巧和難點(diǎn)分析 PGEREF _To310013511 h 64 YERLN l_To101312 OLE技術(shù)使用 GEREF_Toc3001351h 64 HPELIK l_Toc315136.2MFC ri Cnrol控件的使用 PEREF _Toc3101351 65連鎖超市治理系統(tǒng)概述背景介紹 隨著市場經(jīng)濟(jì)的進(jìn)展和人民生活水平的提高,原來單一、小規(guī)模的超市已無法滿足人民對購物環(huán)境的要求,大規(guī)模、物品豐富的超市正在蓬勃進(jìn)展。超市銷售數(shù)據(jù)規(guī)模的日益龐大,商品數(shù)目的迅速增長,采納以往的手工治理已直接或間接地降低了工作效率,最終阻礙超市的日常運(yùn)轉(zhuǎn)。另外超市的發(fā)張壯大,尤其是連鎖超市(
10、如家樂福、美廉美)的擴(kuò)張,使得他們具有地域上分散而治理上又相對集中的特點(diǎn),往往既要有各門店的局部操縱和分散治理,同時(shí)也要有整個(gè)組織的全局操縱和高層次的協(xié)同治理。因此把這些門店和中心通過網(wǎng)絡(luò)連接起來,設(shè)計(jì)開發(fā)一款基于分布式數(shù)據(jù)庫的連鎖超市治理系統(tǒng)SMS(Smakt mngemen ystem)勢在必行。12 可行性分析(1)經(jīng)濟(jì)可行性使用連鎖超市治理系統(tǒng)對超市連鎖店進(jìn)行信息化治理將直接提高公司治理部門的工作效率。通過網(wǎng)絡(luò)遠(yuǎn)程提交匯總各門店的信息,節(jié)約了許多的時(shí)刻和金鈔票。另一方面,用信息化治理統(tǒng)計(jì)大量數(shù)據(jù),節(jié)約了專門多的人力和財(cái)力,為治理者提供更好的決策支持。(2)技術(shù)可行性 網(wǎng)絡(luò)應(yīng)用基礎(chǔ)設(shè)施完
11、善,由于信息技術(shù)的進(jìn)展,我國的計(jì)算機(jī)網(wǎng)絡(luò)飛速進(jìn)展,先后建成了中國公眾多媒體通信網(wǎng)、hna Net、 中國教育與科研計(jì)算機(jī)網(wǎng)絡(luò)等組成了中國Ienet主體,網(wǎng)絡(luò)應(yīng)用進(jìn)入企業(yè)與一般家庭,這為進(jìn)展連鎖超市網(wǎng)絡(luò)辦公提供了基礎(chǔ)設(shè)施。網(wǎng)絡(luò)安全技術(shù)應(yīng)用,包括加密算法、數(shù)字認(rèn)證、數(shù)字簽名等,為網(wǎng)絡(luò)辦公系統(tǒng)的應(yīng)用提供安全保證,它實(shí)現(xiàn)了網(wǎng)絡(luò)傳輸數(shù)據(jù)的安全性、完整性等。 最后,確實(shí)是網(wǎng)絡(luò)技術(shù)的普及與掌握,如網(wǎng)絡(luò)互聯(lián)、網(wǎng)絡(luò)安全技術(shù)、網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)等,使我們有能力開發(fā)實(shí)現(xiàn)適合自己的治理系統(tǒng)。因此,公司構(gòu)建跨區(qū)域的治理系統(tǒng)的技術(shù)瓶頸問題(網(wǎng)絡(luò)應(yīng)用基礎(chǔ)設(shè)施、網(wǎng)絡(luò)安全、開發(fā)技術(shù))得到了有效解決,公司構(gòu)建網(wǎng)絡(luò)治理系統(tǒng)技術(shù)上可行。
12、()操作可行性由于SS的操作是基于C/的客戶端的頁面操作,簡單明了,用戶無需學(xué)習(xí),一般都能夠?qū)iT容易的明白如何操作。而治理員也無需具備專業(yè)知識,只需要對一些數(shù)據(jù)進(jìn)行輸入以及平常的日常維護(hù)就夠了。13系統(tǒng)目標(biāo)和先進(jìn)之處 ()系統(tǒng)目標(biāo)為連鎖超市提高效率、降低成本;實(shí)現(xiàn)連鎖超市治理的優(yōu)化,簡化工作流程,節(jié)約人力物力,提高工作效率,極大地滿足客戶需要;對各環(huán)節(jié)進(jìn)行操縱分析,實(shí)現(xiàn)統(tǒng)一調(diào)度。滿足連鎖超市的差不多治理功能,發(fā)揮信息系統(tǒng)的靈活性,減輕企業(yè)治理人員和操作人員的工作負(fù)擔(dān),提高工作效率。本系統(tǒng)是一項(xiàng)功能比較完善的連鎖超市治理系統(tǒng),對連鎖店運(yùn)作過程中的后臺數(shù)據(jù)能夠隨時(shí)進(jìn)行分析,便于企業(yè)治理人員的經(jīng)營、
13、決策。全面體現(xiàn)了現(xiàn)代企業(yè)治理理論所倡導(dǎo)的工作高效、環(huán)境輕松的氛圍。(2)系統(tǒng)先進(jìn)之處 多數(shù)處理就地完成。各地的計(jì)算機(jī)由數(shù)據(jù)通信網(wǎng)絡(luò)相聯(lián)系。 克服了中心數(shù)據(jù)庫的弱點(diǎn):降低了數(shù)據(jù)傳輸代價(jià)。 提高了系統(tǒng)的可靠性,局部系統(tǒng)發(fā)生故障,其他部分還可接著工作。 各個(gè)數(shù)據(jù)庫的位置是透明的,方便系統(tǒng)的擴(kuò)充。為了協(xié)調(diào)整個(gè)系統(tǒng)的事務(wù)活動(dòng),事務(wù)治理的性能花費(fèi)高。1.4 小組成員和任務(wù)分配.1用戶需求概述 下面是通過調(diào)查研究獲得的關(guān)于連鎖超市要緊信息數(shù)據(jù)的需求分析結(jié)果:(1) 連鎖超市通常由一個(gè)中心(公司總部)、多個(gè)遠(yuǎn)程連鎖店(門店)組成,同時(shí)每個(gè)連鎖店分布在不同地域。 (2)連鎖超市的各個(gè)部門之間、各個(gè)分店之間、分店
14、與總部之間需要交換數(shù)據(jù),這種數(shù)據(jù)交換是通過局域網(wǎng)和廣域網(wǎng)進(jìn)行的。(3)公司總部負(fù)責(zé)產(chǎn)生并治理該連鎖超市的整體匯總數(shù)據(jù),即各門店的明細(xì)匯總表數(shù)據(jù),如銷售匯總表等。(4)每一個(gè)遠(yuǎn)程站點(diǎn)(各門店和公司總部)分不有一個(gè)數(shù)據(jù)庫系統(tǒng),各自組成一個(gè)獨(dú)立的子系統(tǒng),能夠分不獨(dú)立進(jìn)行本部門業(yè)務(wù)處理。()總部為了便于對各店進(jìn)行治理,同時(shí)也為了比較各店的銷售情況,要求門店將所有商品歸入相應(yīng)的商品類不,由總部統(tǒng)一治理并提供各門店使用,而且,商品類不信息數(shù)據(jù)在各門店都要經(jīng)常使用。(6)有關(guān)商品信息、供應(yīng)商信息、機(jī)信息、進(jìn)貨信息和銷售信息等經(jīng)營基礎(chǔ)數(shù)據(jù)差不多上各門店單獨(dú)治理和使用,門店之間互不相關(guān)。(7)整個(gè)連鎖超市的職員
15、信息由公司總部治理和維護(hù),各門店只能夠查詢本部門的職員信息。22 業(yè)務(wù)需求分析通過對超市的營業(yè)、治理業(yè)務(wù)流程的調(diào)查,得到下面的業(yè)務(wù)需求。 能夠?qū)ι唐奉惒?、商品、供?yīng)商、OS機(jī)等基礎(chǔ)信息進(jìn)行治理。 能夠?qū)崿F(xiàn)采購開單、銷售開單、采購?fù)素?、銷售退貨等差不多功能。 軟件可依照商品資料中設(shè)置的最高庫存、最低庫存進(jìn)行庫存報(bào)警。 商品的批發(fā)價(jià)、零售價(jià)可自動(dòng)生成,減輕定價(jià)的工作量。 能夠生成各類統(tǒng)計(jì)報(bào)表,提供詳盡的營業(yè)報(bào)告,實(shí)現(xiàn)對商品進(jìn)、銷、存及利潤等財(cái)務(wù)狀況了如指掌。所有單據(jù)、報(bào)表均能夠在打印前預(yù)覽,同時(shí)能夠?qū)С鰹镋xcel文件,然后依照實(shí)際需要進(jìn)行特不的編排處理。 為了系統(tǒng)安全,每次用戶登錄都創(chuàng)建相應(yīng)的日
16、志文件,記錄用戶的所有操作。此外,對系統(tǒng)的性能要緊有以下幾個(gè)方面的需求。系統(tǒng)在設(shè)計(jì)過程中應(yīng)充分考慮到可擴(kuò)充性,要求操作界面美觀大方,容易上手。2.3功能分析依照對系統(tǒng)的業(yè)務(wù)調(diào)查和用戶的需求分析,結(jié)合計(jì)算機(jī)信息治理的特點(diǎn),設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)的功能如下。基礎(chǔ)信息治理基礎(chǔ)信息治理包括業(yè)種商品類不信息、商品信息、供應(yīng)商信息、PO機(jī)信息和價(jià)格信息維護(hù)與治理,實(shí)現(xiàn)的功能包括:差不多信息的添加、刪除和更新操作。生成各類基礎(chǔ)信息報(bào)表。打印和導(dǎo)出報(bào)表。進(jìn)貨治理進(jìn)貨治理要緊實(shí)現(xiàn)對商品的采購入庫信息進(jìn)行治理,具體實(shí)現(xiàn)功能如下:進(jìn)貨開單,實(shí)現(xiàn)商品的進(jìn)貨結(jié)算、入庫操作。進(jìn)貨退貨,退還商家相關(guān)的商品。生成進(jìn)貨、退貨的單據(jù)、商品
17、報(bào)表。打印和導(dǎo)出報(bào)表。銷售治理銷售治理要緊實(shí)現(xiàn)對商品的銷售出庫相關(guān)信息進(jìn)行治理,具體實(shí)現(xiàn)的功能如下:銷售開單,實(shí)現(xiàn)商品的銷售結(jié)算、出庫操作。銷售退貨,同意客戶退出相關(guān)的商品。生成銷售、銷售退貨的單據(jù)、商品報(bào)表。打印和導(dǎo)出報(bào)表。庫存治理庫存治理要緊實(shí)現(xiàn)對商品的庫存相關(guān)信息進(jìn)行治理,具體實(shí)現(xiàn)的功能如下:庫存查詢,能夠查看所有庫存商品的相關(guān)信息。庫存報(bào)警,對庫存過多或過少的商品進(jìn)行報(bào)表統(tǒng)計(jì)。庫存盤點(diǎn),能夠修改商品的庫存數(shù)量。帳務(wù)治理帳務(wù)治理要緊實(shí)現(xiàn)對營業(yè)員的銷售商品、業(yè)務(wù)提成、營業(yè)收入等情況進(jìn)行分類報(bào)表統(tǒng)計(jì)。數(shù)據(jù)治理數(shù)據(jù)治理要緊實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行備份、還原及清理等相關(guān)工作。系統(tǒng)治理系統(tǒng)治理要緊實(shí)現(xiàn)
18、登錄用戶(職員)治理、系統(tǒng)日志、修改登錄密碼等相關(guān)工作。系統(tǒng)總體設(shè)計(jì)3.1繪制用例圖設(shè)計(jì)系統(tǒng)功能用例圖表示了角色和用例以及它們之間的關(guān)系。它描述了系統(tǒng)、子系統(tǒng)和類的一致的功能集合,表現(xiàn)為系統(tǒng)和一個(gè)或多個(gè)外部交互者(角色)的消息交互動(dòng)作序列。也確實(shí)是角色(用戶或外部系統(tǒng))和系統(tǒng)(要設(shè)計(jì)的系統(tǒng))為了實(shí)現(xiàn)一個(gè)目的交互,那個(gè)目的的描述通常是一個(gè)謂詞短語,例如簽合同等。系統(tǒng)設(shè)計(jì)包含超級治理員、治理員和營業(yè)員四種用戶角色。超級治理員具有所有的操作權(quán)限,其用例圖如圖3-1所示。圖3- 超級治理員角色系統(tǒng)用例圖治理員不具備系統(tǒng)設(shè)置模塊中的用戶治理和商品類不信息治理功能,其他功能均具備。而銷售人員則只具有銷售開
19、單治理功能。32繪制系統(tǒng)流程圖結(jié)合系統(tǒng)的具體設(shè)計(jì)要求,連鎖超市治理系統(tǒng)的要緊功能流程圖如圖3-2所示。圖- 系統(tǒng)要緊功能流程圖系統(tǒng)首先對登錄用戶身份進(jìn)行驗(yàn)證,依照用戶的權(quán)限激活相關(guān)功能。超級治理員具有所有的操作權(quán)限,系統(tǒng)的功能結(jié)構(gòu)圖如圖3-3所示。圖33 系統(tǒng)功能結(jié)構(gòu)圖上圖只是列出了一些要緊功能,系統(tǒng)還能夠依照不同需求生成各種統(tǒng)計(jì)報(bào)表。3. 系統(tǒng)開發(fā)環(huán)境 本系統(tǒng)是在WindwP中文版操作系統(tǒng)環(huán)境下,使用icrosf Visa Studo 208中文版用C+語言開發(fā)成功的。在開發(fā)過程中,使用了OLE技術(shù)和ctiveX控件技術(shù)。后臺數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)采納的是Mcrsoft的 QL rer205和Aes
20、s數(shù)據(jù)庫系統(tǒng),通過ADO數(shù)據(jù)庫開發(fā)技術(shù),直接操作數(shù)據(jù)庫文件。3.4系統(tǒng)的運(yùn)行環(huán)境系統(tǒng)能夠直接在Win98、Wi200、inXP環(huán)境下運(yùn)行。系統(tǒng)預(yù)設(shè)的超級治理員用戶名為“admin”,密碼為“din”。3. 系統(tǒng)運(yùn)行演示程序啟動(dòng),首先彈出如圖3-4所示的“系統(tǒng)登錄”對話框,只有輸入正確的用戶D、登錄密碼才能進(jìn)入系統(tǒng)能夠。圖3-4 “系統(tǒng)登錄”對話框假如登錄用戶為超級治理員或治理員,會進(jìn)入系統(tǒng)的主界面窗口,如圖35所示。圖3-5 系統(tǒng)的主界面窗口假如登錄用戶權(quán)限為營業(yè)員,由于其只具有售貨權(quán)限,因此系統(tǒng)會直接彈出“銷售開單”對話框,如圖-6所示。圖3-6 “銷售開單”對話框在進(jìn)行相關(guān)操作前,首先需要
21、添加、設(shè)置一些差不多資料,如商品分類登記,其操作設(shè)置對話框,如圖-7所示。圖3-7 “商品分類登記”對話框另外,系統(tǒng)還提供了豐富的報(bào)表功能,如圖3所示的商品分類報(bào)表,同時(shí)對報(bào)表提供了導(dǎo)出到Ece文件和打印的功能。圖3- 商品分類報(bào)表對話框36系統(tǒng)類庫設(shè)計(jì) BITVRL超市治理系統(tǒng)主框架的設(shè)計(jì)是通過MFC創(chuàng)建向?qū)?chuàng)建的基于對話框的窗口程序,在對話框程序中添加了菜單欄,系統(tǒng)的要緊類庫設(shè)計(jì)如下。自定義擴(kuò)展類:為了提高開發(fā)效率、便于代碼重用,自定義了一些數(shù)據(jù)操作類和控件擴(kuò)展類,如表31所示。表3-1 自定義擴(kuò)展類及功能類講明CDOonn通過ADO實(shí)現(xiàn)對ACCES、lSerer等數(shù)據(jù)庫的訪問Ctable
22、artIo依照數(shù)據(jù)庫表的分配、分片信息,實(shí)現(xiàn)對數(shù)據(jù)庫表的增、刪、改、查CFileOerate實(shí)現(xiàn)對硬盤文件的常用操作CMyChiTtr實(shí)現(xiàn)依照逐字提取漢字拼音的首字母CMyButtonBttn類的派生類,實(shí)現(xiàn)帶有位圖和文本的按鈕CMyMeuCnu類的派生類,用于定制自己的菜單CMenuIemCntextCMenu類中用到此類,用于保存菜單項(xiàng)的信息CMTme實(shí)現(xiàn)簡單的時(shí)刻格式的轉(zhuǎn)換MyEcel完成C對Exel文件的操作對話框窗口類:在系統(tǒng)中,用戶所有的數(shù)據(jù)查詢、操作差不多上通過對話框窗口來實(shí)現(xiàn)的,系統(tǒng)開發(fā)的對話框類如表-2所示。表-2 對話框類及講明類講 明ClgFenJBasePOS機(jī)差不多信
23、息治理對話框類Chopanaelg主框架對話框類CDgFeiBae商品分類差不多信息治理對話框類CDgDanganBase商品差不多信息治理對話框類lGongYigShanBase供應(yīng)商差不多信息治理對話框GDlJiShZi價(jià)格自動(dòng)設(shè)置對話框類lgnHuoKaDan商品進(jìn)貨開單治理對話框類DlgJinHoTuDan商品進(jìn)貨退單治理對話框類CDlgXaSoKanDa商品銷售開單治理對話框類CDlgXiaoSouTiDa商品銷售退單治理對話框類DlAl用于查找信息顯示對話框類ClgReort用于報(bào)表顯示對話框類CDlgLgo用戶登錄對話框類CDlgw更改密碼對話框類CDgQu退出系統(tǒng)提示對話框類打
24、印相關(guān)類:系統(tǒng)能夠提供了報(bào)表的打印和打印預(yù)覽功能,其相關(guān)的設(shè)計(jì)類如表-所示。表-3 打印相關(guān)類及講明類講 明CPrntFrmeCFraeWd派生類,用于構(gòu)建打印框架類rtiw打印視圖類另外,系統(tǒng)還包含一些主框架相關(guān)類、導(dǎo)入ActveX控件(MC rdControl)相關(guān)類和導(dǎo)入LE對象(Excel)相關(guān)類。分布式數(shù)據(jù)庫分析與設(shè)計(jì) 4.1數(shù)據(jù)庫分析考慮到總站點(diǎn)的信息量大采納L Serve00數(shù)據(jù)庫,而區(qū)域站點(diǎn)信息量相對較小采納Accss數(shù)據(jù)庫。當(dāng)區(qū)域業(yè)務(wù)拓展,操作終端增加時(shí),Acess數(shù)據(jù)庫也專門容易的移植到SQSrvr數(shù)據(jù)庫系統(tǒng)中。另外區(qū)域站點(diǎn)采納Acce數(shù)據(jù)庫能夠?qū)崿F(xiàn)方便的部署。4.2數(shù)據(jù)庫
25、概念設(shè)計(jì)分析超市治理功能流程,系統(tǒng)的數(shù)據(jù)實(shí)體要緊包括差不多資料對象實(shí)體、庫存實(shí)體、進(jìn)貨/銷售開單、進(jìn)貨/銷售退單、進(jìn)貨/銷售商品實(shí)體、各站點(diǎn)數(shù)據(jù)庫服務(wù)器IP信息實(shí)體、數(shù)據(jù)庫表分配分片信息實(shí)體等。差不多資料對象實(shí)體包括商品類不、商品明細(xì)、供應(yīng)商、P機(jī)和登錄用戶實(shí)體。商品庫存實(shí)體記錄庫存商品的數(shù)量和價(jià)格信息,事實(shí)上體的E圖如下。商品進(jìn)貨單實(shí)體用于記錄進(jìn)貨單的統(tǒng)計(jì)信息,事實(shí)上體的-圖如下所示。進(jìn)貨商品實(shí)體用于記錄進(jìn)貨單對應(yīng)的商品信息,事實(shí)上體的E-R圖如下所示。進(jìn)貨退單實(shí)體用于記錄進(jìn)貨退單信息,事實(shí)上體的E-圖如下所示。與進(jìn)貨相對應(yīng)的銷售單實(shí)體、銷售商品實(shí)體和銷售退單實(shí)體的-R圖如下所示。各站點(diǎn)數(shù)據(jù)
26、庫服務(wù)器I信息,記錄各個(gè)區(qū)域數(shù)據(jù)庫服務(wù)器對應(yīng)的I地址,事實(shí)上體的E-R圖,如下圖所示。數(shù)據(jù)庫表分配分片信息,記錄數(shù)據(jù)中所有的表的分布式分配和分片信息,事實(shí)上體E-R圖,如圖所示。.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)商品類不表、商品明細(xì)表、供應(yīng)商表、PS機(jī)表、登錄用戶表、庫存表、進(jìn)貨/銷售開單表、進(jìn)貨/銷售商品表、進(jìn)貨/銷售退貨商品表、IP地址登錄信息表、數(shù)據(jù)庫表的分配和分片信息。商品類不表:商品明細(xì)表:供應(yīng)商表:POS機(jī)表:用戶表:庫存表:進(jìn)貨單表:進(jìn)貨商品表:進(jìn)貨商品退單表:銷售單表:銷售商品表:銷售商品退單表:服務(wù)器IP信息表:分片及分布信息表:4.4分片與位置分配設(shè)計(jì) 4.1站點(diǎn)通信模型在我們的連鎖超
27、市治理系統(tǒng)中,有一個(gè)總店并下分多個(gè)分店,總店和分店之間或分店與分店之間都能夠進(jìn)行通信。每個(gè)分店是一個(gè)相對獨(dú)立的數(shù)據(jù)庫服務(wù)系統(tǒng),其能夠連接任意數(shù)量的客戶端。通信模型如下圖所示:4.4.2數(shù)據(jù)表的分片與位置分配設(shè)計(jì)依照以上得到的關(guān)于要緊信息數(shù)據(jù)的需求分析結(jié)果,為該連鎖超市系統(tǒng)的分布式數(shù)據(jù)庫系統(tǒng)進(jìn)行要緊信息數(shù)據(jù)的分片和分配設(shè)計(jì)如下:1、數(shù)據(jù)的分片設(shè)計(jì)(1)由于該連鎖超市系統(tǒng)的各連鎖店之間在經(jīng)營上是獨(dú)立的,每個(gè)門店只關(guān)懷自己的經(jīng)營狀況,有關(guān)供應(yīng)商信息、POS機(jī)信息、商品信息和進(jìn)貨銷貨信息等基礎(chǔ)數(shù)據(jù)差不多上各門店單獨(dú)治理和使用,門店之間互不相關(guān)。因此,商品明細(xì)表、供應(yīng)商表、PO機(jī)表、庫存表、進(jìn)貨/銷售開
28、單表、進(jìn)貨/銷售商品表、進(jìn)貨/銷售退貨商品表按照地域(門店所在區(qū)域標(biāo)志)采納水平分片的方法得到水平片段。(2)那個(gè)地點(diǎn)我們關(guān)于商品信息進(jìn)行了垂直分片,分成了商品明細(xì)表和庫存表,因?yàn)樯唐返哪承傩裕鐜齑媪康刃枰?jīng)常更新,因此將這些屬性劃分出來構(gòu)成單獨(dú)的實(shí)體能夠減少系統(tǒng)開銷。(3)由于整個(gè)連鎖超市的職員信息由總公司治理和維護(hù),各門店只能夠查詢本店的職員信息。因此職員信息不必分片,能夠采納視圖的形式提供給各門店查詢本門店的職員信息。另外,各個(gè)區(qū)域數(shù)據(jù)庫服務(wù)器的I地址信息也只是由總部治理、維護(hù),因此也不必分片。(4)由于商品分類數(shù)據(jù)由總部統(tǒng)一治理并提供各門店使用,而且,商品類不信息數(shù)據(jù)在各門店都要
29、經(jīng)常使用。因此,商品類不信息數(shù)據(jù)也不必分片。()該分布式數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)了簡單的目錄治理,記錄數(shù)據(jù)庫中各個(gè)表的分片和分配信息,以便數(shù)據(jù)更新時(shí),維護(hù)各個(gè)站點(diǎn)上數(shù)據(jù)的一致性。那個(gè)表由總部規(guī)劃建立,各門店也會經(jīng)常使用。因此,數(shù)據(jù)庫目錄信息表也不必分片。2、數(shù)據(jù)及其片段的分配設(shè)計(jì)(1)關(guān)于只在各門店單獨(dú)使用的除商品類不信息和數(shù)據(jù)庫目錄信息以外的其他基礎(chǔ)信息的片段,采納按區(qū)域分片然后分配到各個(gè)門店的數(shù)據(jù)庫服務(wù)器上??傉旧嫌兴虚T店的所有信息。(2)整個(gè)系統(tǒng)的職員信息、I地址信息由公司總部治理和維護(hù),因此只分配在總部站點(diǎn)中。()商品類不信息、數(shù)據(jù)庫目錄信息是由總部統(tǒng)一規(guī)定并下發(fā)到各門店的,由于各店經(jīng)常會使用
30、到這類基礎(chǔ)信息,因此在各門店都具有相同的副本。因此,商品類不信息、數(shù)據(jù)庫目錄信息都可不能分片但被復(fù)制,且復(fù)制的個(gè)數(shù)為門店的個(gè)數(shù)?;赟QL的SMS的詳細(xì)設(shè)計(jì)(實(shí)現(xiàn))5.1公共類設(shè)計(jì)為了提高程序代碼的開發(fā)效率,便于代碼重用,在系統(tǒng)開發(fā)中,創(chuàng)建了一些數(shù)據(jù)操作類和控件擴(kuò)展類。5.1.1文件操作類CFilOpere為了便于對硬盤文件的操作,開發(fā)了文件操作類ClOpera,它通過調(diào)用AP函數(shù)實(shí)現(xiàn)常用的文件操作。CileOpeate類的聲明代碼如下。extern CtrngstrTmPt;clas ieOpratepblc:/構(gòu)造函數(shù)Fileperae();/取得當(dāng)前程序運(yùn)行的路徑CStng GtAppP
31、ah();/推斷是否存在stFn文件夾BOOL sFlExist(CSting trFn,BOOL bDr);/制作strFldeame文件夾返回文件夾名CStrn MkeDrecty(CSig srFlome);/自動(dòng)生成文件夾Strng kerectory();/得到文件夾名為strFderName的路徑StringGetirctoryPth(Ctin strFloderNa);/刪除strFloderdNme文件夾vod delDirectory(CSting strlerNm);/刪除主文件夾(dat)void dlMainiretory();/制作主文件夾vid aeanDirect
32、oy();/推斷strIntDgit是否為整數(shù),是否小于inBigOL CheckIngi(CStritrItDigit,int ntBig);/推斷srFileName是否能夠做文件夾或文件的名字BO eckFileName(CString strFlae);/推斷tText是否為空BO CheckEmpty(CStrin strext);/刪除rFoderame文件夾下名為srNa的文件oiddelFle(Crn strFldNme,CSting strleN);/得到stroerNa文件夾下名為strFileNam的文件路徑CStrgetFileame(Srin stlrame,Srin
33、gstrFiNm);/制作sFloderNe文件夾下名為strileNam的文件CString akeFile(CStringsrFlerm,BOObMak);/顯示文件夾對話框BO GFlder(Ctrng*srSelecteFolder,osthar*lpszitle,constHWND hwndOn,ons har* RooFlr,cnthar*strSttFoer);系統(tǒng)程序中要緊用到了CFiOperat類中的Getpath函數(shù)。GAppPath函數(shù)用于獵取當(dāng)前運(yùn)行程序所在文件夾的路徑,事實(shí)上現(xiàn)代碼如下。trg Fieprate:etAppPat()/取得當(dāng)前運(yùn)行程序所在文件夾路徑ch
34、a lpFileNameMP;/路徑數(shù)組/獵取當(dāng)前運(yùn)行程序的全路徑GduleFileName(fxGetInstnceanle(),lpFilNme,_PATH);Crn stFileNe = lpileNam;/從字符串的最右邊向左搜索串in nInde = stFieNae.ReverseFin ();CStrng strath;if (nIndex )strath strileame.ef (nIndex);/取串左邊字符lstrPath ;return srPath;/返回前運(yùn)行程序的文件夾路徑5.2時(shí)刻格式轉(zhuǎn)換類CMTie系統(tǒng)開發(fā)中,需要頻繁的對日期、時(shí)刻數(shù)據(jù)進(jìn)行操作,因此那個(gè)地點(diǎn)設(shè)
35、計(jì)了類CMyTim,實(shí)現(xiàn)簡單的時(shí)刻日期轉(zhuǎn)換,CMyTime類的聲明如下。clasyTimepubic:CTimeValueTime;/CTme類型的值/nChines:TRUE-年月日時(shí)分秒 FALSE-:Ctring GtAllStrng(OOLblCinese);/返回字符串形式的日期時(shí)刻/blnhinese:TRUE-年月日 FALSE-ring GetDateSn(BOOL blCnese);/返回字符串形式的日期/blnCines:TRE-時(shí)分秒 FAS:CString GetTimeStr(OOL blChinee);/返回字符串形式的時(shí)刻Strig GeSimpleSrn();/
36、返回簡單字符串形式的日期時(shí)刻CStrin GetWeek();/返回星期星期日/設(shè)置字符串形式的值/bnSiml:TUE-(%Y%m%d%H%S)LE-(年月日時(shí)分秒或-:)vid etAllStrng(CStrin ale,BOOLblnSimle);oi SetNow();/設(shè)置成現(xiàn)在時(shí)刻CMyTime();/構(gòu)造函數(shù);SetNo函數(shù)獵取當(dāng)前日期,時(shí)刻,將其值給予ValueTime。voiCyTime:Setow()ValueTie=CTime::GetCurrntTie();5.3數(shù)據(jù)操作類CADOConn系統(tǒng)開發(fā)了數(shù)據(jù)操作類CADCnn,它是本系統(tǒng)的核心,實(shí)現(xiàn)了對數(shù)據(jù)庫數(shù)據(jù)的差不多操作
37、功能,DCo類的聲明代碼如下。#impr c:proram flescmo filssysemadomsado.ll no_amesacerenam (EOF,dEOF)clss CDOConn / 定義變量public:_CnctnPtr m_pConntion;/指向Cnneion對象指針:/添加一個(gè)指向Recode對象的指針:_ecosetPt m_pRecordse;_bsr_t _Dta;nt DataTye;CAOCn(itDataTyp);/構(gòu)造函數(shù)COonn();irualADOCnn();vo nIniCADOConn();/初始化連接數(shù)據(jù)庫_RecdsePtr& GeRco
38、rdSe(StringtrQL);/執(zhí)行查詢BOOLExecutSQ(Strng stQL);/執(zhí)行SQL語句,Iserpdte letevoiitonnect();/退出連接BOOLMoeFirs();/字段集移向開頭BoeNext();/字段集向下移BOOpen(CStrin srL);/打開記錄集OOLOpeLoo(Ctring stSQ);/打開記錄集Ctrg GetValuerin(nt inex,nstrSum);/返回記錄集中某字段的字符串by GetValeBt(int idex);/返回記錄集中某字段的字節(jié)nt GtValueIt(in index);/返回記錄集中某字段的短
39、整數(shù)ouble Getalueube(int ndx);/返回記錄集中某字段的雙精度數(shù)floatGeVaeFloat(nt nde);/返回記錄集中某字段的單精度數(shù)long GetValeLon(it idex);/返回記錄集中某字段的長整型數(shù)CTie etVaueDate(in inde);/返回記錄集中某字段的日期時(shí)刻/獵取記錄集某字段的BYT值,并換為Sring返回CStrig GeVlueBytStr(nt inx,it ru);/獵取記錄集某字段的NT值,并換為CSrng返回Sting GetValentSr(int iex,in strSu);/獵取記錄集某字段的uble值,并換為
40、Cting返回Ctrig tluDoleStr(int index,int trLSu, rRSm);/獵取記錄集某字段的loa值,并換為CSrin返回CStinGetVaueFlotSt(in ne, trLSum,int strRSu);/獵取記錄集某字段的Lo值,并換為CSti返回CSrgGtValueLongStr(int inx,int trSu);/獵取記錄集某字段的CTme值,并換為CSring返回CtgGeVaueDteS(in nex,Srig stp);/添加單項(xiàng)數(shù)據(jù)OOL AdItem(CStrig bl,int stru,LPCTSR pText, . );/得到字段中
41、數(shù)據(jù)的類型inteVluTye(int index);BOOL adoEOF();/記錄集的結(jié)束推斷Fllit(stCt *iMain,n lenEn);/填充列表(lOpnEnd代表展開多少列)OL InitLst(Cistrl *isMain,intoSum);/初始化列表CStrng GetApPat();/得到應(yīng)用程序所在的文件夾BOOL ilist(istCtl*stain);/填充列表Stig GeFieldsame(itinde);/返回字段名字tetFldsCount();/返回字段數(shù)量/返回?cái)?shù)據(jù)集數(shù)log GeRcordCu();dWritLog(CStrng trSql);
42、/寫日志文件voi WiteLog1(Ctrin usrNam);/寫日志文件,誰誰登錄;、數(shù)據(jù)庫操作函數(shù)對常用的數(shù)據(jù)庫操作定義了相關(guān)函數(shù)。(1)連接數(shù)據(jù)庫在類的構(gòu)造函數(shù)CADOConn中,聲明數(shù)據(jù)庫的名稱。Dnn::CAOConn()m_Dataype1;/數(shù)據(jù)庫類型csmtrDaa_bsr_t(ShopDt.mdb);/數(shù)據(jù)庫名稱在OIniCADOCn函數(shù)中,實(shí)現(xiàn)連接數(shù)據(jù)庫。vod CADOConn:OnInitCAOon()/ 初始化OLE/M庫環(huán)境:Coniialize(NULL); try/初始化指針m_pCnetion=NUL;/初始化指針_pRecordset=NUL; 創(chuàng)建on
43、necion對象m_pConectionCeteIstan(ADODB.Cnction);/ 設(shè)置連接字符串,必須是BSTR型或者_(dá)stt類型_bstr_t srConnect;swth(m_DaaType)cas :/CEStrConec=bs_t(Prode=Mcrst.e.OLEDB.;);strCect=stronct+_rt(Dt urce=);strConnect=strConnct+trt(IPddess)bstr_(t);strCone=stCnnect+_trDta;bra;ase:/EXCELsronnct=_str_t(Provdecrft.Je.OLEB40;);stC
44、onnct=strCone+_str_t(DaSrce=);stConnect=rConnect+bstr_t(tApat()_rt();stCnectstrCont+m_strata;strCnect=sConect+;Exend ropertes=Exc 8.0;bak;case3:/SQLSERVEsConectPovdr=SQED; Serr=MiIP;atabase=Shata; uid=admin; pwd23456;rak;m_pConnection-Op(stnec,,,aoeUnnon);/捕捉異常catch(comeror e)/ 顯示錯(cuò)誤信息fMgeBox(e.Dcrip
45、to());ASST(ponneci != NULL);(2)對數(shù)據(jù)庫進(jìn)行查詢etRcordS函數(shù)實(shí)現(xiàn)執(zhí)行Selec查詢語句,返回查詢結(jié)果集_orettr& CDOCon:etRecordet(CStringtrQ)try/連接數(shù)據(jù)庫,假如Conetin對象為空,則重新連接數(shù)據(jù)庫if(m_onnction=LL)OnnitCDOn();strSL.TimLeft();stQ.TriRight();/創(chuàng)建記錄集對象m_pReorset.CrteIstae(_uido(Redst);/ 取得表中的記錄m_pReors-Open(br_t(trSL),_Cetion.GetntercePt(),dO
46、pDynamic,adLOpimistic,dCmdxt);/ 捕捉異常ac(_co_eror e)/ 顯示錯(cuò)誤信息AfxMessageBox(e.Desrpion();SSER(mpecordset!= NULL);/返回記錄集retr _pRecordse;CADOCnn類的Open函數(shù)的實(shí)現(xiàn)與GetRcorSet函數(shù)差不多類似,只是它不返回記錄集,而是打開數(shù)據(jù)庫表。()執(zhí)行數(shù)據(jù)庫操作語句xecteSQL函數(shù)實(shí)現(xiàn)執(zhí)行SL數(shù)據(jù)操作語句,如INR/UPDAELEE語句等。BOOL CADOConn:ExeceSQL(Ctrn srSQL)tr/是否差不多連接數(shù)據(jù)庫i(_Cnecion = NU
47、L) OnnitCADOon();strL.rimLft();strSL.TrimRigt();m_Conncion-Eecue(_b_t(strSL),ULL,admText);WriteLg(stS);return TRUE;catch(_com_err e)MssagBo(eDecpin();rtrnALSE;2、記錄集操作函數(shù)為了便于對記錄集進(jìn)行操作,在DConn類中定義了常用的記錄集操作函數(shù)。GeValueInt實(shí)現(xiàn)了從記錄集中獵取不同類型的字段值函數(shù),以獵取整形字段值。int CADOonn:GtuInt(int idex)_iant_t Value;/var型返回值_varitt
48、 Inex;/索引it iVa;/數(shù)值返回值vndexvt=VT_;vnex.iVal=inx;alue=m_pRecrdse-Fels-GeItem(vIndex)Vale;/獵取索引字段的值sitch(aluevt)ase VTULL:/為空值ilue=;/賦值brea;caV_ERR:/錯(cuò)誤iVlu0;/賦值ba;case VT_EPTY:/不存在iVaue=0;/賦值reak;et:iValue=vValue.Vl;/獵取值eturnialu;/返回整數(shù)值、列表控件操作函數(shù)在ADCn類中定義了列表控件的操作函數(shù),實(shí)現(xiàn)將記錄集數(shù)據(jù)添加到指定的列表控件中。其中InitList函數(shù)實(shí)現(xiàn)初始化
49、列表控件。BOO ADOConn:InitList(CListCtrllisMin,itclSum)longlMax0;_ariant_t vIndex;/var類型索引Inde.vtV_I2;inti;ax=m_pRcodsetFields-Cot;獵取記錄集字段數(shù)/設(shè)置列表框控件風(fēng)格lsMain-StendStl(VS_EX_RILINES|LVS_E_FULLOSEL);or(i0;iFilds-etIte(vIndx)-Getame();/在列表框中添加列l(wèi)itain-InertCmn(i,strTie,LFM_CNTER,100,0);int intWidth;/列表框列的寬度for
50、(0;iclSum;i+)遍歷列表框中添加列/依照字段標(biāo)題自動(dòng)設(shè)置列寬litMai-SetColumnWidth(i,LVW_UTOIZE_SEHADE);itidthinihlsMain-GeColunidth(i);/計(jì)算列寬總和RETrtList;listnGetWinoRect(&ecLis);/獵取列表框的窗口區(qū)域if(intWitSelunidth(,lisMai-GeCoumnh(i)+intdth);retun TUE;FillLt函數(shù)用于向列表框中添加記錄BOOL COonn:FList(CListCtr *lisMan,intColOpeEn)nt i,Tpe,iRow=,
51、listidh=0;_varant_ vIdex;/r類型索引ong la=0;lMaxpRecrdsetield-Cunt;/記錄集字段數(shù)目vInd.tVT_I2;lisMan-DeleeAllIte();/刪除列表控件各列的值(!m_pRecrsetaEOF)/遍歷記錄集ovFirs();/首條記錄le(!m_pRorset-adoEOF)r(=;iFields-ette(vndx)GetType();swith(iType)caeao_FieldSr:cs adField_et:/文本traueGetVueStrig(i,0);獵取文本值beak;ase o_Feld_og:/長整型tr
52、Vale=GetVauegStr(i,0);/獵取長整值并轉(zhuǎn)換為文本brak;casado_Feld_In:/型trVlue=GealueItSr(i,0);/獵取INT值并轉(zhuǎn)換為文本bea;ce ado_Fie_Foat:/Float型strVle=etVlueFoSr(,0,2);/獵取Flo值并轉(zhuǎn)換為文本rk;cae Feld_Dubl:/oble型talu=GeValueDoblStr(i,0,2);/獵取Dobe值并轉(zhuǎn)換為文本reak;as adld_Bye:/yte型strValue=VlueByetr(i,0);/獵取Byte值并轉(zhuǎn)換為文本beak;cs ado_Field_Da
53、e:/日期時(shí)刻型strVue=GtValueStig(i,0);/獵取日期時(shí)刻值并轉(zhuǎn)換為文本ba;dfaut:strVal;bea;if(_DaTye=2)/Excl文件tru=Geaering(i,);if(i=)/第一列itMin-InrItem(iRow,trValue,0);/添加行elseistMai-SeItem(iRo,i,strVae);/設(shè)置行值m_Reordset-MveNxt();/下一記錄iRo=Ro1;Mvit();/移向記錄集開頭if(listMa-tItemCoun()0)/列表框含有列if(olenn)/要展開的列or(int =0;Cpnnd;i+)listM
54、an-SetColumnWidh(i,LVSC_AUTOZE);/自動(dòng)設(shè)置列寬lisWh=listMain-Gtoumndth(i);/獵取列寬listMi-etColumnWdth(i,W_AUOIEUSHEADER);/依照列標(biāo)題設(shè)置列寬(listWidtistMinGtColumnd()/依照列標(biāo)題設(shè)置的列寬若小于自動(dòng)設(shè)置的列寬listain-eColumnWih(,LSCW_UTOIZ_UHEADE);elseisMain-SColumWidh(i,LVCW_AUTOIZ_USEHADE);/依照列標(biāo)題設(shè)置列寬else/表中沒有列f(i=0;Ma;+)listin-StColumnWi
55、dth(i,LVSCW_AUSIZE_EEADR);listWdth=itidh+listin-GeColumnWidth(i);RECT ectLit;listMGetWindwect(recList);if(listtSetColumnWdh(i,listMin-GetCumnWith(i)+liWidth);retur RU;5.1.數(shù)據(jù)庫表的操作類CtblePartInfo由于本項(xiàng)目模擬分布式數(shù)據(jù)庫,對數(shù)據(jù)庫部分表進(jìn)行了分片、分配等冗余設(shè)計(jì)。因此,對數(shù)據(jù)庫的增、刪、改、查要制定一定的規(guī)則,來保證數(shù)據(jù)的一致性,而這種規(guī)則不因?yàn)楸淼牟煌煌?。為?我們設(shè)計(jì)了CtablePartIn來統(tǒng)一
56、的執(zhí)行這種規(guī)則。lass taePtInfo :pl CWndublc:tblearInf();ablrtIno(trng _tbleNme);ablPtInfo();public:/依照表名tablm獲得表的分片和分配信息oid GetTabePrtInfo();bool peratiOpen(CString tSQL,in nColum);/依照表的分片和分配信息,按增加規(guī)則執(zhí)行數(shù)據(jù)庫插入操作o perationAd(CSrg strQL);/依照表的分片和分配信息,按增加規(guī)則執(zhí)行數(shù)據(jù)庫修改操作bol OperatinModify(CSting strSQ);/依照表的分片和分配信息,按增
57、加規(guī)則執(zhí)行數(shù)據(jù)庫查詢操作bo OperatioS(CSing strSQL);ool OpertionSelc(rngtSQ,n nClmn);ooOpetoncIi(String stSL,nt nColn);bool OperaiSelctInita(Cring strQ);/依照表的分片和分配信息,按增加規(guī)則執(zhí)行數(shù)據(jù)庫刪除操作bool Opraionelet(Crng rSQL);/處理總站或者區(qū)域站點(diǎn)故障vodHnerro(bool suces,in ra);pulic:nt part;it copy;CLitCtr* mist;CSrin tableNam;CSi tr;boIDon
58、e;bolIsDone;CString rrorMesag;下面以ol pationAd(String rSQ)為例介紹了為維護(hù)數(shù)據(jù)庫一致性,對數(shù)據(jù)庫更新規(guī)則的詳細(xì)實(shí)現(xiàn)。bo ablPatnfo:peatoAdd(CStrn strSQ)bolsucess=tre;/用于推斷SQL語句是否執(zhí)行成功/首先更新總站數(shù)據(jù)庫中的相應(yīng)記錄,因?yàn)樗械男畔⒍紩诳偣局写嬖贑ADOConnadoMain();succe=adoMin.cuQL(strQ,0);andlrr(suces,0);/處理執(zhí)行結(jié)果,執(zhí)行故障則給出報(bào)錯(cuò)信息f(ucces)/總站執(zhí)行成功,接著進(jìn)行區(qū)域站點(diǎn)的操作if(0=m_gobal
59、AreaIt)/主站用戶添加數(shù)據(jù)if(1=copy)/冗余分配的信息,同步各個(gè)區(qū)域站點(diǎn)數(shù)據(jù)CDOConn adP(3);CSing slt=select *from IPIno herearea!0;adoIP.Open(sqstr);/那個(gè)地點(diǎn)只有海淀和朝陽兩個(gè)站點(diǎn),因此預(yù)先申請兩個(gè)CDICn對象Dnn aoAces1;AOon doAces2;int i=;/循環(huán)更新每個(gè)區(qū)域站點(diǎn)wile(!adIP.adEOF())i+;stIP = IPAddress;Address =+adoP.GtVaeStrng(1,0);if(1=i)/處理海淀區(qū)數(shù)據(jù)庫uccss=adAcess1.ExeS(s
60、trS,1);HndlErr(succes,1);if(!succes)/區(qū)域站點(diǎn)沒有添加成功,這時(shí)總站撤銷事務(wù)adoMan._ponnectionRllbckTras();doMan.Writeog(ErrorMessage,0);/區(qū)域站點(diǎn)添加成功,需等待區(qū)域添加成功再提交事務(wù)f(2=&sucess)/區(qū)域站點(diǎn)添加成功,處理朝陽區(qū)uccesdAcess2.ExeteSQ(stQ,2);HandeError(ses,2);if(!success)/區(qū)域站點(diǎn)沒有添加成功aoam_pConnctionRllbaTrans();/總站撤銷事務(wù)doMWrieog(Erorssage,0);dcss1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青少年皮膚生活習(xí)慣注意事項(xiàng)
- 母嬰護(hù)理員崗位知識新讀本
- 胃腸減壓患者的疼痛管理
- 高級建造師培訓(xùn)課件
- 骨質(zhì)疏松癥的臨床表現(xiàn)與診斷
- 2025-2030綜合交通運(yùn)輸樞紐建設(shè)運(yùn)營效益杠桿分析與政策建議規(guī)劃報(bào)告例文
- 公司的有限責(zé)任制度
- 公司付款報(bào)銷制度
- 2025-2030中國有機(jī)藜麥種子行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 分子篩培訓(xùn)課件
- 房屋租賃合同txt
- 加工中心點(diǎn)檢表
- 水庫清淤工程可行性研究報(bào)告
- THBFIA 0004-2020 紅棗制品標(biāo)準(zhǔn)
- GB/T 25630-2010透平壓縮機(jī)性能試驗(yàn)規(guī)程
- GB/T 19610-2004卷煙通風(fēng)的測定定義和測量原理
- 精排版《化工原理》講稿(全)
- 中層管理干部領(lǐng)導(dǎo)力提升課件
- 市場營銷學(xué)-第12章-服務(wù)市場營銷課件
- 小微型客車租賃經(jīng)營備案表
- 風(fēng)生水起博主的投資周記
評論
0/150
提交評論