国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)庫游標位置保存及復(fù)位方法

      文檔序號:6580276閱讀:272來源:國知局

      專利名稱::數(shù)據(jù)庫游標位置保存及復(fù)位方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及數(shù)據(jù)庫游標,特別涉及數(shù)數(shù)庫游標位置保存及復(fù)位方法。
      背景技術(shù)
      :數(shù)據(jù)庫技術(shù)是先進信息技術(shù)的重要組成部分,是現(xiàn)代計算機信息系統(tǒng)和計算機應(yīng)用系統(tǒng)的基礎(chǔ)和核心。而在數(shù)據(jù)庫中,游標提供了一種對從表中檢索出的數(shù)據(jù)進行靈活操作的手段,它能實現(xiàn)從包括多條數(shù)據(jù)記錄的結(jié)果中每次提取一條記錄的機制。通常情況下,數(shù)據(jù)庫游標用于從表中檢索記錄,以實現(xiàn)用戶層對數(shù)據(jù)的獲取,但在諸如翻頁處理以及掉電位置保留等某些特定用戶應(yīng)用中,游標所在位置的數(shù)據(jù)將需要被修改和更新,于是簡單迅速地定位游標的位置成為了數(shù)據(jù)庫系統(tǒng)開發(fā)中值得研究的領(lǐng)域之一?,F(xiàn)有的大多數(shù)數(shù)據(jù)庫系統(tǒng)提供了通過記錄號進行游標定位的方法,例如在Microsoft引進的數(shù)據(jù)庫接口標準ODBC(OpenDataBaseConnectivity,開放數(shù)據(jù)庫互連)中,在SELECT查詢語句被成功執(zhí)行后,用SQLSetPos函數(shù)將游標定位到指定的記錄號所在的記錄。另外,當中斷數(shù)據(jù)庫的操作處理,例如將數(shù)據(jù)庫關(guān)閉掉后,進行其他作業(yè),而經(jīng)過一段時間后,重新返回數(shù)據(jù)庫進行操作時,常常需要通過快速準確地復(fù)位游標的位置,而無需重新進行檢索,以此提高效率?,F(xiàn)有的作法是先將當前游標所在記錄的記錄號保存下來,在下次返回時,利用該記錄號通過定位函數(shù)將游標定位到該記錄。但上述的游標位置保存及復(fù)位方法,在游標保存和下一次的游標復(fù)位期間若發(fā)生某些記錄的刪除、插入以及更新操作,則表中記錄的記錄號會相應(yīng)地發(fā)生更改,這樣就無法保證下一次根據(jù)記錄號通過定位函數(shù)復(fù)位的游標能夠準確地指向上一次所保存的記錄。
      發(fā)明內(nèi)容鑒于上述根據(jù)記錄號保存及復(fù)位游標位置的現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的在于提供一種數(shù)據(jù)庫游標位置保存及復(fù)位的方法,即使在保存與復(fù)位之間的期間發(fā)生數(shù)據(jù)庫記錄的刪除、插入或更新,也能夠?qū)⒂螛藴蚀_地復(fù)位到上一次保存時的位置,即使游標重新指向上一次保存游標位置時游標所指向的記錄。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的數(shù)據(jù)庫游標位置保存及復(fù)位方法,包括第一步驟,用戶層向數(shù)據(jù)庫層請求保存當前游標位置,第二步驟,所述數(shù)據(jù)庫層將當前游標位置的游標位置信息存儲到由所述用戶層分配的空間中;第三步驟,所述用戶層對存儲有所述游標位置信息的所述空間進行保存及維護;第四步驟,所述用戶層向所述數(shù)據(jù)庫層請求復(fù)位所述游標位置,并向所述數(shù)據(jù)庫層輸入所述游標位置信息;第五步驟,所述數(shù)據(jù)庫層根據(jù)所述游標位置信息復(fù)位游標位置,并將復(fù)位的游標位置所在的記錄通知給所述用戶層。而且,在上述的數(shù)據(jù)庫游標位置保存及復(fù)位方法中,所述游標位置信息包含所述游標位置信息的長度、迭代器類型、游標移動方向以及包含tableid及relatedkey的關(guān)鍵值。而且,在上述的數(shù)據(jù)庫游標位置保存及復(fù)位方法中,所述第三步驟包括第六步驟,所述數(shù)據(jù)庫層計算出存儲所述游標位置信息所需要的空間大小,并通知給所述用戶層;第七步驟,所述用戶層根據(jù)分配所述大小的空間,并將所述空間的地址通知給所述數(shù)據(jù)庫層。而且,在上述的數(shù)據(jù)庫游標位置保存及復(fù)位方法中,在第六步驟和第七步驟之間還包括所述用戶層判斷所述空間大小是否小于預(yù)定值,如果小于所述預(yù)定值,則決定分配所述空間,否則,決定放棄分配所述空間。而且,在上述的數(shù)據(jù)庫游標位置保存及復(fù)位方法中,所述第五步包括根據(jù)所述游標位置信息,檢查所述迭代器類型是否匹配;如果所述迭代器類型匹配,則查找與所述關(guān)鍵值匹配的記錄;如果查找到與所述關(guān)鍵值匹配的記錄,則將該記錄返回給所述用戶層;如果查找不到與所述關(guān)鍵值匹配的記錄,則將沿所述游標移動方向距離所述關(guān)鍵值最近的記錄返回給所述用戶層。根據(jù)本發(fā)明的數(shù)據(jù)庫游標位置保存及復(fù)位方法,因為利用能夠準確表達游標所在位置的信息,即游標位置信息,對游標進行保存及復(fù)位,所以即使在游標位置信息的維護期間發(fā)生記錄的刪除、插入或更新,當用戶層需要復(fù)位游標位置時,數(shù)據(jù)層也可以根據(jù)用戶層保存的游標位置信息,準確地將游標定位到關(guān)鍵值所對應(yīng)的記錄或沿游標移動方向距離關(guān)鍵值最近的記錄。通過下面結(jié)合附圖進行的描述,本發(fā)明的上述和其他目的和特點將會變得更加清楚,其中圖1是表示根據(jù)本發(fā)明實施例的數(shù)據(jù)庫游標位置保存及復(fù)位方法的時序圖;圖2是具體本發(fā)明實施例的數(shù)據(jù)庫游標位置復(fù)位方法的流程圖;圖3是表示本發(fā)明的游標位置保存及復(fù)位方法的應(yīng)用例的B樹圖;圖4是表示本發(fā)明的游標位置保存及復(fù)位方法的應(yīng)用例的B樹圖;圖5是表示本發(fā)明的游標位置保存及復(fù)位方法的應(yīng)用例的B樹圖。主要符號說明S1010-S1090及S2010-S204為步驟。具體實施例方式以下,參照附圖來詳細說明本發(fā)明的實施例。(實施例)圖1是表示根據(jù)本發(fā)明實施例的數(shù)據(jù)庫游標位置保存及復(fù)位方法的時序圖。如圖1中所示,本發(fā)明的數(shù)據(jù)庫游標位置的保存及復(fù)位是通過用戶層及數(shù)據(jù)庫層的交互過程來實現(xiàn)的。具體如下。首先,在步驟S1010,用戶層向數(shù)據(jù)庫層請求保存當前游標位置。接著,在步驟S1020,由數(shù)據(jù)庫層計算出存儲當前游標位置所需要的空間大小,并通知用戶層。接著,在步驟S1030,用戶層根據(jù)數(shù)據(jù)庫層所通知的空間大小,分配存儲當前游標位置信息所需要的空間。接著,在步驟S1040,用戶層再次向數(shù)據(jù)庫發(fā)出請求,要求保存當前游標位置信息,并將分配好的空間的地址通知給數(shù)據(jù)庫層。接著,在步驟S1050,數(shù)據(jù)庫層將當前游標位置信息存儲到用戶層分配的空間中。這里,游標位置信息包含游標位置信息的長度、迭代器類型、游標的移動方向以及關(guān)鍵值等,而且關(guān)鍵值比如可以是tableid及relatedkey等,能夠準確表達游標位置。接著,在步驟S1060,由用戶層對存儲有當前游標位置信息的空間進行保存、維護。例如,用戶層可以將該游標位置信息保存在內(nèi)存中或外部存儲介質(zhì)中。至此為數(shù)據(jù)庫游標位置的保存過程。當保存了數(shù)據(jù)庫游標位置的用戶需要重新復(fù)位該游標位置時,則執(zhí)行以下S1070至S1090的步驟。首先,在步驟S1070,用戶層向數(shù)據(jù)庫請求復(fù)位游標位置,并向數(shù)據(jù)庫層輸入在步驟S1060保存、維護過的游標位置信息。接著,在步驟S1080,數(shù)據(jù)庫層根據(jù)該游標位置信息以及當前記錄情況復(fù)位游標位置,并將復(fù)位的游標位置所在的記錄通知給用戶層。接著,在步驟S1090,用戶層獲得復(fù)位的游標位置所在的記錄。圖2是具體說明步驟S1080中的處理的流程圖。如圖2所示,數(shù)據(jù)庫層首先根據(jù)在步驟S1070中從用戶層輸入的游標位置信息,檢查迭代器類型是否匹配(步驟S2010),如果迭代器類型匹配(步驟S2010:“是”),則根據(jù)關(guān)鍵值查找匹配記錄(步驟S2020),在匹配記錄不存在的情況下(步驟S2030“否”),根據(jù)游標移動方向查找距離關(guān)鍵值最近的下一條記錄(步驟S2040)。圖3、圖4及圖5是表示本發(fā)明的游標位置保存及復(fù)位方法的應(yīng)用例的B樹圖。假設(shè)如圖3所示,當游標位置停留在關(guān)鍵值13時,用戶層要求保存當前游標位置,則首先由用戶層通知數(shù)據(jù)庫層;數(shù)據(jù)庫層根據(jù)當前的迭代器類型、關(guān)鍵值以及游標移動方向等信息計算需要的存儲空間大小,通知給用戶層;用戶層完成內(nèi)存空間的分配后,將所分配的空間的地址通知給數(shù)據(jù)庫層;由數(shù)據(jù)庫層將游標位置信息存儲到用戶分配的內(nèi)存空間;接著,由用戶層維護該游標位置信息。接著,假設(shè)在游標位置信息的維護期間,數(shù)據(jù)庫層發(fā)生了記錄的刪除,且所刪除記錄即為關(guān)鍵值13的記錄。當用戶層需要復(fù)位游標位置時,用戶層將游標位置信息輸出到數(shù)據(jù)庫層;接著數(shù)據(jù)庫層根據(jù)從用戶層輸入的游標位置信息,檢查迭代器類型是否匹配;假設(shè)這里迭代器類型匹配,所以接著根據(jù)關(guān)鍵值查找對應(yīng)于關(guān)鍵值的匹配記錄;因為關(guān)鍵值13的記錄已經(jīng)被刪除,所以數(shù)據(jù)庫層找不到匹配記錄,只能根據(jù)移動方向查找距離關(guān)鍵值最近的下一條記錄。如圖4所示,如果游標位置信息中所保存的游標移動方向為向后,即之前在保存游標位置信息時,游標移動方向為向后,則數(shù)據(jù)庫層將移動游標位置到被刪除記錄對應(yīng)的關(guān)鍵值的下一個關(guān)鍵值所對應(yīng)的記錄,即關(guān)鍵值15所對應(yīng)的記錄。而如果游標位置信息中所保存的游標移動方向為向前,則數(shù)據(jù)庫層將移動游標位置到被刪除記錄對應(yīng)的關(guān)鍵值的上一個關(guān)鍵值所對應(yīng)的記錄,即關(guān)鍵值10所對應(yīng)的記錄,如圖5所示。如上所述,根據(jù)本發(fā)明,用戶層要求保存當前游標位置時,用戶層從數(shù)據(jù)庫層得到5當前的迭代器類型、關(guān)鍵值以及游標移動方向等游標位置信息進行保存及維護,用于下一次復(fù)位游標位置。鑒于數(shù)據(jù)庫系統(tǒng)能夠通過游標位置信息準確表達游標位置,因此本發(fā)明突破了傳統(tǒng)數(shù)據(jù)庫根據(jù)記錄號定位游標位置的方法,即使在維護期間,發(fā)生記錄的刪除、插入或更新,當用戶層需要復(fù)位游標位置時,數(shù)據(jù)層也能夠根據(jù)用戶層保存的游標位置信息,準確地將游標定位到關(guān)鍵值所對應(yīng)的記錄或沿游標移動方向距離關(guān)鍵值最近的記錄。另外,本發(fā)明還可以對上述實施例進行變形而實施,例如,在步驟S1030,用戶層可以根據(jù)數(shù)據(jù)庫層所通知的保存游標位置信息所需空間的大小,并根據(jù)實際情況考慮是否分配空間,只有當決定分配空間時,才真正進行空間分配及后續(xù)S1040以后的步驟。比如只有當所需空間大小不超過預(yù)定值時,才進行空間分配。通過這樣的操作,能夠增加處理的靈活性。產(chǎn)業(yè)上的可利用性本發(fā)明的數(shù)據(jù)庫游標的保存及定位方法適用于各種數(shù)據(jù)庫的操作。權(quán)利要求1.數(shù)據(jù)庫游標位置保存及復(fù)位方法,包括第一步驟,用戶層向數(shù)據(jù)庫層請求保存當前游標位置,第二步驟,所述數(shù)據(jù)庫層將當前游標位置的游標位置信息存儲到由所述用戶層分配的空間中;第三步驟,所述用戶層對存儲有所述游標位置信息的所述空間進行保存及維護;第四步驟,所述用戶層向所述數(shù)據(jù)庫層請求復(fù)位所述游標位置,并向所述數(shù)據(jù)庫層輸入所述游標位置信息;第五步驟,所述數(shù)據(jù)庫層根據(jù)所述游標位置信息復(fù)位游標位置,并將復(fù)位的游標位置所在的記錄通知給所述用戶層。2.如權(quán)利要求1所述的數(shù)據(jù)庫游標位置保存及復(fù)位方法,其中,所述游標位置信息包含所述游標位置信息的長度、迭代器類型、游標移動方向以及包含tableid及relatedkey的關(guān)鍵值。3.如權(quán)利要求1所述的數(shù)據(jù)庫游標位置保存及復(fù)位方法,其中,所述第三步驟包括第六步驟,所述數(shù)據(jù)庫層計算出存儲所述游標位置信息所需要的空間大小,并通知給所述用戶層;第七步驟,所述用戶層根據(jù)分配所述大小的空間,并將所述空間的地址通知給所述數(shù)據(jù)庫層。4.如權(quán)利要求3所述的數(shù)據(jù)庫游標位置保存及復(fù)位方法,其中,在第六步驟和第七步驟之間還包括所述用戶層判斷所述空間大小是否小于預(yù)定值,如果小于所述預(yù)定值,則決定分配所述空間,否則,決定放棄分配所述空間。5.如權(quán)利要求1所述的數(shù)據(jù)庫游標位置保存及復(fù)位方法,其中,所述第五步包括根據(jù)所述游標位置信息,檢查所述迭代器類型是否匹配;如果所述迭代器類型匹配,則查找與所述關(guān)鍵值匹配的記錄;如果查找到與所述關(guān)鍵值匹配的記錄,則將該記錄返回給所述用戶層;如果查找不到與所述關(guān)鍵值匹配的記錄,則將沿所述游標移動方向距離所述關(guān)鍵值最近的記錄返回給所述用戶層。全文摘要公開了一種數(shù)據(jù)庫游標位置保存及復(fù)位方法。該方法包括用戶層向數(shù)據(jù)庫層請求保存當前游標位置(步驟S1010),數(shù)據(jù)庫層將當前游標位置的游標位置信息存儲到由用戶層分配的空間中(步驟S1050),用戶層對存儲有所述游標位置信息的空間進行維護(步驟S1060),用戶層向數(shù)據(jù)庫層請求復(fù)位游標位置,并向數(shù)據(jù)庫層輸入游標位置信息(步驟S1070),數(shù)據(jù)庫層根據(jù)游標位置信息復(fù)位游標位置,并將復(fù)位的游標位置所在的記錄通知給所述用戶層(步驟S1080)。文檔編號G06F17/30GK102004728SQ20091017157公開日2011年4月6日申請日期2009年9月1日優(yōu)先權(quán)日2009年9月1日發(fā)明者李起龍,洪錫琎,譚姝申請人:三星電子(中國)研發(fā)中心,三星電子株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1