十萬條Access數據表分頁的兩個解決方法

這篇論壇文章(賽迪網技術社區)主要介紹了Acess數據表分頁的兩個具體的解決方法,詳細內容請參考下文。

後台數據庫用是Access,客戶用了一年後說打開界面非常慢,查看了數據庫後發現數據表中的記錄已有五萬多條,自己試過將記錄複制到10 萬條,打開界面非常慢,翻頁也是同樣的問題,我采用的方式是每頁裝入20條記錄,循環寫在表格中顯示出來,再定四個翻頁鍵用來查看數據,但問題是雖然是 每次裝入頁面的記錄只有二十條,但每次要打開記錄集時還是必須一次性裝入所有的記錄,所以才慢。

解決方法一:

1.設置一個自增長字段.並且該字段爲INDEX.

2.由于是 ACCESS ,所以,只能是前台分頁.自增長字段目的,就是爲了實現分頁功能.

1> 記錄用戶前頁的最後一個 自增值 ,例如 M .

2> 下一頁,取下一頁的開始值.M+1 ,結束值: M+1+1.5*PAGESIZE (注:由于數據庫會有增刪操作,故應該取頁大小應該有一個系數,你可以根據情況自定一個1大的系數.

3> 前台循環取 RS 的前 PAGESIZE 條, 寫到一個 新的RS中,並返回.

注:新的RS是一個無連接的RS .

解決方法二:

十萬條記錄不是 Access 數據庫的極限。何況你的方法不是真正意義上的分頁(應當利用 PageSize 和 AbsolutePage 屬性)。

VBScript code

Set rs = New ADODB.Recordsetrs.CursorLocation = adUseClientrs.PageSize = 20rs.Open "Select * From 客戶", iConc, adOpenKeyset, adLockOptimisticlngPages = rs.PageCountlngCurrentPage = 1

此時打開的記錄集只有 20 條記錄。

翻頁時:

VBScript code

If lngCurrentPage < lngPages Then lngCurrentPage = lngCurrentPage + 1 rs.AbsolutePage = lngCurrentPageEnd If

 
防止ACCESS數據庫被下載的一個通用解決方法:
防止ACCESS數據庫被下載的一個通用解決方法:在IIS裏面Web站點的屬性,主目錄=》配置=》應用程序影射=》添加隨便做一個0字節的dll用來影射mdb文件。明白了吧?dll文件不是可用的ISAPI dll,IIS肯定報錯啊。。那麽無論...查看完整版>>防止ACCESS數據庫被下載的一個通用解決方法:
 
防止ACCESS數據庫被下載的一個通用解決方法:
防止ACCESS數據庫被下載的一個通用解決方法:在IIS裏面Web站點的屬性,主目錄=》配置=》應用程序影射=》添加隨便做一個0字節的dll用來影射mdb文件。明白了吧?dll文件不是可用的ISAPI dll,IIS肯定報錯啊。。那麽無論...查看完整版>>防止ACCESS數據庫被下載的一個通用解決方法:
 
防止ACCESS數據庫被下載的一個通用解決方法:
防止ACCESS數據庫被下載的一個通用解決方法:在IIS裏面Web站點的屬性,主目錄=》配置=》應用程序影射=》添加隨便做一個0字節的dll用來影射mdb文件。明白了吧?dll文件不是可用的ISAPI dll,IIS肯定報錯啊。。那麽無論...查看完整版>>防止ACCESS數據庫被下載的一個通用解決方法:
 
兩個數據分頁的存儲過程
1. 按某個特定表查詢的存儲過程:CREATE PROCEDURE GetPagingData_bigfun@tblName varchar(255), -- 表名@strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', -- 排序的字段名@PageSize i...查看完整版>>兩個數據分頁的存儲過程
 
兩個不同數據庫表的分頁顯示解決方案
  程序實現功能:兩個數據表的數據分頁顯示  最近我遇到一個比較少見的需求,不知大家是否也有遇到過,說出來與大家分享.  客戶需求:兩部分數據,分別來自不同位置的兩個數據庫中的兩個表,定義爲數據庫DB1和DB2,表...查看完整版>>兩個不同數據庫表的分頁顯示解決方案