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')")
%>
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- bug1无法正常使用cmd或pycharm正常安装,报错截图如下:解决(1): 这种情况下,我们就不能使用cmd或pycharm进
- 1.paramiko概述ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底
- pandas中的agg函数python中的agg函数通常用于调用groupby()函数之后,对数据做一些聚合操作,包括sum,min,max
- 密码保护是注册过程中的关键环节,尤其是对帐户安全级别比较高的网站,尤其在账号被盗或者涉及安全登录等问题的情况下,密码保护问题作为用户身份识别
- 我们可以通过 asyncio.wait() 函数等待异步任务完成。可以等待不同的条件,例如所有任务完成、第一个任务完成以及第一个任务因异常而
- 库操作查询1.SHOW DATABASE; ----查询所有数据库2.SHOW CREATE DATABASE 数据库名称; ----查询某
- 对模型中的字段进行验证Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都带有来自Django验证器的内置验证
- 前言在学习Flask框架的蓝图时,遇到导包时用到了`from . 模块 import 对象`,然后试了试直接 import会报错,直接告诉我
- 运行效果实现代码# -*- coding: utf-8 -*-import tkinter as tkinterimport tkinter
- 之前整理发表了《XMLHTTPRequest的属性和方法简介》,它ajax要使用的核心的技术之一,现在就来实际运用它。这个Ajax标签导航,
- 导入所需库%matplotlib inlineimport sympyimport numpy as npimport matplotlib
- 这篇文章主要介绍了微信小程序wxml列表渲染原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 注意,一般官方接口都带有可导功能,如果你实现的层不具有可导功能,就需要自己实现梯度的反向传递。官方Linear层:class Linear(
- 在“按需加载”的需求中,我们经常会判断当脚本加载完成时,返回一个回调函数,那如何去判断脚本的加载完成呢?我们可以对加载的 JS 对象使用 o
- 一、题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。X 星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每
- 多线程锁lock=threading.Lock()使用疑问多线程任务是同时执行的,如果我们需要先执行线程a,再执行线程b,需要怎么办呢?解决
- if"""条件语句:ifif...elseif...elif...elseif 语句的格式:if 条件: &n
- 输入:数字m mm,n nn输出:m mm行n nn列的数字蛇形方阵1. 从方阵最左上角开始,顺时针向内填充。初始化一个m mm行n nn列
- 1. Golint(1)安装golintgit clone https://github.com/golang/lint.git
- 以前经常吃公司旁边的食堂,人多,排队。夏天的时候,我们总要找一个靠窗口通风好的地方坐,没有空调只有风扇,风扇很多,开关都集中在一个地方,应该