日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解決ASP Recordset 分頁出現(xiàn)負(fù)數(shù)_ASP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:ASP實例教程:FileSystemObject對象
FileSystemObject 對象 指定的文件存在嗎? 本例演示如何首先創(chuàng)建FileSystemObject對象,然后使用FileExists方法來探測某文件是否存在。 本示例代碼如下: 以下為引用的內(nèi)容: html body % Set fs=Server.CreateObject(Scripting.FileSystemObject) If (fs.F

對于Recordset分頁時出現(xiàn)負(fù)數(shù)的現(xiàn)象,相信會有很多人遇到過這個問題,有時百度、GOOGLE也不得其解,現(xiàn)在由我來總結(jié)一下。

出現(xiàn)負(fù)數(shù),主要和游標(biāo)類型有關(guān)系。(為舉例方便,假設(shè)已經(jīng)有一個conn.asp鏈接數(shù)據(jù)庫的文件并且已經(jīng)include)現(xiàn)在舉一個例子,代碼如下:

'=======================================================
sql="Select * from 表名 where 條件 order by ID desc"     '這里的order by 條件可根據(jù)自己需要改寫
       Set rs=conn.execute(sql)       '===注意一下這一句===
        rs.pagesize=10    '===設(shè)置每頁的記錄數(shù)為10===
         page=request.querystring("page")
        If page="" Then page=1
        If Not IsNumeric(page) Then page=1
        page=clng(page)
          If page<1 Then page=1
          If page>rs.pagecount Then page=Vrs.pagecount
           rs.absolutepage=page
          dim c
          c=1
          Do while Not rs.eof And c<=rs.pagecount
              '輸出內(nèi)容
          c=c+1
        rs.movenext
          Loop
          '做頁面的鏈接
'=======================================================

         根據(jù)上面的代碼,RecordSet對象直接由代碼:Set rs=conn.execute(sql),使用該句后,RecordSet對象默認(rèn)的游標(biāo)為0,即游標(biāo)只能向前滾動,鎖定類型為0,表示只讀鎖定,不能更新RecordSet對象。

          所以,對于分頁時如果出現(xiàn)負(fù)數(shù),則檢查RecordSet對象是否寫為以上形式,要寫成:
Set rs=Server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
以上表示游標(biāo)為1,可向前向后移動;鎖定類型為3,可批量更新多條記錄。

           根據(jù)上述方法做基本上不再會有問題,但為保險,根據(jù)RecordSet分頁的原理是根據(jù)讀取所有記錄后獲取記錄數(shù),所以先讓游標(biāo)滾動一圈,在級rs.pagesize=10 后面加上以下兩句:
rs.movelast   '游標(biāo)移至最后
rs.movefirst '游標(biāo)移到最前

            已知RecordSet的分頁原理為先把整個數(shù)據(jù)庫里面的記錄讀出后才能獲取rs.Recordcount(記錄總數(shù))的值。這種分頁方法比較簡單,但是有一個致命的壞處,當(dāng)數(shù)據(jù)庫里記錄數(shù)有很多條時,根據(jù)其分頁原理,這樣就會占用很高的系統(tǒng)資源,非常浪費,建議在實際編程中不使用該方法�,F(xiàn)在給大家一個思路,可以在SQL查詢語句里做分頁處理,每次讀取固定的記錄數(shù),具體如下:

            從數(shù)據(jù)庫表中的第M條記錄開始取N條記錄,利用Top關(guān)鍵字:注意如果Select語句中既有top,又有order by,則是從排序好的結(jié)果集中選擇:

SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名 Order by ID desc) t1 ) t2
Order by ID desc

            用以上SQL語句進(jìn)行分頁,錯誤會比較少,最重要得是效率比較高。

分享:ASP實例教程:Form集合
Form集合 注意因為本ASP實例教程是關(guān)于表單的代碼,為了省事,所以我不截圖了!大家自行測試實例執(zhí)行結(jié)果! 一個Form集合的簡單應(yīng)用 本例演示Form集合如何從表單取回值。此表單使用POST方法,這意味著發(fā)送的信息對用戶來說是不可見的,并且對對所發(fā)送信息的

來源:模板無憂//所屬分類:ASP教程/更新時間:2009-07-07
相關(guān)ASP教程