asp对象化之:数据库结果集合操作类

发表于:2007-06-30来源:作者:点击数: 标签:
% ’************************************************************* ’转发时请保留此声明信息,这段声明不并会影响你的速度! ’************************************************************* ’*******************************************************
<% 

’************************************************************* 
’转发时请保留此声明信息,这段声明不并会影响你的速度! 
’************************************************************* 


’************************************************************* 
’@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 Aclearcase/" target="_blank" >ccess 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 
%> 

原文转自:http://www.ltesting.net