• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    一个ACCESS数据库访问的类第1/3页
    大部分ASP应用,都离不开对数据库的访问及操作,所以,对于数据库部分的访问操作,我们应该单独抽象出来,封装成一个单独的类。如果所用语言支持继承,可以封装一个这样的类,然后在数据操作层继承即可。下面是我写的一个ACCESS数据库访问的类,针对ACCESS作了优化,不过因为缺少足够的应用测试,可能仍然存在未知的bug及应用限制,主要代码如下:
    %
    Class Oledb Private IDataPath
    Private IConnectionString Private Conn
    Private Cmd
    Private Param
    Private Rs Public Property Let DataPath(ByVal Value)
    IDataPath = Value
    IConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "  Server.MapPath(IDataPath)
    End Property Public Property Get DataPath()
    DataPath = IDataPath
    End Property Public Property Let ConnectionString(ByVal Value)
    IConnectionString = Value
    End Property Public Property Get ConnectionString()
    ConnectionString = IConnectionString
    End Property Public Function OpenConn()
    If Conn.State = adStateClosed Then
    Conn.Open ConnectionString
    End If
    Set OpenConn = Conn
    End Function Public Function Insert(ByVal Sql, ByVal Values)
    OpenConn()
    Rs.Open Sql, Conn, 3, 3, adCmdText
    Rs.AddNew
    Dim i, l
    l = UBound(Values)
    For i = 1 To l + 1
    Rs(i) = Values(i - 1)
    Next
    Rs.Update
    Insert = Rs(0)
    End Function Public Function Execute(ByVal Sql)
    OpenConn()
    Set Execute = Conn.Execute(Sql)
    End Function Public Function ExecuteScalar(ByVal Sql)
    Dim iRs : Set iRs = Execute(Sql)
    If Not iRs.BOF Then ExecuteScalar = iRs(0)
    End Function Public Function ExecuteNonQuery(ByVal Sql)
    OpenConn()
    Call Conn.Execute(Sql, ExecuteNonQuery)
    End Function Public Function InsertSp(ByVal Sql, ByVal Params)
    OpenConn()
    Rs.Open Sql, Conn, 3, 3, adCmdStoredProc
    Rs.AddNew
    Dim i, l
    l = UBound(Params)
    For i = 1 To l + 1
    Rs(i) = Params(i - 1)
    Next
    Rs.Update
    InsertSp = Rs(0)
    End Function Public Function ExecuteSp(ByVal SpName, ByVal Params)
    With Cmd
    Set .ActiveConnection = OpenConn()
    .CommandText = SpName
    .CommandType = H0004
    .Prepared = True
    Set ExecuteSp = .Execute(,Params)
    End With
    End Function Public Function ExecuteDataTableSp(ByVal SpName, ByVal Params)
    OpenConn()
    If Rs.State > adStateClose Then
    Rs.Close()
    End If
    Dim SpStr
    If IsNull(Params) Or IsEmpty(Params) Then
    SpStr = SpName
    Else
    If IsArray(Params) Then
    SpStr = "Execute "  SpName  " "  Join(Params, ",")
    Else
    SpStr = "Execute "  SpName  " "  Params
    End If
    End If
    Call Rs.Open(SpStr, Conn, 1, 1, adCmdStoredProc)
    Set ExecuteDataTableSp = Rs
    End Function Public Function ExecuteScalarSp(ByVal SpName, ByVal Params)
    Dim iRs : Set iRs = ExecuteSp(SpName, Params)
    If Not iRs.BOF Then ExecuteScalarSp = iRs(0)
    End Function Public Function ExecuteNonQuerySp(ByVal SpName, ByVal Params)
    With Cmd
    Set .ActiveConnection = OpenConn()
    .CommandText = SpName
    .CommandType = H0004
    .Prepared = True
    Call .Execute(ExecuteNonQuerySp, Params)
    End With
    End Function Private Sub Class_Initialize()
    Set Conn = Server.CreateObject("ADODB.Connection")
    Set Cmd = Server.CreateObject("ADODB.Command")
    Set Param = Server.CreateObject("ADODB.Parameter")
    Set Rs = Server.CreateObject("ADODB.RecordSet")
    DataPath = "/data/data.mdb" '这里写你的数据库默认路径,建议更改名称及扩展名
    End Sub
    Private Sub Class_Terminate()
    Set Param = Nothing
    Set Cmd = Nothing
    CloseRs()
    CloseConn()
    End Sub Private Sub CloseConn()
    If Conn.State > adStateClose Then
    Conn.Close()
    Set Conn = Nothing
    End If
    End Sub Private Sub CloseRs()
    If Rs.State > adStateClose Then
    Rs.Close()
    Set Rs = Nothing
    End If
    End Sub End Class
    %> 
    123下一页阅读全文
    上一篇:ASP 类 Class入门
    下一篇:ASP操作Excel技术总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    一个ACCESS数据库访问的类第1/3页 一个,ACCESS,数据库,访问,