[收藏]ASP数据库操作类(上)
2Class dbClass
3'-------------------------------------------------------------------------
4 '变量说明
5 'conn-----------connection对象
6 'strsql---------执行查询的语句
7 'vTbName--------查询分页的表名
8 'vPKey----------查询分页的表的主键
9 'vPgFields------查询分页要显示的字段
10 'vPgSize--------查询分页每页显示的记录数
11 'vCurrPg--------查询分页显示的当前页
12 'vConditions----查询分页的条件
13 'vOrderBy-------查询分页的排序
14'-------------------------------------------------------------------------
15 private conn,strsql,vTbName,vPKey,vPgFields,vPgSize,vCurrPg,vConditions,vOrderBy
16 '类的初始化
17 private Sub Class_Initialize()
18 '当是MS Sql数据库时设置以下两个变量
19 'dim dbServer '数据库服务器的名称或ip地址
20 'dim dbname '数据库的名字
21 dim dbPath '若是Access数据库,此处设置其路径
22 dim dbUser '数据库的登录用户名
23 dim dbPass '数据库的登录密码
24 dim connstr
25 dbPath = "/testasp/data/data.mdb" '设置数据库路径
26 dbUser = "admin"
27 dbPass = "123456"
28 '若是access,并且有密码
29 connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbPath) &_
30 ";User ID=" & dbUser & ";Password=;Jet OLEDB:Database Password=" & dbPass
31 '若是access,并且没有密码
32 'connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(dbPath)
33 '若是ms-sql数据库
34 'connstr = "Provider = Sqloledb; User ID = " & dbUser & "; Password = " & dbPass &_
35 ' "; Initial Catalog = " & dbname & "; Data Source = " & dbServer
36 on error resume next
37 set conn=server.CreateObject("adodb.connection")
38 conn.open connstr
39 errMsg "连接数据库"
40 End Sub
41 '类结束
42 Private Sub Class_terminate()
43 conn.close
44 set conn=nothing
45 End Sub
46'-------------------------------------------------------------------------
47'给类的变量设置值
48'-------------------------------------------------------------------------
49 '设置sql语句
50 Public Property Let sqlStr(Byval Values)
51 strsql=Values
52 End Property
53 '设置查询分页的表名
54 public property let tbName(Byval Values)
55 vTbName=Values
56 end property
57 '--------------------------------------------------------
58 '设置查询分页的表的主键
59 public property let pKey(ByVal Values)
60 vPKey=Values
61 end property
62 '--------------------------------------------------------
63 '设置显示的字段
64 public property let pgFields(ByVal Values)
65 vPgFields=Values
66 end property
67 '--------------------------------------------------------
68 '设置每页显示的记录数
69 public property let pgSize(ByVal Values)
70 vPgSize=Values
71 end property
72 '---------------------------------------------------------
73 '设置当前显示的页数
74 public property let currPg(ByVal Values)
75 vCurrPg=Values
76 end property
77 '--------------------------------------------------------
78 '设置查询的条件
79 public property let conditions(ByVal Values)
80 if Len(Values)>0 then
81 vConditions=" where "&Values
82 else
83 vConditions=" where 1=1 "
84 end if
85 end property
86 '-------------------------------------------------------
87 '设置查询的排序
88 public property let orderBy(ByVal Values)
89 if Len(Values)>0 then
90 vOrderBy=" order by "&Values
91 else
92 vOrderBy=Values
93 end if
94 end property
95 '-------------------------------------------------------------
96 '得到记录总数
97 public property get vRsCount()
98 if vCurrPg=1 then
99 sqlc="select count("&vPKey&") as Idcount from "&vTbName&" "&vConditions
100 set rsc=server.CreateObject("adodb.recordset")
101 rsc.open sqlc,conn,0,1
102 RsNum=rsc("IdCount")
103 rsc.close
104 set rsc=nothing
105 if RsNum>0 then
106 response.Cookies("iRecord")=RsNum
107 vRsCount=RsNum
108 else
109 vRsCount=0
110 end if
111 else
112 vRsCount=request.Cookies("iRecord")
113 end if
114 end property
115 '得到总页数
116 public property get vPgCount()
117 iRsCount2=vRsCount()
118 if iRsCount2 mod vPgSize =0 then
119 vPgCount=int(iRsCount2/vPgSize)
120 else
121 vPgCount=int(iRsCount2/vPgSize)+1
122 end if
123 end property
124'查询数据库
125 Public Function rsDB()
126 on error resume next
127 '简单的查询出结果
128' set rsDB = Server.CreateObject("ADODB.RecordSet")
129' rsDB.Open strsql,conn,1,3
130 Set rsDB=conn.Execute(strsql)
131 errMsg "查询数据库"
132 End Function
133'添加,更新,删除数据库记录
134 public Function upDB()
135 on error resume next
136 conn.execute(strsql)
137 errMsg "编辑数据库记录"
138 end Function
139'-------------------------------------------------------------------------
140'用来实现分页的记录集函数
141 public function pageRs()
142 on error resume next
143 dim startRs
144 startRs=(vCurrPg-1)*vPgSize
145 '-------------------------------------------------------------------------------------------
146 '使用此语句的话要根据参数修改代码,具体的是若排序为asc则<改为>,min改为max
147' if startRs=0 then
148' strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" "&vOrderBy
149' else
150' strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" and "&vPKey&" < "
151' strsql=strsql&"(select min("&vPKey&") from (select top "&startRs&" "&vPKey&" from "
152' strsql=strsql&vTbName&" "&vConditions&" "&vOrderBy&") as idTable) "&vOrderBy
153' end if
154 '---------------------------------------------------------------
155 if startRs=0 then
156 strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" "&vOrderBy
157 else
158 strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" and "&vPKey&" not "
159 strsql=strsql&"in (select top "&startRs&" "&vPKey&" from "&vTbName&" "&vConditions&" "&vOrderBy
160 strsql=strsql&") "&vOrderBy
161 end if
162 '-------------------------------------------------------------------
163 set pageRs=server.CreateObject("adodb.recordset")
164 pageRs.open strsql,conn,0,1
165 errMsg "记录分页"
166 end function
167'------sql用存储过程分页------------------------------------------------------
168public function sqlPage()
169on error resume next
170Set sqlPage=server.CreateObject("Adodb.RecordSet")
171Set Cm=Server.CreateObject("Adodb.Command")
172Cm.CommandType = 4
173Cm.ActiveConnection = conn
174Cm.CommandText="sp_Util_Page"
175Cm.parameters(1) = vPgFields
176Cm.parameters(2) = vTbName
177Cm.parameters(3) = vConditions
178Cm.parameters(4) = vOrderBy
179Cm.parameters(5) = vPKey
180Cm.parameters(6) = vCurrPg
181Cm.parameters(7) = vPgSize
182Cm.parameters(8) = vRsCount()
183Cm.parameters(9) = ""
184sqlPage.CursorLocation = 3
185sqlPage.LockType = 1
186sqlPage.Open Cm
187errMsg "记录分页"
188end function
189'----------------------------------------------------------------------------
190'关闭记录集objRs
191'----------------------------------------------------------------------------
192 Public Function cRs(ByVal ObjRs)
193 ObjRs.close()
194 Set ObjRs = Nothing
195 End Function
196'----------------------分页的页码导航---------------------------------------
197public function pageNav()
198iRsCount=vRsCount()'总记录数
199mypage=vCurrPg'当前页数
200PgCount=vPgCount()'总页数
201prePage=mypage-1
202if prePage<1 then
203prePage=1
204end if
205nextPage=mypage+1
206if nextPage>PgCount then
207nextPage=PgCount
208end if
209pagestr="<div id=""fy""><span id=""rpc"">总共有"&iRsCount&"条记录 "&mypage&"/"&PgCount&"</span>"
210pagestr=pagestr&"<a href='?currpage=1' class='aW'>首页</a><a href='?currpage="&prePage&"' class='aW'>前一页</a>"
211if (mypage-1) mod 4=0 then
212firstPage=mypage
213elseif int((mypage-1)/4)=0 then
214firstPage=1
215else
216firstPage=int((mypage-1)/4)*4+1
217end if
218endPage=firstPage+4
219astr=""
220for i=firstPage to endPage
221astr=astr&"<a href='?currpage="&i&"'"
222if Cstr(mypage)=Cstr(i) then
223astr=astr&" id='currP'"
224end if
225astr=astr&">"&i&"</a>"
226if i>PgCount-1 then exit for
227next
228astr=astr&"<a href='?currpage="&nextPage&"' class='aW'>后一页</a><a href='?currpage="&PgCount&"' class='aW'>尾页</a></div>"
229pagestr=pagestr&astr
230pageNav=pagestr
231end function
232'输出带分页功能的table
233Function showTb(ByVal TbTil)
234 set rsTb=pageRs()'若是存储过程就调用sqlPage()
235 tbRs= rsTb.getrows()
236 cRs(rsTb)
237 iTblRow=Ubound(tbRs,2)
238 iTblCol=Ubound(TbTil)
239 tbStr="<table border='0' cellspacing='0' cellpadding='0'><tbody>"
240 for r1=0 to iTblCol
241 tr1=tr1&"<td width='"&split(TbTil(r1),"|")(1)&"'>"&split(TbTil(r1),"|")(0)&"</td>"
242 next
243 tr1="<tr>"&tr1&"</tr>"
244 for ri=0 to iTblRow
245 for ci=0 to iTblCol
246 td=td&"<td width='"&split(TbTil(ci),"|")(1)&"'>"&tbRs(ci,ri)&"</td>"
247 next
248 tr=tr&"<tr>"&td&"</tr>"
249 td=null
250 next
251 TbTil=null
252 tbRs=null
253 response.Write(tbStr&tr1&tr&"<tr><td colspan='"&iTblCol+1&"'>"&pageNav()&"</td></tr></tbody></table>")
254 tbStr=null
255 tr1=null
256 tr=null
257End Function
258'打印sql语句,以便语句有错误时检查
259 Public Sub prnSql()
260 response.Write(strsql)
261 End Sub
262'-------------------------------------------------------------------------
263'容错函数
264'-------------------------------------------------------------------------
265 Private Function errMsg(errMsg)
266 If Err.number<>0 Then
267 '出现问题可利用此处代码打印出描述信息,方便调试。可注释掉
268 response.Write(Cstr(Err.description)&"<br>")
269 Err.Clear
270 Response.Write "<font color='#FF0000'>"&errMsg&"出错</font>" '注释
271 Response.End()
272 End If
273 End Function
274'-------------------------------------------------------------------------
275'容错函数结束
276'-------------------------------------------------------------------------
277End Class
278%>
我的想法是既然是数据库操作类,所以类一实例化的时候就建立数据库连接,所以在使用的时候要先修改 Class_Initialize()中的代码,设置正确的数据库连接数据,设置好了就可以使用了。
1、一般的操作
myDb.sqlStr="select * from ..." '这里设置数据库操作语句
set rs=myDb.rsDB()
'这里返回rs,接着就按平时的写法写表现数据的代码
'.......
myDb.cRs(rs) '关闭释放rs
set myDb=nothing
若myDb.sqlStr设置的是更新、删除或添加的sql语句,那么就要用myDb.upDB()来执行,即
myDb.sqlStr="update ..."
myDb.upDB()
set myDb=nothing
转载于:https://www.cnblogs.com/voswin/articles/1282503.html
[收藏]ASP数据库操作类(上)相关推荐
- 基于javascript的asp数据库操作类,含分页、字符串截取、用户登陆验证[原创]
2005.01.15发表于blog.csdn.net/zxub 无聊又用了用asp,发现还是不爽,已经习惯了面向对象了,就想改进了,vbscript不用,感觉看起来很不爽,就用javascript写了 ...
- 我积累的数据库操作类(ASP.NET)
http://guanvee.cnblogs.com/archive/2006/06/16/427510.html http://guanvee.cnblogs.com/archive/2006/06 ...
- mysql的数据库操作类_MYSQL数据库操作类
class MSSQLDB { //MYSQL数据库操作类 //使用说明: //该类完全按照ADO的习惯书写的,用过ASP的人都觉得ASP连接数据库比PHP好用(这是我的感觉), //但PHP得一个一 ...
- asp数据库操作大全 [网站网页]
什么叫活动服务器组件(Active Server Compontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象 ...
- php操作mysql的封装类_PHP封装的mysqli数据库操作类示例
本文实例讲述了PHP封装的mysqli数据库操作类.分享给大家供大家参考,具体如下: 由于PHPMySQL操作在PHP5.4以下被弃用而推荐使用mysqli(MySQL Improvement),这里 ...
- SqlHelper 数据库操作类
sqlHelper.cs Code using System.Data; using System.Data.SqlClient; namespace lsb.DBUtility { /// ...
- mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载
数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器.PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习. 相关mysql视频教 ...
- 一个简单而又灵活的数据库操作类
一个简单而又灵活的数据库操作类 作者: 紫瑗 ***************************************************************************** ...
- 艾伟:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写
本系列文章导航 基于.NET平台的Windows编程实战(一)--前言 基于.NET平台的Windows编程实战(二)-- 需求分析与数据库设计 基于.NET平台的Windows编程实战(四)-- 数 ...
最新文章
- 联想拯救者r720适合java么_联想拯救者哪个型号好 联想拯救者r720怎么样【详解】...
- @getMapping与@postMapping
- mpvue 调起子组件的方法_牢记 | 智鹏五金机电设备这些方法的使用更安全!
- azure 使用_如何使用命令行和Azure自动执行任务
- 子集数据帧中的丢包因子级别
- 标准模型和IE模型的区别
- mysql-5.7安装、配置
- 机器学习——随机森林算法及原理
- 第一道web类CTF题——一起来撸猫
- android-x86 地图,android 手机客户端百度地图 x86的jar包需要吗
- 读书笔记—中国跑步指南
- Channel实现原理分析
- 代码设置桌面壁纸或者屏保
- 用纯CSS写一个左右滑动的开关按钮
- 3.4.11nbsp;拉里·埃里森
- canal - 数据同步工具
- 围绕开放标准改进WSO2 API Manager密钥管理体系结构
- 什么是大数据?漫谈大数据仓库与挖掘系统
- 为什么输入百度的IP地址不能直接访问
- 如何轻松地的现货白银中预测走势?
热门文章
- 2017CCPC哈尔滨 H:A Simple Stone Game
- bzoj 1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会(Trajan)
- bzoj 1623: [Usaco2008 Open]Cow Cars 奶牛飞车(贪心)
- poj 3278 bzoj 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛(BFS)
- 图像识别讲解 以一个简单的图像识别任务为例
- 根据图像连接数判别不同像素所处的位置
- swagger入门和实践(含docker部署swagger)
- hdu 1176 免费馅饼(nyist 613)
- TypeError: unorderable types: str() = int()
- 获取IP及判断IP是否在区间