作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 09:04:16 阅读 我要评论

大部分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 %>

  推荐阅读

  XSS测试语句大全

'><script>alert(document.cookie)</script> ='><script>alert(document.cookie)</script> <script>alert(document.cookie)</script> <script>alert(vulnerable)</script> %3Cscript%3Ealert('XSS')%3C/script%3E >>>详细阅读


本文标题:一个ACCESS数据库访问的类第1/3页

地址:http://www.17bianji.com/kaifa2/ASP/33223.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)