asp对象化之:数据库结果集合操作类
发表于:2007-06-30来源:作者:点击数:
标签:
% ’************************************************************* ’转发时请保留此声明信息,这段声明不并会影响你的速度! ’************************************************************* ’*******************************************************
<%
’*************************************************************
’转发时请保留此声明信息,这段声明不并会影响你的速度!
’*************************************************************
’*************************************************************
’@author: 面条
’@realname: 徐仁禄
’@email: xurenlu@sohu.com
’@QQ: 55547082
’@Homepage: http://www.ksdn.net
’@版权申明:
’ 非盈利性质团体或者个人可以免费使用.
’*************************************************************
’*************************************************************
’*************************************************************
’*************************************************************
class Rsclass
private iRs
private i
sql 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 ge
tdict()
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 A
clearcase/" 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