博客统计信息

用户名:zenglingjun
文章数:37
评论数:16
访问量:19534
无忧币:39
博客积分:238
博客等级:2
注册日期:2008-11-23

我的技术圈(0)

更多>>
ASP数据库操作的通用类
2008-11-25 08:14:49
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
使用:  必须先实例化对象
     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> 记录&nbsp;&nbsp;当前")
    .Write("<font color=red>"&cint(currentPage)&"</font>/"&pageCount&"&nbsp;页"&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 后面的函数大家一个一个去测试
       
本文来自免费试用网站长:(http://www.shiyongw.com/),转载请保留来源,谢谢~!
 
 

本文出自 “放平心态,尽能务职” 博客,转载请与作者联系!

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:Asp开发技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2008-11-25 23:26:52
当年也自学了一段asp,还编写了个人才网站,现在回想起来这个汗啊!

2011-01-09 12:59:35
不错了,不过少了错误机制,删除功能也没有

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: