您现在的位置是:网站首页> 编程资料编程资料

CJJ专用ASP类库中的某个class_应用技巧_

2023-05-25 168人已围观

简介 CJJ专用ASP类库中的某个class_应用技巧_

作为程序员,相信每个人都有自己的函数库及类库。在做项目时,从库里面提取想要的函数及类。这样可以提高开发效率。CJJ专用ASP类库中的某个class
复制代码 代码如下:

  '----******************** TConnString *****************************----
  '数据库连接字符串结构体
  Class TConnString
      Public DBName,DBPath,DBServer,DBUser,DBPass,DBType
  End Class
  '----******************** TConnString *****************************----

  '----********************* TDBOperate *****************************----
  '通用数据库操作类
  Class TDBOperate
      Private cls_oConn,cls_oRS '类私有Connection对象、RecordSet对象
      Private cls_sErrInfo,cls_sConn,cls_sSQL,cls_sURL,cls_sFormAction
      Private cls_iPageSize '分页数
      Private cls_lTotalPage,cls_lTotalRecord,cls_lPageNo

      '类初始化
      Private Sub Class_Initialize()
      End Sub

      '*****************************************
      ' 类型:    属性
      ' 目的:    根据获取的Connection String,创建数据库连接
      ' 输入:    a_sConn:数据类型字符串
      ' 返回:    无
      '*****************************************
      Public Property Let SetConn(a_sConn)
          Dim sObjType


          sObjType = LCase(TypeName(a_sConn))
          If sObjType <> "string" Then
              cls_sErrInfo = cls_sErrInfo & "
  • SetConn:非法的字符串参数
  • " & Chr(10)
                  Exit Property
              End If

              Set cls_oConn = CreateObject("Adodb.Connection")
              On Error Resume Next
              cls_oConn.Open a_sConn
               If Err Then
                  Err.Clear
                  Set cls_oConn = Nothing
                  On error goto 0
                  cls_sErrInfo = cls_sErrInfo & "
  • 数据库连接出错
  • " & Chr(10)
              End If
              On Error Goto 0
          End Property

          '*****************************************
          ' 类型:    属性
          ' 目的:    根据获取的Connection对象,创建数据库连接
          ' 输入:    a_oConn:数据类型字符串
          ' 返回:    无
          '*****************************************
          Public Property Set SetConn(a_oConn)
              Dim sObjType,sConn
              Dim oConnStr

              sObjType = LCase(TypeName(a_oConn))

              Select Case sObjType
              Case "connection"
                  '设置Connection对象
                  Set cls_oConn = a_oConn
              Case "tconnstring"
                 sConn = ""
                 Set oConnStr = a_oConn
                 Select Case (oConnStr.DBType)
                 Case gbl_iDB_Access
                      sConn = "Provider = micorsoft.jet.oledb.4.0; User ID = " & oConnStr.DBUser & "; Password = " & Replace(oConnStr.DBPass, Chr(0), "") & ";Initial Catalog = " & oConnStr.DBName & "; Data Source = " & SqlLocalName & ";"
                  Case gbl_iDB_MsSQL
                      sConn = "Provider = Sqloledb; User ID = " & oConnStr.DBUser & "; Password = " & Replace(oConnStr.DBPass, Chr(0), "") & ";Initial Catalog = " & oConnStr.DBName & "; Data Source = " & oConnStr.DBServer & ";"
                  End Select

                  If sConn = "" Then
                      cls_sErrInfo = cls_sErrInfo & "
  • 数据库连接对象出错,无法创建Connection对象
  • " & Chr(10)
                      Exit Property
                  End If

                 '设置Connection连接串值,供ConnStr属性返回
                  cls_sConn = sConn

                  Set cls_oConn = CreateObject("Adodb.Connection")
                  On Error Resume Next
                  cls_oConn.Open sConn
                   If Err Then
                      Err.Clear
                      Set cls_oConn = Nothing
                      cls_sErrInfo = cls_sErrInfo & "
  • 数据库连接出错
  • " & Chr(10)
                  End If
                  On Error Goto 0
              Case Else
                  cls_sErrInfo = cls_sErrInfo & "
  • SetConn:非法的对象参数
  • " & Chr(10)
                  Exit Property
              End Select
          End Property

          '*****************************************
          ' 类型:    属性
          ' 目的:    设置RecordSet对象
          ' 输入:    a_sSQL:   SQL语句。
          ' 返回:    无。
          '*****************************************
          Public Property Let SetRS(a_sSQL)
              If LCase(TypeName(cls_oConn)) <> "connection" Then
                  cls_sErrInfo = cls_sErrInfo & "
  • 非法的Connection对象,无法创建RecordSet对象
  • " & Chr(10)
                  Exit Property
              End If

              cls_sSQL = a_sSQL

              '创建RecordSet对象
              Set cls_oRS = CreateObject("Adodb.RecordSet")


    '          On Error Resume Next
              cls_oRS.Open cls_sSQL,cls_oConn,1,1
    '          On Error Goto 0
          End Property

          '*****************************************
          ' 类型:    属性
          ' 目的:    设置RecordSet对象
          ' 输入:    a_oRS:   RecordSet对象
          ' 返回:    无。
          '*****************************************
          Public Property Set SetRS(a_oRS)
              If LCase(TypeName(a_oRS))<>"recordset" Then
                  cls_sErrInfo = cls_sErrInfo & "
  • 非法的RecordSet对象
  • " & Chr(10)
                  Exit Property
              End If

              '设置RecordSet对象
              Set cls_oRS = a_oRS
          End Property

          '*****************************************
          ' 类型:    属性
          ' 目的:    设置RecordSet对象
          ' 输入:    a_oRS:   RecordSet对象
          ' 返回:   返回一RecordSet对象
          '*****************************************
          Public Property Get GetRS()
              Set GetRS = cls_oRS
          End Property

          '获取Connection对象
          Public Property Get GetConn()
              If cls_sErrInfo <> "" Then
                  Call ShowError()
              End If

              If LCase(TypeName(cls_oConn))<>"connection" Then
                  cls_sErrInfo = cls_sErrInfo & "
  • Connection对象获取失败
  • "
    '              Exit Property              
              End If

              Set GetConn = cls_oConn
          End Property

          '返回数据库连接字符串
          Public Property Get ConnStr
              ConnStr = cls_sConn
          End Property

          '设置第个页面显示的数据数
          Public Property Let PageSize(a_iPageSize)
              If Not IsNumeric(a_iPageSize) Then
                  cls_sErrInfo = cls_sErrInfo & "
  • 无效的分页记录数参数
  • " & Chr(10)
                  Exit Property
              End If

              cls_iPageSize = a_iPageSize
          End Property

          '设置SQL语句,用于建立RecordSet对象
          Public Property Let SQL(a_sSQL)
               If IsNone(a_sSQL) Then
                  cls_sErrInfo = cls_sErrInfo & "
  • 没有设置SQL,无法创建RecordSet对象
  • " & Chr(10)
                  Exit Property
              End If

              cls_sSQL = Trim(a_sSQL)
          End Property

          '执行数据操作
          Public Sub Execute()
              If cls_sErrInfo <> "" Then
                  ShowError("
      " & Chr(10) & cls_sErrInfo & "
    " & Chr(10))
                  Exit Sub
              End If

              If LCase(TypeName(cls_oConn))="connection" Then
                  If IsNumeric(cls_iPageSize) Then
                      Set cls_oRS =  CreateObject("Adodb.RecordSet")
                      cls_oRS.Open cls_sSQL,cls_oConn,1,1
                  Else
                  End If
              Else
                  cls_sErrInfo = cls_sErrInfo & "
  • 非法的Connection对象
  • " & Chr(10)
              End If
          End Sub

          '*****************************************
          ' 类型:    属性
          ' 目的:    设定或显示URL。
          ' 输入:    a_sURL:   需要分页的文件地址。
          ' 返回:    无
          '*****************************************
          Public Property Let URL(ByVal a_sURL)
              cls_sURL = a_sURL
          End Property

          '*****************************************
          ' 类型:    过程
          ' 目的:    统计总记录数、计算总页数
          ' 输入:    无
          ' 返回:    无
          '*****************************************
          Private Sub Pagination(ByVal a_sStr)
              Dim iPosition,cls_sErrInfo,i,oRS_Temp,lTotalRecord

              If cls_sErrInfo <> "" Then
                 Call ShowErrors()
                 Exit Sub
              End If

              If cls_oRS.Eof And cls_oRS.Bof Then
                 cls_sErrInfo = cls_sErrInfo & "
  • 库中无任何记录
  • "
              End If

              '计算总计录数
              Select Case LCase(TypeName(a_sStr))
              Case "string"
                   Set oRS_Temp = cls_oConn.Execute(a_sStr)
                   lTotalRecord = CLng(oRS_Temp(0).Value)
              Case "integer"
                  Select Case (Int(Trim(a_sStr)))
                  Case gbl_iPagination_UseRcdCount '使的RecordCount方法进行分页
                      lTotalRecord = cls_oRS.RecordCount
                  Case gbl_iPagination_UsePgCount  '使用PageCount方法进行分页
                      lTotalRecord = cls_oRS.PageCount * cls_iPageSize
                  End Select
              End Select

              cls_lTotalRecord = lTotalRecord
              If (cls_lTotalRecord<=2147483647 AND cls_lTotalRecord>=-2147483648) Then
                  cls_lTotalRecord = CLng(cls_lTotalRecord)
              Else
                  cls_lTotalRecord = 2147483647
              End If

              If cls_lTotalRecord <0 Then
                  cls_lTotalRecord = 0
              End If

              '计算总页数
              If cls_lTotalRecord Mod cls_iPageSize = 0 Then
                  cls_lTotalPage = CLng(cls_lTotalRecord \ cls_iPageSize * -1)*-1
              Else
                  cls_lTotalPage = CLng(cls_lTotalRecord \ cls_iPageSize * -1)*-1 + 1
              End If

              '获取当前页参数
              cls_lPageNo = Trim(Request.QueryString("Page"))
              If cls_lPageNo = "" Then
          

    -六神源码网