1[收藏]ASP数据库操作类(上)<%
  2[收藏]ASP数据库操作类(上)Class dbClass
  3[收藏]ASP数据库操作类(上)'-------------------------------------------------------------------------
  4[收藏]ASP数据库操作类(上)    '变量说明
  5[收藏]ASP数据库操作类(上)    'conn-----------connection对象
  6[收藏]ASP数据库操作类(上)    'strsql---------执行查询的语句
  7[收藏]ASP数据库操作类(上)    'vTbName--------查询分页的表名
  8[收藏]ASP数据库操作类(上)    'vPKey----------查询分页的表的主键
  9[收藏]ASP数据库操作类(上)    'vPgFields------查询分页要显示的字段
 10[收藏]ASP数据库操作类(上)    'vPgSize--------查询分页每页显示的记录数
 11[收藏]ASP数据库操作类(上)    'vCurrPg--------查询分页显示的当前页
 12[收藏]ASP数据库操作类(上)    'vConditions----查询分页的条件
 13[收藏]ASP数据库操作类(上)    'vOrderBy-------查询分页的排序
 14[收藏]ASP数据库操作类(上)'-------------------------------------------------------------------------
 15[收藏]ASP数据库操作类(上)    private conn,strsql,vTbName,vPKey,vPgFields,vPgSize,vCurrPg,vConditions,vOrderBy
 16[收藏]ASP数据库操作类(上)    '类的初始化
 17[收藏]ASP数据库操作类(上)    private Sub Class_Initialize()
 18[收藏]ASP数据库操作类(上)        '当是MS Sql数据库时设置以下两个变量 
 19[收藏]ASP数据库操作类(上)        'dim dbServer            '数据库服务器的名称或ip地址
 20[收藏]ASP数据库操作类(上)        'dim dbname              '数据库的名字
 21[收藏]ASP数据库操作类(上)        dim dbPath              '若是Access数据库,此处设置其路径
 22[收藏]ASP数据库操作类(上)        dim dbUser              '数据库的登录用户名
 23[收藏]ASP数据库操作类(上)        dim dbPass              '数据库的登录密码
 24[收藏]ASP数据库操作类(上)        dim connstr
 25[收藏]ASP数据库操作类(上)        dbPath = "/testasp/data/data.mdb" '设置数据库路径
 26[收藏]ASP数据库操作类(上)        dbUser = "admin" 
 27[收藏]ASP数据库操作类(上)        dbPass = "123456"
 28[收藏]ASP数据库操作类(上)        '若是access,并且有密码
 29[收藏]ASP数据库操作类(上)        connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbPath) &_
 30[收藏]ASP数据库操作类(上)         ";User ID=" & dbUser & ";Password=;Jet OLEDB:Database Password=" & dbPass
 31[收藏]ASP数据库操作类(上)        '若是access,并且没有密码
 32[收藏]ASP数据库操作类(上)        'connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(dbPath)
 33[收藏]ASP数据库操作类(上)        '若是ms-sql数据库
 34[收藏]ASP数据库操作类(上)        'connstr = "Provider = Sqloledb; User ID = " & dbUser & "; Password = " & dbPass &_
 35[收藏]ASP数据库操作类(上)        ' "; Initial Catalog = " & dbname & "; Data Source = " & dbServer 
 36[收藏]ASP数据库操作类(上)        on error resume next
 37[收藏]ASP数据库操作类(上)        set conn=server.CreateObject("adodb.connection")
 38[收藏]ASP数据库操作类(上)        conn.open connstr
 39[收藏]ASP数据库操作类(上)        errMsg "连接数据库"
 40[收藏]ASP数据库操作类(上)    End Sub
 41[收藏]ASP数据库操作类(上)    '类结束
 42[收藏]ASP数据库操作类(上)    Private Sub Class_terminate()
 43[收藏]ASP数据库操作类(上)        conn.close
 44[收藏]ASP数据库操作类(上)        set conn=nothing
 45[收藏]ASP数据库操作类(上)    End Sub
 46[收藏]ASP数据库操作类(上)'-------------------------------------------------------------------------
 47[收藏]ASP数据库操作类(上)'给类的变量设置值
 48[收藏]ASP数据库操作类(上)'-------------------------------------------------------------------------    
 49[收藏]ASP数据库操作类(上)    '设置sql语句
 50[收藏]ASP数据库操作类(上)    Public Property Let sqlStr(Byval Values)
 51[收藏]ASP数据库操作类(上)    strsql=Values
 52[收藏]ASP数据库操作类(上)    End Property
 53[收藏]ASP数据库操作类(上)    '设置查询分页的表名
 54[收藏]ASP数据库操作类(上)    public property let tbName(Byval Values) 
 55[收藏]ASP数据库操作类(上)    vTbName=Values
 56[收藏]ASP数据库操作类(上)    end property
 57[收藏]ASP数据库操作类(上)    '--------------------------------------------------------
 58[收藏]ASP数据库操作类(上)    '设置查询分页的表的主键
 59[收藏]ASP数据库操作类(上)    public property let pKey(ByVal Values)
 60[收藏]ASP数据库操作类(上)    vPKey=Values
 61[收藏]ASP数据库操作类(上)    end property
 62[收藏]ASP数据库操作类(上)    '--------------------------------------------------------
 63[收藏]ASP数据库操作类(上)    '设置显示的字段
 64[收藏]ASP数据库操作类(上)    public property let pgFields(ByVal Values)
 65[收藏]ASP数据库操作类(上)    vPgFields=Values
 66[收藏]ASP数据库操作类(上)    end property
 67[收藏]ASP数据库操作类(上)    '--------------------------------------------------------
 68[收藏]ASP数据库操作类(上)    '设置每页显示的记录数
 69[收藏]ASP数据库操作类(上)    public property let pgSize(ByVal Values)
 70[收藏]ASP数据库操作类(上)    vPgSize=Values
 71[收藏]ASP数据库操作类(上)    end property
 72[收藏]ASP数据库操作类(上)    '---------------------------------------------------------
 73[收藏]ASP数据库操作类(上)    '设置当前显示的页数
 74[收藏]ASP数据库操作类(上)    public property let currPg(ByVal Values) 
 75[收藏]ASP数据库操作类(上)    vCurrPg=Values
 76[收藏]ASP数据库操作类(上)    end property
 77[收藏]ASP数据库操作类(上)    '--------------------------------------------------------
 78[收藏]ASP数据库操作类(上)    '设置查询的条件
 79[收藏]ASP数据库操作类(上)    public property let conditions(ByVal Values)
 80[收藏]ASP数据库操作类(上)    if Len(Values)>0 then
 81[收藏]ASP数据库操作类(上)    vConditions=" where "&Values
 82[收藏]ASP数据库操作类(上)    else
 83[收藏]ASP数据库操作类(上)    vConditions=" where 1=1 "
 84[收藏]ASP数据库操作类(上)    end if
 85[收藏]ASP数据库操作类(上)    end property
 86[收藏]ASP数据库操作类(上)    '-------------------------------------------------------
 87[收藏]ASP数据库操作类(上)    '设置查询的排序
 88[收藏]ASP数据库操作类(上)    public property let orderBy(ByVal Values)
 89[收藏]ASP数据库操作类(上)    if Len(Values)>0 then
 90[收藏]ASP数据库操作类(上)    vOrderBy=" order by "&Values
 91[收藏]ASP数据库操作类(上)    else
 92[收藏]ASP数据库操作类(上)    vOrderBy=Values
 93[收藏]ASP数据库操作类(上)    end if
 94[收藏]ASP数据库操作类(上)    end property    
 95[收藏]ASP数据库操作类(上)    '------------------------------------------------------------- 
 96[收藏]ASP数据库操作类(上)    '得到记录总数
 97[收藏]ASP数据库操作类(上)    public property get vRsCount()
 98[收藏]ASP数据库操作类(上)    if vCurrPg=1 then
 99[收藏]ASP数据库操作类(上)    sqlc="select count("&vPKey&") as Idcount from "&vTbName&" "&vConditions
100[收藏]ASP数据库操作类(上)    set rsc=server.CreateObject("adodb.recordset")
101[收藏]ASP数据库操作类(上)    rsc.open sqlc,conn,0,1
102[收藏]ASP数据库操作类(上)    RsNum=rsc("IdCount")
103[收藏]ASP数据库操作类(上)    rsc.close
104[收藏]ASP数据库操作类(上)    set rsc=nothing
105[收藏]ASP数据库操作类(上)    if RsNum>0 then
106[收藏]ASP数据库操作类(上)    response.Cookies("iRecord")=RsNum
107[收藏]ASP数据库操作类(上)    vRsCount=RsNum
108[收藏]ASP数据库操作类(上)    else
109[收藏]ASP数据库操作类(上)    vRsCount=0
110[收藏]ASP数据库操作类(上)    end if
111[收藏]ASP数据库操作类(上)    else
112[收藏]ASP数据库操作类(上)    vRsCount=request.Cookies("iRecord")
113[收藏]ASP数据库操作类(上)    end if
114[收藏]ASP数据库操作类(上)    end property
115[收藏]ASP数据库操作类(上)    '得到总页数
116[收藏]ASP数据库操作类(上)    public property get vPgCount() 
117[收藏]ASP数据库操作类(上)    iRsCount2=vRsCount()
118[收藏]ASP数据库操作类(上)    if iRsCount2 mod vPgSize =0 then
119[收藏]ASP数据库操作类(上)    vPgCount=int(iRsCount2/vPgSize)
120[收藏]ASP数据库操作类(上)    else
121[收藏]ASP数据库操作类(上)    vPgCount=int(iRsCount2/vPgSize)+1
122[收藏]ASP数据库操作类(上)    end if
123[收藏]ASP数据库操作类(上)    end property
124[收藏]ASP数据库操作类(上)'查询数据库
125[收藏]ASP数据库操作类(上)    Public Function rsDB()
126[收藏]ASP数据库操作类(上)    on error resume next
127[收藏]ASP数据库操作类(上)    '简单的查询出结果
128[收藏]ASP数据库操作类(上)'     set rsDB = Server.CreateObject("ADODB.RecordSet")
129[收藏]ASP数据库操作类(上)'     rsDB.Open strsql,conn,1,3 
130[收藏]ASP数据库操作类(上)    Set rsDB=conn.Execute(strsql)
131[收藏]ASP数据库操作类(上)    errMsg "查询数据库"
132[收藏]ASP数据库操作类(上)    End Function
133[收藏]ASP数据库操作类(上)'添加,更新,删除数据库记录
134[收藏]ASP数据库操作类(上)    public Function upDB()
135[收藏]ASP数据库操作类(上)    on error resume next
136[收藏]ASP数据库操作类(上)    conn.execute(strsql)
137[收藏]ASP数据库操作类(上)    errMsg "编辑数据库记录"
138[收藏]ASP数据库操作类(上)    end Function
139[收藏]ASP数据库操作类(上)'------------------------------------------------------------------------- 
140[收藏]ASP数据库操作类(上)'用来实现分页的记录集函数
141[收藏]ASP数据库操作类(上)    public function pageRs()
142[收藏]ASP数据库操作类(上)    on error resume next
143[收藏]ASP数据库操作类(上)    dim startRs
144[收藏]ASP数据库操作类(上)    startRs=(vCurrPg-1)*vPgSize
145[收藏]ASP数据库操作类(上)    '-------------------------------------------------------------------------------------------
146[收藏]ASP数据库操作类(上)    '使用此语句的话要根据参数修改代码,具体的是若排序为asc则<改为>,min改为max
147[收藏]ASP数据库操作类(上)'    if startRs=0 then
148[收藏]ASP数据库操作类(上)'    strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" "&vOrderBy
149[收藏]ASP数据库操作类(上)'    else
150[收藏]ASP数据库操作类(上)'    strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" and "&vPKey&" < "
151[收藏]ASP数据库操作类(上)'    strsql=strsql&"(select min("&vPKey&") from (select top "&startRs&" "&vPKey&" from " 
152[收藏]ASP数据库操作类(上)'    strsql=strsql&vTbName&" "&vConditions&" "&vOrderBy&") as idTable) "&vOrderBy
153[收藏]ASP数据库操作类(上)'    end if
154[收藏]ASP数据库操作类(上)    '---------------------------------------------------------------
155[收藏]ASP数据库操作类(上)    if startRs=0 then
156[收藏]ASP数据库操作类(上)    strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" "&vOrderBy
157[收藏]ASP数据库操作类(上)    else
158[收藏]ASP数据库操作类(上)    strsql="select top "&vPgSize&" "&vPgFields&" from "&vTbName&" "&vConditions&" and "&vPKey&" not "
159[收藏]ASP数据库操作类(上)    strsql=strsql&"in (select top "&startRs&" "&vPKey&" from "&vTbName&" "&vConditions&" "&vOrderBy
160[收藏]ASP数据库操作类(上)    strsql=strsql&""&vOrderBy 
161[收藏]ASP数据库操作类(上)    end if
162[收藏]ASP数据库操作类(上)    '-------------------------------------------------------------------
163[收藏]ASP数据库操作类(上)    set pageRs=server.CreateObject("adodb.recordset")
164[收藏]ASP数据库操作类(上)    pageRs.open strsql,conn,0,1
165[收藏]ASP数据库操作类(上)    errMsg "记录分页"
166[收藏]ASP数据库操作类(上)    end function
167[收藏]ASP数据库操作类(上)'------sql用存储过程分页------------------------------------------------------
168[收藏]ASP数据库操作类(上)public function sqlPage()
169[收藏]ASP数据库操作类(上)on error resume next
170[收藏]ASP数据库操作类(上)Set sqlPage=server.CreateObject("Adodb.RecordSet")
171[收藏]ASP数据库操作类(上)Set Cm=Server.CreateObject("Adodb.Command")
172[收藏]ASP数据库操作类(上)Cm.CommandType = 4
173[收藏]ASP数据库操作类(上)Cm.ActiveConnection = conn
174[收藏]ASP数据库操作类(上)Cm.CommandText="sp_Util_Page"
175[收藏]ASP数据库操作类(上)Cm.parameters(1= vPgFields
176[收藏]ASP数据库操作类(上)Cm.parameters(2= vTbName
177[收藏]ASP数据库操作类(上)Cm.parameters(3= vConditions
178[收藏]ASP数据库操作类(上)Cm.parameters(4= vOrderBy
179[收藏]ASP数据库操作类(上)Cm.parameters(5= vPKey
180[收藏]ASP数据库操作类(上)Cm.parameters(6= vCurrPg
181[收藏]ASP数据库操作类(上)Cm.parameters(7= vPgSize
182[收藏]ASP数据库操作类(上)Cm.parameters(8= vRsCount()
183[收藏]ASP数据库操作类(上)Cm.parameters(9= ""
184[收藏]ASP数据库操作类(上)sqlPage.CursorLocation = 3 
185[收藏]ASP数据库操作类(上)sqlPage.LockType = 1
186[收藏]ASP数据库操作类(上)sqlPage.Open Cm
187[收藏]ASP数据库操作类(上)errMsg "记录分页"
188[收藏]ASP数据库操作类(上)end function
189[收藏]ASP数据库操作类(上)'----------------------------------------------------------------------------
190[收藏]ASP数据库操作类(上)'关闭记录集objRs
191[收藏]ASP数据库操作类(上)'----------------------------------------------------------------------------
192[收藏]ASP数据库操作类(上)    Public Function cRs(ByVal ObjRs)
193[收藏]ASP数据库操作类(上)    ObjRs.close()
194[收藏]ASP数据库操作类(上)    Set ObjRs = Nothing
195[收藏]ASP数据库操作类(上)    End Function
196[收藏]ASP数据库操作类(上)'----------------------分页的页码导航---------------------------------------
197[收藏]ASP数据库操作类(上)public function pageNav()
198[收藏]ASP数据库操作类(上)iRsCount=vRsCount()'总记录数
199[收藏]ASP数据库操作类(上)mypage=vCurrPg'当前页数
200[收藏]ASP数据库操作类(上)PgCount=vPgCount()'总页数
201[收藏]ASP数据库操作类(上)prePage=mypage-1
202[收藏]ASP数据库操作类(上)if prePage<1 then
203[收藏]ASP数据库操作类(上)prePage=1
204[收藏]ASP数据库操作类(上)end if
205[收藏]ASP数据库操作类(上)nextPage=mypage+1
206[收藏]ASP数据库操作类(上)if nextPage>PgCount then
207[收藏]ASP数据库操作类(上)nextPage=PgCount
208[收藏]ASP数据库操作类(上)end if
209[收藏]ASP数据库操作类(上)pagestr="<div >>

 

我的想法是既然是数据库操作类,所以类一实例化的时候就建立数据库连接,所以在使用的时候要先修改 Class_Initialize()中的代码,设置正确的数据库连接数据,设置好了就可以使用了。

1、一般的操作

   set myDb=new dbClass
   myDb.sqlStr="select * from ..."        '这里设置数据库操作语句
   set rs=myDb.rsDB()
'这里返回rs,接着就按平时的写法写表现数据的代码
'.......
   myDb.cRs(rs) '关闭释放rs
   set myDb=nothing

若myDb.sqlStr设置的是更新、删除或添加的sql语句,那么就要用myDb.upDB()来执行,即

set myDb=new dbClass
myDb.sqlStr="update ..."
myDb.upDB()
set myDb=nothing

相关文章: