(原创)SQL和ACCESS数据库连接管理类

原创 2004年08月19日 10:06:00

今天无事.随便写了这个类.这个类很简单,但也很实用,以后只要直接包含这个类文件进需要的文件去然后就可以随时更改数据库的类型了.

<%
'==============================================================
'类名:DBaseClass
'用途:可以根据用户参数返回SQL或ACCESS的Connection对象
'用法:
'(Access数据库)
' set dbclass=new DBaseClass 
' dbclass.dbtype="Access"     设置为Access数据库类型 (默认为Access数据库类型)
' dbclass.dbpath="data/data.mdb"  设置Access数据库文件地址
' set rs=dbclass.getrs("select * from [user]")  返回执行SQL语句后的rs对象
' set conn=dbclass.getconn()       返回conn对象
' set rs=dbclass.getbasers()       返回空的Recordset对象
'(SQL数据库)
' dbclass.dbtype="sql"        设置为SQL数据库  (默认为Access数据库类型)
' dbclass.sqlusername="test"    设置登录数据库的用户名(默认是sa用户)
' dbclass.sqlpassword="1010"    设置登录数据库的用户密码(默认为空)
' dbclass.sqldatabasename="user"设置SQL数据库的库名
' dbclass.sqllocalname="192.168.0.1" 设置SQL数据库的服务器地址(默认为本机地址)
' set rs=dbclass.getrs("select * from [user]")  返回执行SQL语句后的rs对象
' set conn=dbclass.getconn()       返回conn对象
' set rs=dbclass.getbasers()       返回空的Recordset对象
' set dbclass=nothing              关闭对象
'================================================================
Class DBaseClass
'数据库驱动程序连接字符串变量
Dim D_ConnStr
'Access数据库文件的路径
Dim D_dbPath
'SQL数据库的设置变量
Dim D_SqlDatabaseName,D_SqlPassword,D_SqlUsername,D_SqlLocalName
'Conn对象
Dim D_Conn,D_Rs
'数据库驱动类型
'值:"1","A" "a" "Access" "access" 则为Access数据库驱动连接对象
'值:"2","S" "s" "SQL" "sql" 则为SQL数据库驱动连接对象
Dim D_DbType
'======================================
'函数名:被始化类
'======================================
Private Sub Class_Initialize
  '默认是Access数据库
  D_DbType="Access"
  D_SqlUsername="sa"
  D_SqlPassword=""
  D_SqlLocalName="(local)"
End Sub

'======================================
'函数名:注销类
'======================================
Private Sub Class_Terminate
on error resume next
 if isObject(D_Rs) then
   D_Rs.close
   set D_Rs=nothing
 end if
 if isObject(D_Conn) then
   D_Conn.close
   set D_Conn=nothing
 end if
End Sub

Public Property Let dbType(bNewValue)
 Select case lcase(cstr(bNewValue))
   case "1","a","access"
      D_DbType = "Access"
   case "2","s","sql"
      D_DbType="SQL"
   case else
      D_DbType="Access"
 End select
End Property
Public Property Get dbType
 dbType =D_DbType
End Property

'ACCESS数据连接的几个属性变量的赋值操作
Public Property Let dbPath(bNewValue)
 D_dbPath = bNewValue
End Property
Public Property Get dbPath
 dbPath =D_dbPath
End Property

'SQL数据连接的几个属性变量的赋值操作
Public Property Let SqlDatabaseName(bNewValue)
 D_SqlDatabaseName = bNewValue
End Property
Public Property Get SqlDatabaseName
 SqlDatabaseName =D_SqlDatabaseName
End Property

Public Property Let SqlPassword(bNewValue)
 D_SqlPassword = bNewValue
End Property
Public Property Get SqlPassword
 SqlPassword =D_SqlPassword
End Property

Public Property Let SqlUsername(bNewValue)
 D_SqlUsername = bNewValue
End Property
Public Property Get SqlUsername
 SqlUsername =D_SqlUsername
End Property

Public Property Let SqlLocalName(bNewValue)
 D_SqlLocalName = bNewValue
End Property
Public Property Get SqlLocalName
 SqlLocalName =D_SqlLocalName
End Property

'==============================================
'函数功能:获取数据库Connection对象
'说明:
'返回值:数据库Connection对象
'==============================================
Public Function getConn()
on error resume next
 if isObject(D_Conn) and not isNull(D_Conn) then
    getConn=D_Conn
 exit function
 end if
 Set D_Conn= Server.CreateObject("ADODB.Connection")
 D_Conn.Open getConnStr()
 if err.number>0 then
   err.clear
   set D_Conn=nothing
   getConn=null
   exit function
 end if
 set getConn=D_Conn
End Function

'==============================================
'函数功能:获取数据库RecordSet对象
'说明:此函数获得的RecordSet对象同Connection对象的execute执行方法一样
'参数:SqlStr  执行的SQL语言
'返回值:数据库RecordSet对象
'==============================================
Public Function getRs(SqlStr)
if SqlStr="" then
 getRs=null
 exit function
end if
Set getRs=getConn().execute(SqlStr)
End Function

'==============================================
'函数功能:获取数据库RecordSet对象
'说明:此函数获得的RecordSet对象建立RecordSet对象一样
'返回值:数据库RecordSet对象
'==============================================
Public Function getBaseRs()
 if isObject(D_Rs) and not isNull(D_Rs) then
   set getDbRs=D_Rs
   exit function
 else
   set D_Rs = server.CreateObject("ADODB.Recordset")
 end if
 Set getDbRs=D_Rs
End Function

'==============================================
'函数功能:获取数据库连接驱动字符串
'说明:此函数是根据D_dbType变量得到不到的字符串
'返回值:数据库连接驱动字符串
'==============================================
Private Function getConnStr()
  Select case D_DbType
      case "Access"
     getConnStr=getAccessConnStr()
   case "SQL"
        getConnStr=getSqlConnStr()
   case else
     getConnStr=""
  end Select
End Function

'==============================================
'函数功能:获取Access数据库连接驱动字符串
'说明:此函数是根据D_DbPath变量得到字符串
'返回值:Access数据库连接驱动字符串
'==============================================
Private Function getAccessConnStr()
  if D_DbPath<>"" then
    getAccessConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(D_DbPath)
  else
    getAccessConnStr=""
  end if
End Function

'==============================================
'函数功能:获取SQL数据库连接驱动字符串
'说明:此函数是根据D_SqlDatabaseName和D_SqlUsername和D_SqlPassword和D_SqlLocalName变量得到字符串
'返回值:SQL数据库连接驱动字符串
'==============================================
Private Function getSqlConnStr()
  if D_SqlDatabaseName<>"" then
    getSqlConnStr = "Provider = Sqloledb; User ID = " & D_SqlUsername & "; Password = " & D_SqlPassword & "; Initial Catalog = " & D_SqlDatabaseName & "; Data Source = " & D_SqlLocalName & ";"
  else
    getSqlConnStr=""
  end if
End Function

End Class
%>

轻松教你SQL转ACCESS

SQL数据库转access数据库步骤: 1.      建立access数据库:在access中建立access数据库和表,access字段类型与sql中字段类型的对应关系。 2.        ...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年04月13日 00:59
  • 2278

SQL Server数据导入到Access数据库

 将Access数据库数据导入到SQL Server 2005 第一步,开启SQLSERVER 2000服务管理,打开“企业管理器”,新建一个数据库,名称为“Access数据转换”; ...
  • liyanping521
  • liyanping521
  • 2014年12月19日 14:05
  • 1983

SQL Server、Access、Oracle数据库之优缺点对比

导读: 1、SQL Server是一个关系数据库管理系统。 2、ACCESS是由微软发布的关联式数据库管理系统。 3、Oracle是基于服务器的大型数据库。...
  • dtjiawenwang88
  • dtjiawenwang88
  • 2017年07月03日 22:31
  • 533

将ACCESS数据库迁移到SQLSERVER数据库方法(图文详解)

本人在做专业课设计时需要将自己动手把ACCESS数据库中数据转换到SQL Server数据库中。经过百般挫折也算是完成了,经过这般痛苦感觉,还是记录下来比较好,否则都对不起自己浪费的那好几个小时。废话...
  • aiming66
  • aiming66
  • 2016年12月31日 16:04
  • 5545

将ACCESS数据库数据转到SQL server数据库中(通用)

把ACCESS数据库转换成SQL server数据库,ACCESSH和SQL server都有很多不同的版本,但是转换也都大同小易,和这里我给大家说说最常见的怎么将ACCESS转化成SQL serve...
  • yecats
  • yecats
  • 2015年09月27日 15:36
  • 1042

高效率的Access\MSSQL分页的SQL语句

采用Access数据库有许多优点,比如数据库无须专门的数据库空间,使用,备份,迁移也非常方便。 但一旦数据量到达上万条,上十万条甚至更多的时候,ACCESS的大数据量的列表分页效率问题就出现了。 ...
  • qq269228887
  • qq269228887
  • 2013年10月31日 11:49
  • 703

Access 与SQL数据类型

Access 数据类型与 MS SQL 数据类型相对应名称文本 nvarchar(n) 备注 ntext 数字(长整型) int 数字(整型) smallint 数字(单精度) real 数字(双精度...
  • qq37724861
  • qq37724861
  • 2016年06月16日 15:52
  • 880

sql server 连接带密码的access

sql server 导入带密码的access数据 如何实现将Access的数据的导入到SQL Server呢,相信网络上有很多教程来帮助大家了。但是,大家发现如果access文档使用了密码加...
  • xcntime
  • xcntime
  • 2014年03月16日 01:23
  • 1373

SQL Server和Access中的条件判断语法(case when和iff)

很多时候为了程序的可扩展性和准确性等我们会在数据库中把对应bool类型或string类型的字段设置为int型。但是在程序中显示的时候我们希望能显示用户友好的内容,这个时候我们就需要把查找到的结果转换成...
  • jumtre
  • jumtre
  • 2013年06月28日 18:08
  • 8390

Access 导入SQL 注意事项

1,对于日期字段字段  access表示为:#1981-28-12#  SQLSERVER2000表示为:''1981-02-12''  2,SQL语句区别,select ,update 在对单表操作...
  • qq37724861
  • qq37724861
  • 2016年06月16日 15:51
  • 543
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(原创)SQL和ACCESS数据库连接管理类
举报原因:
原因补充:

(最多只允许输入30个字)