asp對像化之:數據庫結果集合操作類

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 技術教程 (http://www.webasp.net/article/)
--- asp對像化之:數據庫結果集合操作類 (http://www.webasp.net/article/18/17896.htm)
-- 作者:麵條
-- 發佈日期: 2005-04-24
<% 

』************************************************************* 
』轉發時請保留此聲明信息,這段聲明不並會影響你的速度! 
』************************************************************* 


』************************************************************* 
』@author:                        麵條 
』@realname:                        徐仁祿 
』@email:                        xurenlu@sohu.com 
』@QQ:                            55547082 
』@Homepage:                        http://www.ksdn.net 
』@版權申明: 
』            非盈利性質團體或者個人可以免費使用. 
』************************************************************* 


』************************************************************* 
』************************************************************* 
』************************************************************* 
class Rsclass 
    private iRs 
    private isql 
    private iconn 
    private closeConn 
    private openConn 

』************************************************************* 
』        進行初始化,建立iconn和irs對像. 
』************************************************************* 
    Private Sub Class_initialize()  
        set iconn=server.createobject("adodb.connection") 
        set irs=server.createobject("adodb.recordset") 
    End Sub  
     
    public sub connect(connstr) 
        err.clear 
        on error resume next 
        iconn.open connstr 
        if err.number<>0 then response.write "數據聯接出錯了." 
    end sub 
     
    public property let conn(connection) 
        set iconn=connection        』通過外界傳入一個數據庫聯接. 
    end property 
     
     
     
    Private Sub Class_Terminate()  
        on error resume next 
        irs.close 
        iconn.close 
        set iconn=nothing 
        set irs=nothing 
    End Sub  

』************************************************************* 
』        內容:實現統計功能,一般用select count(*) from table where id>54類似的sql語句. 
』************************************************************* 
    public function getCountBysql(sql) 
        on error resume next 
        dim count 
        count=iconn.execute(sql)(0) 
        getCountBysql=count 
        iconn.close 
    end function  
     
     
     

』************************************************************* 
    public function deleteBySql(sql) 
        err.clear 
        on error resume next 
        iconn.execute(sql) 
        if err.errcode<>0 then 
            deleteBysql=false 
            exit function 
        end if 
        deleteBySql=true 
    end function  


』************************************************************* 
    public function deleteByid(table,column,value) 
        err.clear 
        on error resume next 
        iconn.execute("delete from "&table & " where "&column & "=』"&value & "』") 
        if err.errcode<>0 then 
            deleteByid=false 
            exit function 
        end if 
        deleteByid=true 
    end function  


』************************************************************* 
』        返回一個詞典,用這個詞典來裝載要添加的對象. 
    public function getdict() 
        set getdict=server.createobject("scripting.dictionary")     
    end function  

』************************************************************* 
』        增加新的記錄. 
    public function add(obj,table) 
        dim item 
        isql="select * from " & table 
        response.write isql 
        iRs.open isql,iconn,1,3 
        irs.addnew 
        for each item in obj 
            irs(item)=obj(item) 
        next  
        irs.update 
        irs.close 
    end function  
     
     

』************************************************************* 
』        得到查詢得返回值 
    public function getquery(sql) 
        iRs.open sql,iconn,1,1  
        if irs.eof and irs.bof then 
            getquery=null 
        else 
            set getquery=irs 
        end if 
    end function  

    public function getqueryPage(sql,pageNum,PageSize) 
        on error resume next 
        iRs.pageSize=pageSize 
        iRs.open sql,iconn,1,1  
        iRs.AbsolutePage=pageNum 
        if irs.eof and irs.bof then 
            getqueryPage=null 
        else 
            set getqueryPage=irs 
        end if 
         
        response.write "<span style=』color:green;』>"& err.number & err.description &"</span>" 
    end function  
     
     
』************************************************************* 
』        讓結果集移動到第n頁. 
    public function setPage(pageNum,PageSize) 
        on error resume next 
        iRs.moveFirst 
        iRs.move((pageNum-1)*PageSize) 
    end function  


end class 



』************************************************************* 
用法示例: 
dim cstr 
dim path 
path=server.mappath("2data.mdb") 
cstr= "DBQ="+path+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" 
dim rec 
set rec=new RsClass 
rec.connect(cstr) 


response.write "************************" 
set tt=rec.getqueryPage("select top 8 * from help",2,4) 
response.write tt.recordcount & "<br>" 
do while not tt.eof  
    response.write tt(0) &"<br>" 
    tt.movenext 
loop 
tt.movefirst 
tt.close 
%> 

webasp.net