一个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
%>

当前1/3页 123下一页阅读全文

(0)

相关推荐

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

    大部分ASP应用,都离不开对数据库的访问及操作,所以,对于数据库部分的访问操作,我们应该单独抽象出来,封装成一个单独的类.如果所用语言支持继承,可以封装一个这样的类,然后在数据操作层继承即可.下面是我写的一个ACCESS数据库访问的类,针对ACCESS作了优化,不过因为缺少足够的应用测试,可能仍然存在未知的bug及应用限制,主要代码如下: <% Class Oledb Private IDataPath Private IConnectionString Private Conn Private

  • 封装了一个Java数据库访问管理类

    复制代码 代码如下: package com.groundhog.codingmouse; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 数据库管理类 * @author CodingMouse * 2009.2.20 */ pub

  • asp.net Oracle数据库访问操作类

    复制代码 代码如下: using System;using System.Collections;using System.Collections.Specialized;using System.Data;using System.Data.OracleClient;using System.Configuration;using System.Data.Common;using System.Collections.Generic; /// <summary>    /// 数据访问抽象基

  • C#实现Access通用访问类OleDbHelper完整实例

    本文实例讲述了C#实现Access通用访问类OleDbHelper.分享给大家供大家参考,具体如下: 最近在做一个项目数据库用的是Access,第一次使用Access数据库,刚开始做有些不顺,数据库的操作和SqlServer稍有些不同,而异常跟踪得到的信息也没有什么意义,经过几天的反复寻找问题,总算解决了一些问题,为了访问Access 数据库,我写了一个用于专门访问的类来操作数据库,其中包括,执行数据库命令,返回 DataSet,返回单条记录,返回DataReader,通用分页方法等几个常用的的

  • C#实现的ACCESS数据库操作类完整实例

    本文实例讲述了C#实现的ACCESS数据库操作类.分享给大家供大家参考,具体如下: 这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下! using System; using System.Text; using System.Collections; using System.Collections.Specialized; using System.D

  • ASP.NET对SQLServer的通用数据库访问类

    本文模仿实现数据库访问的通用类,代码清晰,而且很实用,包括了对数据库的所有的常用的操作. /// <summary> /// 数据库访问通用类 /// </summary> public class SqlHelper { private string connectionString; /// <summary> /// 设定数据库访问字符串 /// </summary> public string ConnectionString { set { con

  • ACCESS数据库文件的压缩和修复方法[图文]

    先谈谈DllHotst进程消耗cpu 100%的问题: 服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降.查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了. 直接原因: 有一个或多个ACCESS数据库在多次读写过程中损坏, MDAC系统在写入这个损坏的ACCE

  • Access数据库升级为SQL数据库的注意事项和方法

    很多Access和SQL Server开发人员都经常面临着将一个Access数据库升级到SQL Server数据库的问题.由于存在现有的Access升级向导,这一转变的过程就会变得相当简单,尤其是当你建立一个与SQL Server数据相联系的ADP的时候.然而,向导并不是十全十美的,需要解决的问题还是大有存在. 首先,有些对象并不是简单的升级,所以这时你不得不人为地处理.第二,很多Access特性──比如一些查询类型,对象,以及特定的数据类型在你没有做好升级之前的准备的情况下就会导致错误的产生.

  • 用nodejs访问ActiveX对象,以操作Access数据库为例。

    起因 有人提问"如果用nodejs访问sql server?" 找了找资料,发现有两类解决方法,使用第三方nodejs插件:https://github.com/orenmazor/node-tds.使用ADODB.ConnectionActiveX对象. 参考: http://stackoverflow.com/questions/857670/how-to-connect-to-sql-server-database-from-javascript http://stackover

  • c#连接access数据库操作类分享

    1.配置web.config文件:配置数据库连接参数(根据实际情况设置数据库路径和密码) 复制代码 代码如下: <configuration><appSettings/><connectionStrings><add name="ConnectionString" connectionString="PRovider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\keleyi\App_Data\db.m

随机推荐