亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        處置程序中的特殊字符

        2018-11-08 05:33:20
        網(wǎng)絡(luò)安全和信息化 2018年1期
        關(guān)鍵詞:關(guān)鍵字字符校驗

        故障現(xiàn)象

        筆者軟件編制采用的工具是Borland公司的 Delphi,數(shù)據(jù)庫采用微軟的Access數(shù)據(jù)庫。因為涉及下級單位較多,而且因新增項目原因,入庫單位數(shù)量還在不斷變化,為此專門編寫了一個單位維護模塊,如圖1所示。

        單位維護是一個基礎(chǔ)性的數(shù)據(jù)維護工作,標(biāo)準(zhǔn)化和準(zhǔn)確性要求都很高。為確保錄入信息準(zhǔn)確,特別增加了一個單位校驗功能。校驗原理和代碼實現(xiàn)都很簡單,設(shè)計思路是將單位表中的所有記錄遍歷一遍,逐一取出單位名稱,通過執(zhí)行SQL語句進行快速比對,如果有2個或以上記錄,說明單位名稱有重復(fù),生成列表清單供管理人員修訂。就是這么一個簡單的校驗功能卻出現(xiàn)了異常狀況(如圖2),很明顯,列表清單中名稱并不相同的兩個單位被系統(tǒng)認(rèn)為是兩個相同的單位,赫然顯示在篩查結(jié)果中。

        圖1 單位維護

        圖2 校驗結(jié)果

        故障分析

        問題究竟出在哪里呢?經(jīng)筆者初步判斷,問題可能來自三個方面,一是程序代碼編制問題;二是數(shù)據(jù)本身問題;三是數(shù)據(jù)庫系統(tǒng)兼容問題。順著這個思路,筆者首先查看了校驗功能的主要代碼片斷,如下所示:

        從邏輯和語句上看都沒有問題。再看看數(shù)據(jù),筆者發(fā)現(xiàn),所有重復(fù)單位中都出現(xiàn)有一個字符“〇”,如圖2中所示的“第二〇一醫(yī)院”和“第二一〇醫(yī)院”。經(jīng)查,“〇”這個字符的機器內(nèi)碼為“A996”,是一個特殊漢字,可以在Word中通過“插入→日期和時間”得到(如圖3)。

        筆者推測,如果去掉這個字符“〇”,就變成了“第二一醫(yī)院”,這時系統(tǒng)不就誤認(rèn)為是同一個單位了嗎?也就是說,系統(tǒng)在進行SQL比對時,是將這個“〇”字符過濾掉后進行的,所以就查到了兩個相同的單位。為了驗證這一猜測,筆者進入Access軟件,利用其自帶的SQL查詢工具,輸入“第二〇一醫(yī)院”、“第二一〇醫(yī)院”和“第二一醫(yī)院”三個取值條件進行SQL驗證,果不其然,得到的結(jié)果均相同(如圖 4)。

        圖3 插入“〇”字符

        圖4 SQL測試一

        與此同時,筆者又對與“〇”(A996)字符外形非常類似的幾個字符,如“○”(A1F0)、“O”(A3CF)、“О”(A7B0)等字符進行了深入研究,發(fā)現(xiàn)SQL語句的執(zhí)行結(jié)果均正常。這充分說明,“〇”(A996)字符是一個特殊字符,當(dāng)遇到如“〇”這種特殊字符時,SQL執(zhí)行會出現(xiàn)異常,需要我們特別加以注意。

        故障解決

        找到了問題所在,如何解決這一帶有普遍性而又極具隱蔽性的問題呢?最先想到的也是最簡單直接的辦法,就是將這個特殊字符換掉,比如,可以用阿拉伯?dāng)?shù)字“0”代替,或者用上文所述的任意一個與它外形相似的字符替代都可以。顯然,這種方案是可行的,也是有效的,但似乎還不是最完美的解決方案。正如前文所述,隨著管理項目數(shù)量不斷增加,單位數(shù)量也在不斷變化之中,管理人員極有可能再次將這個特殊字符錄入系統(tǒng)。所以,筆者認(rèn)為,若要從根本上解決這一問題,最終需要從程序端入手,將系統(tǒng)變得更為“健壯”,而不是從用戶端著手,對其使用進行限制,這樣,既能避免“故障”發(fā)生,又不會影響用戶的使用習(xí)慣。

        故障再分析

        正是基于以上考慮,筆者重新對代碼進行了分析,可以看到,矛盾的焦點主要在以下SQL語句:

        而此語句的關(guān)鍵之處在于使用了SQL的“=”關(guān)鍵字,筆者想,能不能使用其他替代的SQL語句實現(xiàn)相同的功能呢?答案是肯定的,SQL語句的“Like”關(guān)鍵字就可以完美替代。一般的,我們在實現(xiàn)模糊查詢時,會經(jīng)常使用SQL的“Like”關(guān)鍵字,當(dāng)條件值足夠具體時,其功能與“=”沒有本質(zhì)區(qū)別。

        于是,筆者又進入Access軟件,通過SQL查詢工具進行測試(如圖5)。

        結(jié)果很明顯,SQL關(guān)鍵字“Like”的執(zhí)行效果與關(guān)鍵字“=”的執(zhí)行效果完全相同,還是無法解決特殊字符帶來的困惑。筆者還是不甘心,懷疑可能是Access數(shù)據(jù)庫的兼容性問題,隨后又在SQL Server數(shù)據(jù)庫中進行求證,得到的結(jié)果仍然相同。到此時,真的是有些灰心了,因為這似乎可以下結(jié)論說,Access或者SQL Server這類數(shù)據(jù)庫對類似“〇”(A996)的特殊字符束手無策了!

        冷靜下來后,通過進一步分析突然發(fā)現(xiàn),前面我們所用的SQL查詢工具都是系統(tǒng)自帶的,而自帶的一些輔助工具往往在功能和性能上都會比較弱,所以,僅憑它們的測試結(jié)果還不能輕易下定論,還需要采用第三方SQL測試工具進行驗證,或許會有不同的結(jié)論呢。

        圖5 SQL測試二

        圖6 Access查詢分析器

        圖7 校驗結(jié)果

        順著這個思路,使用了一款名為“Access查詢分析器”的第三方SQL工具軟件進行測試。當(dāng)使用“=”關(guān)鍵字進行查詢時,結(jié)果和前面一樣,但當(dāng)用“Like”關(guān)鍵字時,得到了我們期望的結(jié)果(如圖 6)。

        故障最終解決

        通過以上分析和測試后,立即將程序代碼進行了修改。即,將代碼行:

        代碼編譯后運行,所有帶有特殊字符“〇”(A996)的單位名稱數(shù)據(jù)順利通過校驗,再無異常出現(xiàn),故障得到圓滿解決,結(jié)果如圖7所示。

        經(jīng)驗總結(jié)

        通過對這個因特殊字符引起的“程序故障”典型案例的分析,從中可以總結(jié)出以下一些經(jīng)驗,一是在程序設(shè)計中,測試環(huán)節(jié)非常重要,它就是一個出“故障”的環(huán)節(jié),絕不能因其簡單而忽視或輕視這一環(huán)節(jié);二是在故障排除過程中,不能因一時一事的失敗而氣餒,那樣只會半途而廢、功敗垂成,而應(yīng)鍥而不舍、堅持不懈,冷靜、客觀、全面地分析故障對象,運用一切技術(shù)手段,多角度、多層面不斷由表及里,才能直達(dá)病灶,取得成功;三是應(yīng)多從用戶角度出發(fā),多為用戶著想,樹立用戶至上的理念,這樣才能得到最優(yōu)解決方案。

        猜你喜歡
        關(guān)鍵字字符校驗
        尋找更強的字符映射管理器
        履職盡責(zé)求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
        華人時刊(2022年1期)2022-04-26 13:39:28
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:50
        成功避開“關(guān)鍵字”
        消失的殖民村莊和神秘字符
        爐溫均勻性校驗在鑄鍛企業(yè)的應(yīng)用
        大型電動機高阻抗差動保護穩(wěn)定校驗研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗方法
        鍋爐安全閥在線校驗不確定度評定
        国产高潮精品久久AV无码| 欧美亚洲日本国产综合在线美利坚| 无码国模国产在线观看| 国产91成人精品亚洲精品| 美腿丝袜av在线播放| 日本最新一区二区三区在线| 国产婷婷色一区二区三区在线| 亚洲欧美综合在线天堂| 亚洲AV无码乱码精品国产草莓| 亚洲精品一区二区网站| 亚洲人成影院在线无码按摩店| 一本色道av久久精品+网站| 国产精品无码久久久久下载| 美女被黑人巨大入侵的的视频| 欧美激情综合色综合啪啪五月| 国产精品人妻一区夜夜爱| 成人国产精品高清在线观看| 日本视频一区二区三区在线| 亚洲av一二三四区四色婷婷| 日韩精品成人一区二区三区| 日韩成人精品一区二区三区| 久久在一区二区三区视频免费观看| 久久久久亚洲av无码专区首jn| 99热视热频这里只有精品| 日本女优中文字幕有码| 欧美颜射内射中出口爆在线| a亚洲va欧美va国产综合| 超碰观看| 日本国产精品久久一线| 久久久久亚洲av无码专区首jn | 高清国产一级毛片国语| 白白色日韩免费在线观看| 又大又粗欧美黑人aaaaa片| 四虎影院在线观看| 蜜桃在线一区二区三区| 亚洲中文字幕国产视频| 天躁夜夜躁狼狠躁| 日韩av无码午夜福利电影| 91精品国产综合久久久蜜| 亚洲欧美一区二区三区在线| 成人不卡国产福利电影在线看|