使用: 必须先实例化对象
Set sql = New SQLExecute
1 如果想读取数据库中的News表中的信息
SQL = "Select * From News"
Rs = sql.GetData("Data.mdb",SQL)
如果已经先实现了Connection类,则直接可以 Rs = sql.GetRs(SQL)
2 如果想向News表中添加数据
Dim ArrayList(2)
ArrayList(0) = "美国总统大选"
ArrayList(1) = "内容............................"
ArrayList(2) = Now()
Dim SQL
SQL = "Select Title,Content,SubTime From News"
Call sql.InsertData(SQL,ArrayList)
3 后面的函数大家一个一个去测试
使用的时候,可以将函数完全分离出来单独使用
'//数据库操作对象
Class SQLExecute
'===========================================================
' 实现数据池模式读取
' 具体获取对象 GetDATA(SQLStr),返回Array数组对象
' AccessPath 配制文件的路径
' URLstr 退出登陆的文件路径
' SQLStr是一个数据查询数据库记录的字符串
'===========================================================
Public Function GetData(AccessPath,SQLStr)
Set DBConn = New Connection '创建数据库连接对象
Call DBConn.DBConnection(AccessPath) '具体实现数据库连接
Dim cmdGeneric 'Command Object
Dim rstGeneric 'RecordSet Object
'//Command对象可以使我们提高查询效率
Set cmdGeneric = Server.CreateObject("ADODB.Command")
Set cmdGeneric.ActiveConnection = Conn
cmdGeneric.CommandText = SQLStr
Set rstGeneric = Server.CreateObject("ADODB.Recordset")
rstGeneric.Open cmdGeneric
If Not (rstGeneric.BOF And rstGeneric.EOF) Then
'put data in an array for further use
GetData = rstGeneric.GetRows
End If
'Close Objects
rstGeneric.Close
Set rstGeneric = Nothing
Set cmdGeneric = Nothing
Conn.Close
Set Conn = Nothing
End Function
'----------------------------------------------------------------------------
'外部已经将数据库连接好后的数据读取
'----------------------------------------------------------------------------
Public Function GetRS(SQLStr)
Dim cmdGeneric 'Command Object
Dim rstGeneric 'RecordSet Object
'//Command对象可以使我们提高查询效率
Set cmdGeneric = Server.CreateObject("ADODB.Command")
Set cmdGeneric.ActiveConnection = Conn
cmdGeneric.CommandText = SQLStr
Set rstGeneric = Server.CreateObject("ADODB.Recordset")
rstGeneric.Open cmdGeneric
If Not (rstGeneric.BOF And rstGeneric.EOF) Then
'put data in an array for further use
GetRS = rstGeneric.GetRows ' 返回记录集(二维)
End If
'Close Objects
rstGeneric.Close
Set rstGeneric = Nothing
Set cmdGeneric = Nothing
End Function
' // Insert
' InsertData 数据插入函数
' SQLStr SQL插入数据的语句
' Arr 保存了准备插入数据的数据的数组
' Arr 只要传递的参数是正确的数据就可以,不要关心名称
Public Sub InsertData(SQLStr,Arr)
IF Not IsArray(Arr) Then Exit Sub
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.open SQLStr,Conn,1,3
Rs.AddNew
For i=0 to UBound(Arr)
Rs.Fields(i).value = Arr(i)
Next
Rs.UpDate
Rs.Close
Set Rs = Nothing
End Sub
'//Update
' 数据修改函数 UpdateData
' Arr 保存了准备修改数据的数据的数组
' Arr 只要传递的参数是正确的数据就可以,不要关心名称
Public Sub UpdateData(SQLStr,Arr)
IF Not IsArray(Arr) Then Exit Sub
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.open SQLStr,Conn,1,3
For i=0 to UBound(Arr)
Rs.Fields(i).value = Arr(i)
Next
Rs.UpDate
Rs.Close
Set Rs = Nothing
End Sub
'==========================================================================
' 作者:曾铃军 时间:2008年4月7日 星期一
' 下面的函数能实现点击率计算和删除等功能
'==========================================================================
Public Sub MSExecute(AccessPath,SQLStr)
Set DBConn = New Connection '创建数据库连接对象
DBConn.DBConnection(AccessPath) '具体实现数据库连接
Conn.Execute(SQLStr)
Conn.Close
Set Conn = Nothing
End Sub
'=================================================
' 处理分页数据使用的信息函数
' 作者:曾铃军 时间:2008年4月4日 星期五 清明
' 分页调用方式:
' Set email3g = New SQLExecute
' Call email3g.PageData(12,oRs) '//每一页最多显示12条
' For i = sPage - 1 To ePage - 1
' Next
'================================================
Public Sub PageData(intPageSize,getRS)
recordCount = UBound(getRS, 2) + 1
pageCount = Int((recordCount + intPageSize - 1) / intPageSize)
iPage = Trim(Request.QueryString("iPage"))
if iPage = "" Then
currentPage=1
else
currentPage = iPage
end if
If recordCount <= intPageSize Then
ePage = recordCount
Else
ePage = currentPage * intPageSize
If ePage > recordCount Then
ePage = recordCount
End If
End If
sPage = (currentPage - 1) * intPageSize + 1
End Sub
'==========================================
'网页分页处理对象
' 调用方式
' getURL = "index.asp"
' Canshu = "BIGID=10&SmallID=1"
' GIF = "PageGif/"
' Call email3g.Page(pageCount,currentPage,getURL,CanShu,GIF)
'==========================================
Sub Page(pageCount,currentPage,getURL,CanShu,Gif)
With Response
IF pageCount>1 Then
.Write("共 <font color='#FF0000'>"&recordCount&"</font> 记录 当前")
.Write("<font color=red>"&cint(currentPage)&"</font>/"&pageCount&" 页"&vbcrlf)
If currentPage =1 Or currentPage=0 then
.Write("<a href="""&getURL&"?iPage=1"&CanShu&"""><img src='"&Gif&"home.gif' border='0'></a>"&vbcrlf)
.Write("<a href="""&getURL&"?iPage=1"&CanShu&"""><img src='"&Gif&"prev.gif' border='0'></a>"&vbcrlf)
Else
.Write("<a href="""&getURL&"?iPage=1"&CanShu&"""><img src='"&Gif&"home.gif' border='0'></a>"&vbcrlf)
.Write("<a href="""&getURL&"?iPage="&(currentPage-1)&CanShu&"""><img src='"&Gif&"prev.gif' border='0'></a>"&vbcrlf)
End IF
'//
IF cint(currentPage) = pageCount Then
.Write("<a href="""&getURL&"?iPage="&pageCount&CanShu&"""><img src='"&Gif&"next.gif' border='0'></a>"&vbcrlf)
.Write("<a href="""&getURL&"?iPage="&pageCount&CanShu&"""><img src='"&Gif&"end.gif' border='0'></a>"&vbcrlf)
Else
.Write("<a href="""&getURL&"?iPage="&(currentPage+1)&CanShu&"""><img src='"&Gif&"next.gif' border='0'></a>"&vbcrlf)
.Write("<a href="""&getURL&"?iPage="&pageCount&CanShu&"""><img src='"&Gif&"end.gif' border='0'></a>"&vbcrlf)
End IF
'//
.Write("转到:"&vbcrlf)
.Write("<select onChange=""window.open(this.options[this.selectedIndex].value,'_self')"">"&vbcrlf)
For i = 1 to pageCount
IF cint(CurrentPage)=cint(i) Then
sted = " selected"
Else
sted = ""
End IF
.Write("<option style='font-size:12px' value='"&getURL&"?iPage="&i&CanShu&"'"&sted&">第"&i&"页</option>"&VBCRLF)
Next
.Write("</select>")
End if
End With
End Sub
'结束类
End Class
使用: 必须先实例化对象
Set sql = New SQLExecute
1 如果想读取数据库中的News表中的信息
SQL = "Select * From News"
Rs = sql.GetData("Data.mdb",SQL)
如果已经先实现了Connection类,则直接可以 Rs = sql.GetRs(SQL)
2 如果想向News表中添加数据
Dim ArrayList[2]
ArrayList(0) = "美国总统大选"
ArrayList(1) = "内容............................"
ArrayList(2) = Now()
Dim SQL
SQL = "Select Title,Content,SubTime From News"
Call sql.InsertData(SQL,ArrayList)
3 后面的函数大家一个一个去测试
本文出自 “放平心态,尽能务职” 博客,转载请与作者联系!