新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > Web开发 > Asp教程 > 正文:asp对象化之:数据库结果集合操作类

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

新客网 XKER.COM 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 
%> 
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐