您现在的位置是:网站首页> 编程资料编程资料
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("
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
复制代码 代码如下:
'----******************** 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 & "
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 & "
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 & "
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 & "
End If
On Error Goto 0
Case Else
cls_sErrInfo = cls_sErrInfo & "
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 & "
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 & "
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 & "
' 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 & "
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 & "
Exit Property
End If
cls_sSQL = Trim(a_sSQL)
End Property
'执行数据操作
Public Sub Execute()
If cls_sErrInfo <> "" Then
ShowError("
- " & Chr(10) & cls_sErrInfo & "
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 & "
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
点击排行
本栏推荐
