專利名稱:數(shù)據(jù)更新系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)更新系統(tǒng)及方法。
背景技術(shù):
在辦公自動化高速發(fā)展的今天,數(shù)據(jù)庫系統(tǒng)可以說是被應(yīng)用最多的一種軟件了。我們在 工作與生活中所應(yīng)用的系統(tǒng)中幾乎90%以上的系統(tǒng)都可以被稱之為數(shù)據(jù)庫系統(tǒng)。這些系統(tǒng)不 管是Web類型的還是桌面應(yīng)用程序,它們都有個共同的特點涉及數(shù)據(jù)庫技術(shù)。采用程序?qū)?數(shù)據(jù)庫進(jìn)行增刪讀改等操作,來達(dá)到維護(hù)和保存信息數(shù)據(jù)的功能。其基本流程為系統(tǒng)接受 用戶操作;系統(tǒng)連接數(shù)據(jù)庫;數(shù)據(jù)庫進(jìn)行增刪讀改等操作;及返回結(jié)果至系統(tǒng)界面。這種典 型而傳統(tǒng)的流程在數(shù)據(jù)庫系統(tǒng)的發(fā)展過程中一直保存下來,并處于主導(dǎo)地位。
隨著信息咨詢高速發(fā)展,系統(tǒng)對數(shù)據(jù)的時效性要求越來越高,用戶要求應(yīng)用系統(tǒng)能反映 數(shù)據(jù)庫中最新的數(shù)據(jù)。由此在Web系統(tǒng)上,包括JSF, Ajax等一系列Web2. 0新技術(shù)應(yīng)運而生, 而在桌面應(yīng)用程序上,采取了定時器之類機制去訪問數(shù)據(jù)庫,在很大程度上滿足了這種需求 。但是,無論數(shù)據(jù)庫中的數(shù)據(jù)是否更新,都會定時地査詢數(shù)據(jù)庫,增加了數(shù)據(jù)庫的訪問次數(shù) ,如此反復(fù)的査詢數(shù)據(jù)庫,極大的增加了數(shù)據(jù)庫服務(wù)器的負(fù)載,尤其是訪問量較大的系統(tǒng), 將極大降低數(shù)據(jù)庫服務(wù)器的性能,甚至?xí)?dǎo)致服務(wù)器當(dāng)機。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種數(shù)據(jù)更新系統(tǒng),運行于計算機內(nèi),該計算機包括數(shù)據(jù)庫 、應(yīng)用系統(tǒng)以及連接該數(shù)據(jù)庫與該應(yīng)用系統(tǒng)的動態(tài)鏈接庫,該數(shù)據(jù)庫包括數(shù)據(jù)表及存儲過程 ,所述數(shù)據(jù)表包括觸發(fā)器,所述計算機還提供一個所述應(yīng)用系統(tǒng)的操作界面,所述計算機還 包括執(zhí)行模塊,用于根據(jù)用戶要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件;觸發(fā)模 塊,用于根據(jù)所產(chǎn)生的更新事件觸發(fā)該數(shù)據(jù)所存在的數(shù)據(jù)表的觸發(fā)器;所述執(zhí)行模塊,還用 于控制所觸發(fā)的觸發(fā)器執(zhí)行所述更新事件,還用于執(zhí)行所述存儲過程,并將被更新的數(shù)據(jù)信 息傳遞給所述存儲過程,控制該存儲過程調(diào)用所述動態(tài)鏈接庫,并將所述被更新的數(shù)據(jù)信息 傳遞給該動態(tài)鏈接庫,及控制該動態(tài)鏈接庫通知所述應(yīng)用系統(tǒng)進(jìn)行數(shù)據(jù)更新;及判斷模塊, 用于判斷所述被更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上,若沒有顯示于所述操 作界面上,則更新該操作界面。
此外,還有必要提供一種數(shù)據(jù)更新方法,該方法包括如下步驟根據(jù)用戶要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件;根據(jù)所產(chǎn)生的更新事件觸發(fā)該數(shù)據(jù)所存在的數(shù)據(jù)表的 觸發(fā)器;控制所觸發(fā)的觸發(fā)器執(zhí)行所述更新事件;執(zhí)行該數(shù)據(jù)庫中的存儲過程,并將被更新 的數(shù)據(jù)信息傳遞給所述存儲過程;該存儲過程調(diào)用用于連接數(shù)據(jù)庫和應(yīng)用系統(tǒng)的動態(tài)鏈接庫 ,并將所述被更新的數(shù)據(jù)信息傳遞給該動態(tài)鏈接庫;該動態(tài)鏈接庫通知所述應(yīng)用系統(tǒng)進(jìn)行數(shù) 據(jù)更新;判斷所述被更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上;及若沒有顯示于 所述操作界面上,則更新該操作界面。
相較于現(xiàn)有技術(shù),所述數(shù)據(jù)更新系統(tǒng)及方法,只有當(dāng)數(shù)據(jù)庫的數(shù)據(jù)更新時,才去査詢數(shù) 據(jù)庫,通過動態(tài)鏈接庫去通知應(yīng)用系統(tǒng)更新操作界面的數(shù)據(jù),避免了傳統(tǒng)的頻繁査詢數(shù)據(jù)庫 ,査看該數(shù)據(jù)庫是否有更新,杜絕了無效多余的數(shù)據(jù)庫訪問,提高了應(yīng)用系統(tǒng)運行的穩(wěn)定性
圖l是本發(fā)明數(shù)據(jù)更新系統(tǒng)較佳實施例的硬件架構(gòu)圖。 圖2是圖1中計算機1的功能模塊圖。 圖3是本發(fā)明數(shù)據(jù)更新方法較佳實施例的作業(yè)流程圖。
具體實施例方式
如圖1所示,是本發(fā)明數(shù)據(jù)更新系統(tǒng)較佳實施例的硬件架構(gòu)圖。該系統(tǒng)包括計算機l,該 計算機1包括應(yīng)用系統(tǒng)2,數(shù)據(jù)庫3以及動態(tài)鏈接庫4。該應(yīng)用系統(tǒng)2可以為圖書管理系統(tǒng)等, 所述數(shù)據(jù)庫3可以為SQL Sever數(shù)據(jù)庫。所述應(yīng)用系統(tǒng)2與數(shù)據(jù)庫3通過動態(tài)鏈接庫4進(jìn)行通信 ,該動態(tài)鏈接庫4的存儲路徑為Windows的System32的目錄,或者為該數(shù)據(jù)庫3的執(zhí)行目錄。 所述計算機1用于根據(jù)應(yīng)用系統(tǒng)2的請求査詢數(shù)據(jù)庫3,也可用于只有當(dāng)數(shù)據(jù)庫3中的數(shù)據(jù)進(jìn)行 更新時,才進(jìn)行査詢數(shù)據(jù)庫3,記錄下所更新的數(shù)據(jù)信息,并通過所述動態(tài)鏈接庫4通知所述 應(yīng)用系統(tǒng)2的數(shù)據(jù)進(jìn)行相應(yīng)的更新。所述數(shù)據(jù)庫3中包括有多個數(shù)據(jù)表5,每個數(shù)據(jù)表5中包括 至少一個觸發(fā)器6,該觸發(fā)器6由所述數(shù)據(jù)表5中需要更新的數(shù)據(jù)產(chǎn)生的更新事件進(jìn)行觸發(fā), 該更新事件包括但不限于更新,增加或者刪除所述數(shù)據(jù)表5內(nèi)數(shù)據(jù)等,該觸發(fā)器6被觸發(fā)后執(zhí) 行所述更新事件。所述數(shù)據(jù)庫3還包括存儲過程7,該存儲過程7用于調(diào)用所述動態(tài)鏈接庫4。 該計算機1還提供一個所述應(yīng)用系統(tǒng)2的操作界面,用于顯示所述數(shù)據(jù)庫3的數(shù)據(jù)査詢及修改 情況,還用于顯示所有用戶所査詢過的數(shù)據(jù)表5。
如圖2所示,是圖l中計算機l的功能模塊圖。該系統(tǒng)包括初始化模塊IO、査詢模塊12 、執(zhí)行模塊14、觸發(fā)模塊16、記錄模塊18及判斷模塊20。
初始化模塊10用于檢測數(shù)據(jù)庫3中的觸發(fā)器6及存儲過程7是否存在,并讀取和加載動態(tài)鏈接庫4,顯示所述應(yīng)用系統(tǒng)2的操作界面。
査詢模塊12用于接收所述應(yīng)用系統(tǒng)2發(fā)出査詢數(shù)據(jù)庫3的指令,還用于對所述數(shù)據(jù)庫3進(jìn) 行査詢操作,并返回所述査詢的結(jié)果給所述應(yīng)用系統(tǒng)2 。
執(zhí)行模塊14用于根據(jù)用戶要求對所述數(shù)據(jù)庫3的需要更新的數(shù)據(jù)產(chǎn)生更新事件。所述更 新事件包括對該數(shù)據(jù)庫3中數(shù)據(jù)的新增、修改及刪除等事件。
觸發(fā)模塊16用于當(dāng)所述數(shù)據(jù)庫3中需要更新的數(shù)據(jù)的更新事件產(chǎn)生后,觸發(fā)該數(shù)據(jù)所存 在的數(shù)據(jù)表5的觸發(fā)器6。
所述執(zhí)行模塊14還用于控制所觸發(fā)的觸發(fā)器6執(zhí)行該更新事件。
記錄模塊18用于記錄所述被更新的數(shù)據(jù)信息。該更新的數(shù)據(jù)信息包括所述數(shù)據(jù)庫3中 被更新的數(shù)據(jù)的地址以及所述數(shù)據(jù)庫3的數(shù)據(jù)的更新方式等。
所述執(zhí)行模塊14還用于執(zhí)行所述存儲過程7,并將所述更新的數(shù)據(jù)信息傳遞給所述存儲 過程7,該執(zhí)行模塊14還用于控制該存儲過程7調(diào)用所述動態(tài)鏈接庫4,并將所述更新的數(shù)據(jù) 信息傳遞給該動態(tài)鏈接庫4。
所述執(zhí)行模塊14還用于控制該動態(tài)鏈接庫4通知所述應(yīng)用系統(tǒng)2進(jìn)行數(shù)據(jù)更新。
判斷模塊20用于判斷所述更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上。若所述 操作界面上沒有顯示所述更新的數(shù)據(jù)所在的數(shù)據(jù)表,則所述執(zhí)行模塊14通知所述應(yīng)用系統(tǒng)2 對該操作界面進(jìn)行更新,增加所述更新的數(shù)據(jù)所在的數(shù)據(jù)表。
如圖3所示,是本發(fā)明數(shù)據(jù)更新方法較佳實施例的作業(yè)流程圖。
步驟S30,初始化模塊10檢測數(shù)據(jù)庫3中的觸發(fā)器6及存儲過程7是否存在,并讀取和加載 動態(tài)鏈接庫4,顯示所述應(yīng)用系統(tǒng)2的操作界面。
步驟S32,査詢模塊12接收所述應(yīng)用系統(tǒng)2發(fā)出査詢數(shù)據(jù)庫3的指令,還用于對所述數(shù)據(jù) 庫3進(jìn)行査詢操作,并返回所述査詢的結(jié)果給所述應(yīng)用系統(tǒng)2 。
步驟S34,根據(jù)用戶要求對所述數(shù)據(jù)庫3的需要更新的數(shù)據(jù)產(chǎn)生更新事件。所述更新事件 包括對該數(shù)據(jù)庫3中數(shù)據(jù)的新增、修改及刪除等事件。
步驟S36,當(dāng)所述數(shù)據(jù)庫3中需要更新的數(shù)據(jù)的更新事件產(chǎn)生后,觸發(fā)模塊16觸發(fā)該數(shù)據(jù) 所存在的數(shù)據(jù)表5的觸發(fā)器6。
步驟S38,所述執(zhí)行模塊14控制所觸發(fā)的觸發(fā)器6執(zhí)行該更新事件。
步驟S40,記錄模塊18記錄所述被更新的數(shù)據(jù)信息。該更新的數(shù)據(jù)信息包括所述數(shù)據(jù) 庫3中被更新的數(shù)據(jù)的地址以及所述數(shù)據(jù)庫3的數(shù)據(jù)的更新方式等。
步驟S42,所述執(zhí)行模塊14執(zhí)行所述存儲過程7,并將所述更新的數(shù)據(jù)信息傳遞給所述存
6儲過程7。
步驟S44,該執(zhí)行模塊14控制該存儲過程7調(diào)用所述動態(tài)鏈接庫4,并將所述更新的數(shù)據(jù) 信息傳遞給該動態(tài)鏈接庫4。
步驟S46,所述執(zhí)行模塊14控制該動態(tài)鏈接庫4通知所述應(yīng)用系統(tǒng)2進(jìn)行數(shù)據(jù)更新。
步驟S48,判斷模塊20用于判斷所述更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面 上。若所述操作界面上沒有顯示所述更新的數(shù)據(jù)所在的數(shù)據(jù)表,則返回步驟S44,所述執(zhí)行 模塊14通知所述應(yīng)用系統(tǒng)2對該操作界面進(jìn)行更新,增加所述更新的數(shù)據(jù)所在的數(shù)據(jù)表。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳 實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方 案進(jìn)行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種數(shù)據(jù)更新系統(tǒng),運行于計算機內(nèi),該計算機包括數(shù)據(jù)庫、應(yīng)用系統(tǒng)以及連接該數(shù)據(jù)庫與該應(yīng)用系統(tǒng)的動態(tài)鏈接庫,該數(shù)據(jù)庫包括數(shù)據(jù)表及存儲過程,所述數(shù)據(jù)表包括觸發(fā)器,所述計算機還提供一個所述應(yīng)用系統(tǒng)的操作界面,其特征在于,所述計算機還包括執(zhí)行模塊,用于根據(jù)用戶要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件;觸發(fā)模塊,用于根據(jù)所產(chǎn)生的更新事件觸發(fā)該數(shù)據(jù)所存在的數(shù)據(jù)表的觸發(fā)器;所述執(zhí)行模塊,還用于控制所觸發(fā)的觸發(fā)器執(zhí)行所述更新事件,還用于執(zhí)行所述存儲過程,并將被更新的數(shù)據(jù)信息傳遞給所述存儲過程,控制該存儲過程調(diào)用所述動態(tài)鏈接庫,并將所述被更新的數(shù)據(jù)信息傳遞給該動態(tài)鏈接庫,及控制該動態(tài)鏈接庫通知所述應(yīng)用系統(tǒng)進(jìn)行數(shù)據(jù)更新;及判斷模塊,用于判斷所述被更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上,若沒有顯示于所述操作界面上,則更新該操作界面。
2.如權(quán)利要求l所述的數(shù)據(jù)更新系統(tǒng),其特征在于,所述被更新的數(shù) 據(jù)信息包括所述數(shù)據(jù)庫中被更新的數(shù)據(jù)的地址以及所述被更新數(shù)據(jù)的更新方式。
3.如權(quán)利要求l所述的數(shù)據(jù)更新系統(tǒng),其特征在于,所述計算機還包 括初始化模塊,用于讀取和加載動態(tài)鏈接庫,顯示所述應(yīng)用系統(tǒng)的操作界面。
4. 一種數(shù)據(jù)更新方法,其特征在于,該方法包括如下步驟 根據(jù)用戶要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件; 根據(jù)所產(chǎn)生的更新事件觸發(fā)該數(shù)據(jù)所存在的數(shù)據(jù)表的觸發(fā)器; 控制所觸發(fā)的觸發(fā)器執(zhí)行所述更新事件;執(zhí)行該數(shù)據(jù)庫中的存儲過程,并將被更新的數(shù)據(jù)信息傳遞給所述存儲過程; 該存儲過程調(diào)用用于連接數(shù)據(jù)庫和應(yīng)用系統(tǒng)的動態(tài)鏈接庫,并將所述被更新的數(shù)據(jù)信 息傳遞給該動態(tài)鏈接庫;該動態(tài)鏈接庫通知所述應(yīng)用系統(tǒng)進(jìn)行數(shù)據(jù)更新;判斷所述被更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上;及 若沒有顯示于所述操作界面上,則更新該操作界面。
5.如權(quán)利要求4所述的數(shù)據(jù)更新方法,其特征在于,所述被更新的數(shù) 據(jù)信息包括所述數(shù)據(jù)庫中被更新的數(shù)據(jù)的地址以及所述被更新數(shù)據(jù)的更新方式。
6.如權(quán)利要求4所述的數(shù)據(jù)更新方法,其特征在于,在步驟根據(jù)用戶 要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件之前還包括讀取和加載動態(tài)鏈接庫,顯 示所述應(yīng)用系統(tǒng)的操作界面。
全文摘要
一種數(shù)據(jù)更新方法,包括根據(jù)用戶要求對所述數(shù)據(jù)庫中需要更新的數(shù)據(jù)產(chǎn)生更新事件;根據(jù)所產(chǎn)生的更新事件觸發(fā)該數(shù)據(jù)所存在的數(shù)據(jù)表的觸發(fā)器;控制所觸發(fā)的觸發(fā)器執(zhí)行所述更新事件;執(zhí)行該數(shù)據(jù)庫中的存儲過程,并將被更新的數(shù)據(jù)信息傳遞給所述存儲過程;該存儲過程調(diào)用用于連接數(shù)據(jù)庫和應(yīng)用系統(tǒng)的動態(tài)鏈接庫,并將所述被更新的數(shù)據(jù)信息傳遞給該動態(tài)鏈接庫;該動態(tài)鏈接庫通知所述應(yīng)用系統(tǒng)進(jìn)行數(shù)據(jù)更新;判斷所述被更新的數(shù)據(jù)所在的數(shù)據(jù)表是否顯示于所述操作界面上;及若沒有顯示于所述操作界面上,則更新該操作界面。另外,本發(fā)明還提供一種數(shù)據(jù)更新系統(tǒng)。
文檔編號G06F17/30GK101582071SQ20081030159
公開日2009年11月18日 申請日期2008年5月16日 優(yōu)先權(quán)日2008年5月16日
發(fā)明者常小軍 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司