程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> asp能用數據庫操作類

asp能用數據庫操作類

編輯:關於ASP編程

      Sub DeleteObject(ByRef obj)
            Set obj = nothing
            obj = null
        End Sub
       
        Class CDB
            private m_oConn, m_oRS
            private m_pageIndex, m_pageSize, m_pageCount, m_recordCount
                                   
            private strError
            private m_QueryString
           
            private Sub Class_Initialize()
                m_oConn = null
                m_oRS = null
       
                m_pageIndex = 1
                m_pageSize = 10
                m_pageCount = 1
                m_recordCount = 0
                Call connect()
             End Sub
           
            private property Get GetConnectionString()
                  if InStr(LCase(Request.ServerVariables("SCRIPT_NAME")), "/admin/") > 0 then
                     GetConnectionString = "Provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("DataBasedata.mdb")
                 else
                     GetConnectionString = "Provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("AdminDataBasedata.mdb")
                 end if
             end property
           
             public property Let SetPageSize(num)
                  if Not isNumeric(num) then Exit property         
                  num = CInt(num)
                  if num > 0 Then m_pageSize = num
             End property

             'object.AppendSearch(paraName) = paraValue
             public property Let AppendQueryString(paraName, paraValue)
                m_QueryString = m_QueryString & "&"    & paraName & "=" & Server.URLEncode(paraValue)   
             end property
           
             public property Let SetPageIndex(num)   
                  if Not isNumeric(num) then Exit property               
                  num = CInt(num) 
                  if num > 0 then m_pageIndex = num
             End property
           
             public default function toString()
                 toString = strError
             end function
           
             private sub Connect()                
                Set m_oConn = Server.CreateObject("ADODB.Connection")
                m_oConn.ConnectionString  = GetConnectionString
                m_oConn.Open()
                if err then
                    strError = err.Description
                    Response.write("Sorry, failed to connect Database!")
                    err.Clear()
                    DeleteObject(m_oConn)
                    Response.End()
                end if
             end sub
           
             private sub Close(ByRef DBObject)
                 if 1 = DBObject.state then Call DBObject.Close()
             end sub
           
             public function ExecuteScalar(strSql)
                  ExecuteScalar = m_oConn.Execute(strSql)(0)
             end function
           
             public sub Execute(ByVal strSql)
                  if (Not isObject(m_oConn)) then Exit Sub
                  m_oConn.Execute(strSql)
             end sub
           
             private function OpenRS()
                 OpenRS = false
                if ((Not isObject(m_oConn)) Or m_oConn.State = 0) then  exit function
               
                if (isObject(m_oRS)) then
                       if 1 = m_oRS.State then Call m_oRS.Close()
                else
                    Set m_oRS = Server.CreateObject("ADODB.RecordSet")
                end if
                OpenRS = true            
             end function
           
             public function GetData(ByVal strSql)
                if not OpenRS() then
                    GetData = null
                    exit function
                end if       
                call m_oRS.Open(strSql, m_oConn, 1, 1)
               
                if m_oRS.EOF then
                    GetData = null
                else
                    GetData = m_oRS.GetRows()                           
                end if
                m_oRS.Close()   
             end function
           
             public function GetMultPageData(ByVal strSQL)
               if Not OpenRS() then
                   GetMultPageData = null
                   exit function
               end If
              
               Call m_oRS.Open(strSQL, m_oConn, 1, 1)
                            
               if m_oRS.EOF then
                GetMultPageData = null
               else
                m_oRS.PageSize = m_pageSize
                m_recordCount = m_oRS.RecordCount
                m_pageCount = m_oRS.PageCount       
                if (m_pageIndex > m_pageCount) then m_pageIndex = m_pageCount
                m_oRS.AbsolutePage = m_pageIndex
                GetMultPageData = m_oRS.GetRows(m_pageSize)
               end if
                 
               Call m_oRS.Close()
             end function
           
             public function PageInfo(style)
                 Dim sHtml : set sHtml = new StringBuild
                 sHtml.SetValue = "<div id=""divPageNav"">"
                 call sHtml.AppendFormat("<label>共:{0}記錄,當前:{1}/{2}:</label>", Array(m_recordCount, m_pageIndex, m_pageCount))
                 Select Case style
                     Case 1 :     if 1 = m_pageIndex then
                                    call sHtml.Append("<span>首頁</span><span>上頁</span>")
                                else
                                    call sHtml.AppendFormat("<a href=""?page=1{0}"">首頁</a><a href=""?page={1}{0}"">上頁</a>", Array(m_QueryString,m_pageIndex - 1))
                                end if
                                if m_pageCount = m_pageIndex then
                                    call sHtml.Append("<span>下頁</span><span>尾頁</span>")
                                else
                                    call sHtml.AppendFormat("<a href=""?page={1}{0}"">下頁</a><a href=""?page={2}{0}"">尾頁</a>", Array(m_QueryString, m_pageIndex + 1, m_pageCount))
                                end if
                    Case 2 :     dim interval, startPage, endPage, i
                                interval = 5
                                startPage = m_pageIndex - interval
                                if  startPage < 1 then startPage = 1
                                endPage = startPage + 2 * interval
                                if  endPage > m_pageCount then endPage = m_pageCount
                                startPage = endPage - 2 * interval
                                if  startPage < 1 then startPage = 1
                               
                                if 1 = m_pageIndex then
                                    call sHtml.Append("<span style=""font-family: Webdings;"">9</span><span style=""font-family: Webdings;"">7</span>")
                                else
                                    call sHtml.AppendFormat("<a href=""?page=1{0}"" style=""font-family: Webdings;"">9</a><a href=""?page={1}{0}"" style=""font-family: Webdings;"">7</a>", Array(m_queryString, CStr(m_pageIndex - 1)))
                                end if
                                for i = startPage to m_pageIndex-1
                                    call sHtml.AppendFormat("<a href=""?page={1}{0}"">{1}</a>", Array( m_queryString, CStr(i)))
                                next
                                call sHtml.Append("<span>" & m_pageIndex & "</span>")
                                for i = m_pageIndex+1 to endPage
                                    call sHtml.AppendFormat("<a href=""?page={1}{0}"">{1}</a>", Array( m_queryString, CStr(i)))
                                next
                               
                                if m_pageCount = m_pageIndex then
                                    sHtml.Append("<span style=""font-family:Webdings;"">8</span><span style=""font-family:Webdings;"">:</span>")
                                else
                                    call sHtml.AppendFormat("<a href=""?page={1}{0}"" style=""font-family: Webdings;"">8</a><a href=""?page={2}{0}"" style=""font-family: Webdings;"">:</a>", Array(m_queryString,m_pageIndex+1,m_pageCount))
                                end if
                 end Select
                 call sHtml.Append("</div>")
                 PageInfo = sHtml
                 DeleteObject(sHtml)
             end function
           
             private Sub Class_Terminate()
                  Close(m_oRS)
                Close(m_oConn)
                DeleteObject(m_oRS)
                DeleteObject(m_oConn)
             End Sub
        end Class
       
        dim i, oDB, arrData : set oDB = new CDB
    oDB.SetPageSize = 2
    oDB.SetPageIndex = Request.QueryString("page")
    arrData = oDB.GetMultPageData("SELECT [TITLE] FROM [CLASS]")
    for i = 0 to ubound(arrData, 2)
        echo(arrData(0, i) & "<br/>")
    next
    echo(oDB.PageInfo(1))
    DeleteObject(oDB)

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved