asp_数据库操作封装
来源:asp之家 发布时间:2010-04-03 21:00:00
一、conn.asp
<%
'@Language="VBSCRIPT" CODEPAGE=65001
'meta http-equiv="Content-Type" content="text/html; charset=gb2312"
' 936 utf-8
class TDB
function qry(byval sqlquery)
dim adoConn,adoRS
set adoConn=server.createobject("ADODB.connection")
adoConn.open "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath(".") & "/sys.mdb"
set adoRS=server.createobject("ADODB.RecordSet")
adoRS.open sqlquery,adoConn,1,3 'support movelast (adOpenKeySet,adLockOptimistic)
'set adoRS=adoConn.execute(sqlquery) 'don't support movelast
'
dim rtnstr
rtnstr="<?xml version='1.0' encoding='gb2312' standalone='yes' ?>" & chr(13)& chr(10)
rtnstr=rtnstr & "<rs>" & chr(13)& chr(10)
irow=0
adoRS.movefirst
do while not adoRS.Eof
rtnstr=rtnstr & " <r" & cstr(irow) & ">" & chr(13)& chr(10)
for i=0 to adoRS.Fields.Count-1
rtnstr=rtnstr & " <" & adoRS.Fields(i).name & ">" & chr(13)& chr(10)
rtnstr=rtnstr & "<![CDATA[ " & adoRS.Fields(i) & " ]]>" & chr(13)& chr(10)
rtnstr=rtnstr & " </" & adoRS.Fields(i).name & ">" & chr(13)& chr(10)
next
rtnstr=rtnstr & " </r" & cstr(irow) & ">" & chr(13)& chr(10)
irow=irow+1
adoRS.movenext
loop
rtnstr=rtnstr & "</rs>"
'
adoRS.Close
adoConn.Close
set adoRS=nothing
set adoConn=nothing
qry=rtnstr
end function
function qrybypage_xml(byval sqlquery,byval ipage,byval ipagesize)
dim adoConn,adoRS,iCounts,iPagecounts,iStartPos,iEndPos
set adoConn=server.createobject("ADODB.connection")
adoConn.open "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath(".") & "/sys.mdb"
set adoRS=server.createobject("ADODB.RecordSet")
adoRS.open sqlquery,adoConn,1,3 'support movelast (adOpenKeySet,adLockOptimistic)
'check cur page
if ipage<=0 then ipage=1
adoRS.movelast
iCounts=adoRS.RecordCount
iPagecounts = (iCounts - 1) \ ipagesize + 1 'page counts, good job! vb all div=\ not /
if ipage>iPagecounts then ipage=iPagecounts
'get start pos,end pos
iStartPos = (ipage - 1) * ipagesize
iEndPos = iStartPos + ipagesize-1
if (iEndPos > iCounts-1) then iEndPos = iCounts-1 'last page no full page
'
dim rtnstr
rtnstr="<?xml version='1.0' encoding='gb2312' standalone='yes' ?>" & chr(13)& chr(10)
rtnstr=rtnstr & "<pageinfo>" & chr(13)& chr(10)
rtnstr=rtnstr & " <counts>" & cstr(iCounts) & "</counts>" & chr(13)& chr(10)
rtnstr=rtnstr & " <pages>" & cstr(iPagecounts) & "</pages>" & chr(13)& chr(10)
rtnstr=rtnstr & " <page>" & cstr(ipage) & "</page>" & chr(13)& chr(10)
rtnstr=rtnstr & " <pagesize>" & cstr(ipagesize) & "</pagesize>" & chr(13)& chr(10)
rtnstr=rtnstr & "</pageinfo>" & chr(13)& chr(10)
'
rtnstr=rtnstr & "<rs>" & chr(13)& chr(10)
irow=0
adoRS.movefirst
do while not adoRS.Eof
if irow>=iStartPos and irow<=iEndPos then
rtnstr=rtnstr & " <r" & cstr(irow) & ">" & chr(13)& chr(10)
for i=0 to adoRS.Fields.Count-1
rtnstr=rtnstr & " <" & adoRS.Fields(i).name & ">" & chr(13)& chr(10)
rtnstr=rtnstr & "<![CDATA[ " & adoRS.Fields(i) & " ]]>" & chr(13)& chr(10)
rtnstr=rtnstr & " </" & adoRS.Fields(i).name & ">" & chr(13)& chr(10)
next
rtnstr=rtnstr & " </r" & cstr(irow) & ">" & chr(13)& chr(10)
end if
if irow>iEndPos then exit do
irow=irow+1
adoRS.movenext
loop
rtnstr=rtnstr & "</rs>"
'
adoRS.Close
adoConn.Close
set adoRS=nothing
set adoConn=nothing
qrybypage_xml=rtnstr
end function
function qrybypage_array(byval sqlquery,byval ipage,byval ipagesize)
dim adoConn,adoRS,iCounts,iPagecounts,iStartPos,iEndPos
set adoConn=server.createobject("ADODB.connection")
adoConn.open "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath(".") & "/sys.mdb"
set adoRS=server.createobject("ADODB.RecordSet")
adoRS.open sqlquery,adoConn,1,3 'support movelast (adOpenKeySet,adLockOptimistic)
'check cur page
if ipage<=0 then ipage=1
adoRS.movelast
iCounts=adoRS.RecordCount
iPagecounts = (iCounts - 1) \ ipagesize + 1 'page counts, good job! vb int div=\ not /
if ipage>iPagecounts then ipage=iPagecounts
'get start pos,end pos
iStartPos = (ipage - 1) * ipagesize
iEndPos = iStartPos + ipagesize-1
if (iEndPos > iCounts-1) then iEndPos = iCounts-1 'last page no full page
'
dim rtnstr
rtnstr="@data@" & cstr(iCounts) & "," & cstr(iPagecounts) & "," & cstr(ipage) & "," & cstr(ipagesize)
rtnstr=rtnstr & chr(13) & chr(13)
for i=0 to adoRS.Fields.Count-1
if i=adoRS.Fields.Count-1 then
rtnstr=rtnstr & adoRS.Fields(i).name
else
rtnstr=rtnstr & adoRS.Fields(i).name & ","
end if
next
'
irow=0
adoRS.movefirst
dim tmpstr
do while not adoRS.Eof
if irow>=iStartPos and irow<=iEndPos then
tmpstr=""
for i=0 to adoRS.Fields.Count-1
if i=adoRS.Fields.Count-1 then
tmpstr=tmpstr & adoRS.Fields(i)
else
tmpstr=tmpstr & adoRS.Fields(i) & chr(10) & chr(10)
end if
next
rtnstr=rtnstr & chr(13) & chr(13) & tmpstr
end if
if irow>iEndPos then exit do
irow=irow+1
adoRS.movenext
loop
'
adoRS.Close
adoConn.Close
set adoRS=nothing
set adoConn=nothing
qrybypage_array=rtnstr
end function
function cmd(byval sqlcmd)
dim adoConn
set adoConn=server.createobject("ADODB.connection")
adoConn.open "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath(".") & "/sys.mdb"
adoConn.execute(sqlcmd)
adoConn.Close
set adoConn=nothing
end function
end class
function getxmldata(byval xmlstr,byval row,byval key)
Set xml=Server.CreateObject("Microsoft.XMLDOM")
xml.Async=False
xml.ValidateOnParse=False
xml.LoadXML(xmlstr) 'Load()
sRtn=""
If xml.ReadyState>2 Then
Set StartNode=xml.getElementsByTagName(key)
if row<=(StartNode.Length-1) then
sRtn=StartNode.Item(row).Text
else
sRtn="" '"no data:" & cstr(StartNode.Length) & xmlstr
end if
'For i=0 To (StartNode.Length-1)
'sRtn=StartNode.Item(i).getElementsByTagName(key)
'Next
Else
sRtn="" '"no ready" & xmlstr
End If
Set xml=Nothing
getxmldata=sRtn
end function
%>
二、调用示例
index.asp
<!-- #include file="conn.asp" -->
<%
dim db
set db=new TDB
'xmlstr=db.qry("select * from xms_hotph")
'response.write("xml in source code")
'response.write(xmlstr)
'response.write("*******************")
dim ipage,ipagesize
ipage=cint(request.queryString("page"))
ipagesize=cint(request.queryString("pagesize"))
'xmlstr=db.qrybypage_xml("select * from xms_hotph",ipage,ipagesize)
'response.write(xmlstr)
xmlstr=db.qrybypage_array("select * from xms_hotph",ipage,ipagesize)
response.write(xmlstr)
'response.write(getxmldata(xmlstr,0,"phnumber"))
'db.cmd("insert into xms_hotph (type,phnumber) values (99,'aaa')")
%>
猜你喜欢
- 一直以来都有这样一个困惑,那就是打开页面间的链接时是在原窗口转换还在新窗口打开呢?如果是在原窗口里转换页面的话,那我还想使用原页面的信息呢?
- 在工作实践和学习中,如何开启 MySQL 数据库的远程登陆帐号算是一个难点的问题,以下内容便是在工作和实践中总结出来的两大步骤,能帮助DBA
- 一段重用很高的ajax代码,可以套用 <!DOCTYPE HTML
- 对于windows平台来说安装完MySQL后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_instal
- 你喜欢在博客文章中使用图片吗?是的,如果不是很麻烦的话,相信大家都不会介意放上几张漂亮的图片来点缀一下内容的,不过你的图片可能会导致下面的两
- 我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?&nbs
- 在oracle中有很多关于日期的函数,如:1、add_months()用于从一个日期值增加或减少一些月份date_value:=add_mo
- 在asp代码中分页是有点麻烦的事情,个人在在代码编写过程中把分页代码写成了两个函数,虽然在功能上不是很完善,但对于一般的应用应该是满足的了。
- 修改my.ini或my.conf,将sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_US
- 目前定时的操作有:一、Html页面的定时刷新(Refresh--刷新 ) 1,Refresh (刷新) 代码使用说明 说明:让网页多长时间(
- 在制作网页的过程中,自适应问题是经常遇到,而又最让人头疼的,看了好多种解决的方法,但是都不是万能的。今天遇到这个问题,实在让我挠头,借鉴了
- 图片的间隙 (1)问:我有一张大图片,把它切割后在Dreamweaver中进行拼接,可是总是有间隙,不知为什么? 答:不知你是否把表格的边距
- Opera所属:挪威Opera Software ASA公司渲染引擎:自家的PrestoOpera起初是一款挪威Oper
- 有些朋友看到这个标题可能会有疑问,难道在视图中使用*符号还有何要注意的地方吗?对于这个问题,我们先不必回答,先看一下例子吧。 我这里,使用的
- 系列一:图片格式介绍Gif格式特点透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)
- div+css实现圆角边框,在网络上查看了一下,很多都是实现圆角的矩形的方法,我在这里介绍的是实现圆角矩形边框的方法。用代码说明问题:<
- by yemoo有时在编写网页代码时发现,img底部莫名奇妙多出大约3px的空白,无论怎么调节css都不可以,今天再次遇到此问题,网上看了一
- 众所周知,FileSystemObject(fso)组件的强大功能及破坏性是它屡屡被免费主页提供商(那些支持ASP)的禁用的原因,我整理了一
- 1:构图图形的层次感图形和元素之间的层次感,可以在干扰视觉的同时,突出自身所想体现的主题,这种表现方式往往是比较直接而且有效的方式。我们所说
- 请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库.一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据