999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實現(xiàn)異構(gòu)數(shù)據(jù)表查詢維護

2018-11-07 02:47:36
網(wǎng)絡(luò)安全和信息化 2018年8期
關(guān)鍵詞:結(jié)構(gòu)方法

我們知道,在數(shù)據(jù)庫中,每個數(shù)據(jù)表都是為完成不同的目標功能而設(shè)計的,其字段結(jié)構(gòu)因設(shè)計目標不同而各具差異。

當需要對這些異構(gòu)數(shù)據(jù)表做選定字段的查詢操作時,就必須編制不同的程序代碼或者定制不同的查詢表單來實現(xiàn)。而如果需要查詢的數(shù)據(jù)表比較多,查詢代碼或表單就會顯得冗長而繁雜。

最近,筆者在開發(fā)本單位一個項目管理軟件時,就遇到了類似問題。如何用一種通用方法實現(xiàn)對異構(gòu)數(shù)據(jù)表的查詢維護,減少程序代碼冗余和系統(tǒng)開銷,優(yōu)化代碼編制,提高運行效率,從而獲取解決此類問題的通用途徑。

而后經(jīng)筆者分析,找到了一種可行的解決方案,現(xiàn)拿出來和讀者一起分享,希望能夠?qū)ψx者有所啟發(fā)和幫助。

事例分析

筆者采用Delphi及Access作為應(yīng)用軟件制作工具。涉及通信、人才培訓(xùn)、幼兒教育、房地產(chǎn)租賃等15個服務(wù)行業(yè)。

查詢需求比較簡單,就是在一個查詢窗口下,針對15個不同行業(yè)類別,結(jié)合其他查詢條件實施組合查詢。

圖1 查詢設(shè)計界面

系統(tǒng)查詢界面設(shè)計如圖1所示。通過行業(yè)下拉框,選擇不同行業(yè)(數(shù)據(jù)表)類別,設(shè)計其他查詢條件的下拉框或輸入框,如所屬單位范圍、類別區(qū)分、當前狀態(tài)、單位名稱、項目名稱、項目類別、責任人等,用戶可以選取和輸入查詢條件,當條件發(fā)生變化時激活查詢。

實現(xiàn)上述查詢功能一般都會用到三種數(shù)據(jù)構(gòu)件,一是數(shù)據(jù)表構(gòu)件KaDaoTable或ADOTable,用于定位不同的行業(yè)數(shù)據(jù)表;二是數(shù)據(jù)顯控構(gòu)件DBGrid,用于顯示查詢結(jié)果;三是數(shù)據(jù)源構(gòu)件DataSource,用于將數(shù)據(jù)表和數(shù)據(jù)顯控構(gòu)件進行關(guān)聯(lián)。

雖然有15個行業(yè)的數(shù)據(jù)表,但我們不需要在系統(tǒng)中放置這么多的數(shù)據(jù)表構(gòu)件,而只需要設(shè)置1個KaDaoTable或ADOTable數(shù)據(jù)表構(gòu)件,通過簡單的SQL語句,在程序中動態(tài)進行切換就可以了。

行業(yè)競爭程度因素(Marketc),通過Herf i ndahl-Hirschman指數(shù)對企業(yè)所屬行業(yè)的競爭度進行檢測(Kafetzopoulos 和 Psomas 2015)[14]。

數(shù)據(jù)源DataSource構(gòu)件設(shè)置更簡單,因為數(shù)據(jù)表構(gòu)件只有1個,所以只需要在DataSource中靜態(tài)設(shè)置好對應(yīng)數(shù)據(jù)表構(gòu)件名稱即可。

圖2 DBGrid構(gòu)件欄目結(jié)構(gòu)示例

數(shù)據(jù)顯控構(gòu)件DBGrid的設(shè)置就不一樣了,因為不同行業(yè)的數(shù)據(jù)表,其字段結(jié)構(gòu)基本上不同,有的甚至差異巨大,與之對應(yīng)的DBGrid欄目數(shù)據(jù)項也就隨之完全不相同。傳統(tǒng)上可以利用兩種方法實現(xiàn)顯控:一是靜態(tài)法。即放置多個DBGrid構(gòu)件,分別對應(yīng)不同的行業(yè)數(shù)據(jù)表,通過DBGrid構(gòu)件的圖形化設(shè)計界面,事先設(shè)計好顯示欄目結(jié)構(gòu),運行時直接調(diào)用(如圖2)。

二是動態(tài)法。即編制程序代碼,在系統(tǒng)運行過程中根據(jù)不同行業(yè)表的選擇,動態(tài)將需要顯示的數(shù)據(jù)欄目添加到DBGrid構(gòu)件中。

靜態(tài)法的優(yōu)點是幾乎不需要編制程序代碼,但缺點卻顯而易見,15個行業(yè)就需要增加15個DBGrid構(gòu)件,構(gòu)件冗余度高,系統(tǒng)資源開銷大,運行效率低;動態(tài)法的優(yōu)點正好和靜態(tài)法相反,系統(tǒng)開銷小,只需1個DBGrid構(gòu)件,但需要我們編制相應(yīng)程序代碼進行顯示控制。以下是動態(tài)添加1個DBGrid顯示欄目的代碼片斷:

可以想像,動態(tài)添加1個顯示欄目就需要至少6條語句,如果行業(yè)表的數(shù)據(jù)項較多,并且要求顯示的DBGrid欄目也較多時,動態(tài)添加DBGrid構(gòu)件顯示欄目的程序代碼會十分冗長繁雜。

因此,以上兩種方法要么增加了系統(tǒng)資源開銷,影響了執(zhí)行效率;要么程序代碼冗長,編制繁雜,達不到代碼優(yōu)化目標,都存在這樣那樣的問題。那么,有沒有一種更好的實現(xiàn)方法呢?答案當然是肯定的。

導(dǎo)出方法旨在將顯示欄目結(jié)構(gòu)導(dǎo)出到一個指定的文件中進行保存,導(dǎo)入方法則正好相反,可以導(dǎo)入事先保存的顯示欄目結(jié)構(gòu)文件,用于結(jié)果顯示。有了DBGrid構(gòu)件這兩個方法支持,同時針對DBGrid一些特殊欄目,如序號、合計等欄目的特殊應(yīng)用處理,我們自然就有了可行的解決方案。

解決方案

首先,生成DBGrid顯示欄目結(jié)構(gòu)文件。確定15個行業(yè)表需要顯示的數(shù)據(jù)字段,通過DBGrid圖形化界面對其進行編輯,然后針對每一個DBGrid設(shè)置一個“DBGrid顯示欄目生成”按鈕,在其OnClick事件中輸入如下代碼:

運行后,分別點擊“DBGrid欄目生成”按鈕,這樣就生成了15個后綴為tcc的文件,這些文件中存放著15個行業(yè)的DBGrid數(shù)據(jù)表欄目結(jié)構(gòu),便于后續(xù)動態(tài)導(dǎo)入操作。

其次,動態(tài)構(gòu)造KaDaoTable或ADOTable數(shù)據(jù)字段結(jié)構(gòu)。主要完成兩個步驟:一是切換數(shù)據(jù)表構(gòu)件到對應(yīng)的行業(yè)表;二是創(chuàng)建數(shù)據(jù)表構(gòu)件靜態(tài)字段,便于特殊處理。如前所述,從優(yōu)化的角度考慮,我們只使用了一個數(shù)據(jù)表構(gòu)件,因此在查詢不同行業(yè)數(shù)據(jù)表時,就必須對KaDaoTable或ADOTable數(shù)據(jù)表構(gòu)件進行切換,這可以通過編制SQL語句輕松實現(xiàn)。

此外,在切換到對應(yīng)行業(yè)表后,還必須動態(tài)創(chuàng)建數(shù)據(jù)表靜態(tài)字段結(jié)構(gòu)。靜態(tài)字段結(jié)構(gòu)包括兩個部分,一是行業(yè)表中自身所具有的字段,也就是常規(guī)字段部分;二是為完成特殊顯控需求而自定義的字段,即特殊字段(Delphi也稱之為計算字段)部分,如記錄序號字段等。代碼如下:

圖3 行業(yè)數(shù)據(jù)表字段結(jié)構(gòu)

由以上代碼可見,除了個別特殊字段(如序號)需要命名、賦值及加載外,其他常規(guī)字段生成只需要一條循環(huán)語句即可完成。

這樣,我們就通過簡單的程序代碼動態(tài)簡潔地實現(xiàn)了復(fù)雜的靜態(tài)設(shè)計,如圖4所示。

最后,根據(jù)所選查詢條件實施查詢。該過程主要有兩個步驟:一是選取查詢條件;二是調(diào)入DBGrid顯示欄目結(jié)構(gòu),顯示查詢結(jié)果。代碼如下:

結(jié)語

該方法可能只是在實現(xiàn)異構(gòu)數(shù)據(jù)表查詢維護中眾多方法的一種,但簡單可行,它充分利用了DBGrid構(gòu)件方法,將不同數(shù)據(jù)表字段對應(yīng)的顯示欄目以文件的形式靜態(tài)保存,系統(tǒng)運行時動態(tài)調(diào)入,同時,編制少量程序代碼,動態(tài)生成個別特殊字段欄目(如序號、合計等),這樣既方便了系統(tǒng)設(shè)計維護,又簡化了程序代碼編制,是一種實現(xiàn)異構(gòu)多表查詢維護的有效方法,希望通過此文起到拋磚引玉、舉一反三的作用。

猜你喜歡
結(jié)構(gòu)方法
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
學(xué)習(xí)方法
論《日出》的結(jié)構(gòu)
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
主站蜘蛛池模板: 幺女国产一级毛片| 久久久久国产一级毛片高清板| 夜精品a一区二区三区| 国产欧美日韩一区二区视频在线| 日韩大片免费观看视频播放| 亚洲人免费视频| 日韩欧美在线观看| 亚洲精品老司机| 天堂网国产| 日韩精品无码免费专网站| 中文字幕久久精品波多野结| 日韩毛片视频| 亚洲色图欧美在线| 久久免费观看视频| 97精品久久久大香线焦| 成年免费在线观看| 动漫精品啪啪一区二区三区| 免费人成视频在线观看网站| 日韩在线2020专区| 99久久99这里只有免费的精品| 91福利国产成人精品导航| 日韩av无码精品专区| 人妻21p大胆| 精品视频在线一区| 人妻出轨无码中文一区二区| 日本在线欧美在线| 国产va欧美va在线观看| 国产精品乱偷免费视频| 亚洲国产第一区二区香蕉| 欧美三级自拍| 免费Aⅴ片在线观看蜜芽Tⅴ| 精品国产毛片| 日韩午夜福利在线观看| 一级毛片a女人刺激视频免费| 国产美女免费| 亚洲一区色| 欧美日韩国产成人高清视频| 日韩精品资源| 精品人妻一区二区三区蜜桃AⅤ| 在线国产三级| 五月六月伊人狠狠丁香网| 国产成人久视频免费| 久久成人18免费| 激情影院内射美女| 91www在线观看| 久久精品aⅴ无码中文字幕 | 一边摸一边做爽的视频17国产| 亚洲午夜天堂| 日韩精品一区二区三区免费| 日本国产精品一区久久久| 在线无码av一区二区三区| 国产一级无码不卡视频| 国产日产欧美精品| 久久99精品久久久大学生| 免费人成网站在线观看欧美| 中文字幕精品一区二区三区视频| 欧美日韩亚洲综合在线观看| 久久无码av一区二区三区| 国产精品护士| 熟妇丰满人妻av无码区| 在线观看国产精美视频| 国产精品亚洲va在线观看| 91蝌蚪视频在线观看| 九九热精品免费视频| 美女内射视频WWW网站午夜 | 国产一二三区在线| 欧美激情福利| 国产一二三区在线| 欧美色伊人| 99热这里只有精品国产99| 亚洲欧美另类色图| 国产一线在线| 久久青草视频| 欧美精品在线观看视频| 国产大全韩国亚洲一区二区三区| 91欧美在线| 亚洲毛片一级带毛片基地| 国产激情第一页| 在线高清亚洲精品二区| 国产呦精品一区二区三区下载 | 国产白浆在线| 本亚洲精品网站|