1. Option Explicit
  2. '--------------------------------------------------------
  3. '[Class Name]: DBHelper
  4. '[Description]: databse access class
  5. '--------------------------------------------------------
  6.  
  7. 'variable
  8. Private mConn As ADODB.Connection
  9. Private mIsOpen As Boolean
  10. Private mIsBeginTran As Boolean
  11. Private Const MAX_TIME_OUT As Integer = 'command timeoutunitsecond
  12.  
  13. '--------------------------------------------------------
  14. '[Function name]: OpenConnection
  15. '[Description]: DB connection
  16. '[Parameter]: (1)Server name (2)Database name (3)User name (4)Password
  17. '--------------------------------------------------------
  18. Public Sub OpenConnection(ByVal Server As String, ByVal Database As String, _
  19. ByVal Username As String, ByVal Password As String)
  20.  
  21. Dim connString As String
  22. connString = OleDbConnectionString(Server, Database, Username, Password)
  23.  
  24. Set mConn = New ADODB.Connection
  25. mConn.CommandTimeout = MAX_TIME_OUT
  26. mConn.Open connString
  27. mIsOpen = True
  28. End Sub
  29.  
  30. '--------------------------------------------------------
  31. '[Function name]: Dispose
  32. '[Description]: Dispose
  33. '--------------------------------------------------------
  34. Public Sub Dispose()
  35.  
  36. If mIsOpen Then
  37. mConn.Close
  38. End If
  39. mIsOpen = False
  40. Set mConn = Nothing
  41. End Sub
  42.  
  43. '--------------------------------------------------------
  44. '[Function name]: ExecuteNoQuery
  45. '[Description]: SQL execute
  46. '[Parameter]: (1)SQL statement
  47. '--------------------------------------------------------
  48. Public Sub ExecuteNoQuery(ByVal strSQL As String)
  49.  
  50. If mIsOpen Then
  51. mConn.Execute (strSQL)
  52. End If
  53. End Sub
  54.  
  55. '--------------------------------------------------------
  56. '[Function name]: ExecuteRecordset
  57. '[Description]: SQL excute
  58. '[Parameter]: (1)SQL
  59. '[Return Value]: ADODB.Recordset
  60. '--------------------------------------------------------
  61. Public Function ExecuteRecordset(ByVal strSQL As String) As ADODB.recordSet
  62.  
  63. Dim rs As New ADODB.recordSet
  64. If mIsOpen Then
  65. rs.CursorLocation = adUseClient
  66. rs.Open strSQL, mConn, adOpenForwardOnly, adLockReadOnly
  67. End If
  68.  
  69. Set ExecuteRecordset = rs
  70. End Function
  71.  
  72. '--------------------------------------------------------
  73. '[Function name]: BenginTrans
  74. '[Description]: begin trans
  75. '--------------------------------------------------------
  76. Public Sub BeginTrans()
  77.  
  78. If mIsOpen Then
  79. mConn.BeginTrans
  80. mIsBeginTran = True
  81. End If
  82. End Sub
  83.  
  84. '--------------------------------------------------------
  85. '[Function name]: CommitTrans
  86. '[Description]: commint trans
  87. '--------------------------------------------------------
  88. Public Sub CommitTrans()
  89.  
  90. If mIsOpen And mIsBeginTran Then
  91. mConn.CommitTrans
  92. mIsBeginTran = False
  93. End If
  94. End Sub
  95.  
  96. '--------------------------------------------------------
  97. '[Function name]: RollbankTrans
  98. '[Description]: rollback trans
  99. '--------------------------------------------------------
  100. Public Sub RollbackTrans()
  101.  
  102. If mIsOpen And mIsBeginTran Then
  103. mConn.RollbackTrans
  104. mIsBeginTran = False
  105. End If
  106. End Sub
  107.  
  108. '--------------------------------------------------------
  109. '[Function name]: OleDbConnectionString
  110. '[Description]: create DB conn string
  111. '[Parameter]: (1)server (2)database (3)username (4)password
  112. '[Return Value]: DB conn string
  113. '--------------------------------------------------------
  114. Private Function OleDbConnectionString(ByVal Server As String, ByVal Database As String, _
  115. ByVal Username As String, ByVal Password As String) As String
  116.  
  117. If Username = "" Then
  118. OleDbConnectionString = "Provider=SQLOLEDB.1;Data Source=" & Server _
  119. & ";Initial Catalog=" & Database _
  120. & ";Integrated Security=SSPI;Persist Security Info=False;"
  121. Else
  122. OleDbConnectionString = "Provider=SQLOLEDB.1;Data Source=" & Server _
  123. & ";Initial Catalog=" & Database _
  124. & ";User ID=" & Username & ";Password=" & Password & ";"
  125. End If
  126.  
  127. End Function
  128.  
  129. '--------------------------------------------------------
  130. '[Function name]: Class_Initialize
  131. '[Description]: class initialize
  132. '--------------------------------------------------------
  133. Private Sub Class_Initialize()
  134.  
  135. End Sub
  136.  
  137. '--------------------------------------------------------
  138. '[function name]: Class_Initialize
  139. '[description]: terminate
  140. '--------------------------------------------------------
  141. Private Sub Class_Terminate()
  142.  
  143. Call Dispose
  144. End Sub

vba的一个DB操作类的更多相关文章

  1. vba的一个File操作类

    Option Explicit '-------------------------------------------------------- '[Class name]: clsTxtFile ...

  2. Java-编写一个jdbc操作类

    1.通过读取文件配置 package 数据库操作类; /* * Db.java Created on 2007年8月20日, 上午 8:37 */ import java.io.*; import j ...

  3. 一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER

    最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库.读数据表.执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢. ADO ...

  4. 51)PHP,一个数据库操作类的代码

    <?php //类名,也习惯上(推荐)使用跟文件名相似的名字 //定义一个mysql连接类,该类可以连接mysql数据库 //并实现其单例模式 //该类的功能还能够完成如下基本mysql操作: ...

  5. python学习1-博客-DB操作类

    #学习python,准备写一个博客,第一天:在别人代码基础上写一个数据库操作的db.py1)python代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- ...

  6. 一个端口操作类PortHelper

    此操作类主要使用了系统命令行来实现的,详细的命令可参照微软文档<如何使用"netsh advfirewall firewall"上下文而非“netsh firewall”上下 ...

  7. 封装一个redis操作类来操作hash格式

    最近项目要用redis,依然是基于tp3.2. 发现thinkphp3.2自带的缓存类并不好使用,就自己封装了一个 目前只支持hash格式,其他数据类型的操作后面用到的时候再补充 <?php / ...

  8. C#封装的一个JSON操作类

    using System; using System.Collections.Generic; using System.Collections; using System.Text; using S ...

  9. Android打造属于自己的数据库操作类。

    1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要 ...

随机推荐

  1. java 中获得 资源文件方法

    1 java 中获取资源文件的方法 项目目录如下 获取当前项目的目录路径 方法一:使用类名 MergeDocHandler.class.getClassLoader().getResource(&qu ...

  2. 在springboot 和 mybatis 项目中想要显示sql 语句进行调试

    在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增: logging.level.com.dy.springboot.server.mapper= ...

  3. curl以cookie的方式登录

    curl -o /dev/null -s -w ‘%{time_connect}:%{time_starttransfer}:%{time_total}’ --cookie "UM_dist ...

  4. Hudson基本工作原理

    从SVN下载代码到hudson服务器本地  ->  将SVN下载的源代码,利用maven[maven依赖pom.xml]或者ant[ant依赖build.xml]打包(war包),pom.xml ...

  5. SVN不显示对号的解决方法

    具体操作方法如下: 1.到C:\Windows文件夹下,打开regedit.exe 2.Ctrl+F,搜索“ShellIconOverlayIdentifiers” 3.将TortoiseAdded. ...

  6. 译:1. 初识 Apache Axis2

    欢迎使用Apache Axis2 / Java Apache Axis2 是一个Web Service  SOAP / WSDL 引擎,它被广泛用于Apache Axis SOAP 栈. Apache ...

  7. Umeng社会化组件使用笔记

    1.申请umeng账号 2.下载umeng sdk,并且阅读友盟开放文档 3.申请各开放平台的账号,获取appid .appkey.appsecret:注意,这里需要配置安全域名sns.whalecl ...

  8. 根据第三方提供的webservice地址获取文件信息

    import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.en ...

  9. tar.xz文件格式的压缩与解压

    从网上下载了一个man的安装文件,格式为tar.xz,默认下载到当前目录下 //下载man源码并以原文件名保存,如果要指定保存的文件名用小写-o name指定 curl -O https://www. ...

  10. vss整合配置连接到Myeclipse中以及中文配置

    配置过很久后 再次配置进行记录以免后续备用 1.下载vss插件和安装vss插件 org.vssplugin_1.6.2 解压到myeclipse 安装路径文件夹C:\MyEclipse 8.5\dro ...