'数据源信息常量
 Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initial Catalog = StudentFiles; Data Source = localhost"

Public Const CONNECT_LOOP_MAX = 10  '一次执行connect操作,可以访问数据库的次数

Private IsConnect As Boolean  '标记数据库是否连接

Private Connect_Num As Integer  '标记执行Connect()函数后访问数据的次数

Private cnn As ADDODB.Connection '连接数据库的Connect对象
 
 Private re As ADDODB.Recordset  '保存结果集的Recordset对象

//连接数据库
 Private Sub Connect()
 ’如果连接标记为真,则返回。
  IF IsConnect = True Then 
     Exit Sub
  End If

Set cnn = New ADODB.Connection '关键new用于创建新对象cnn
  
  cnn.ConnectionString = conn
  
  cnn.Open
  '判断连接的状态
  If cnn.State <> adStateOpen Then
     MsgBox"数据库连接失败"
     End
  End If

'设置连接标识,表示已经连接到数据库
  IsConnect = True
End Sub

'断开与数据库的连接
Private Sub DisConnect()
  Dim rc As Long

If IsConnect = False Then
     Exit Sub
  End If
  '关闭连接
  cnn.Close
  '释放cnn
  Set cnn = Nothing
  IsConnect = False
End Sub

'使用Connect_Num控制数据连接
Public Sub DB_Connect()
   Connect_Num = Connect_Num + 1
   Connect
End Sub

'使用Connect_Num控制数据断开
Public Sub DB_Disconnect()
If Connect_Num >= CONNECT_LOOP_MAX Then
   Connect_Num = 0
   Disconnect
 End If
 End Sub

'强制关闭api方式访问俄的数据库,计数器复位
Public Sub DBapi_Disconnect()
   Connect_Num = 0
   Disconnect
End Sub

'执行数据库操作语言
'byval 就是按参数的值传递,再传递过程中,参数不会发生变化(也就是将参数值而不是将地址传递给过程的方式,这就使过程访问发哦变量的副本,过程不可改变变量的值);
与之对应的是byref,指按参数的地址传值,byref可以省略
Public Sub SQLExt(ByVal TmpSQLstmt As String )

Dim cmd As New ADODB.Command '创建Command对象cmd
    
    DB_Connect  '连接数据库
    
    Set cmd.ActiveConnection = cnn '设置cmd的ActiveConnect属性,指定与其关联的数据库连接

cmd.CommandText = TmpSQLstmt '设置要执行的命令文本

'MsgBox TmpSQLstmt

cmd.Execute  '执行命令

Set cmd = Nothing

DB_DisConnect  '断开与数据库的连接

End Sub

'执行数据库查询语句
Public Function QueryExt(ByVal TmpSQLstmt As String ) As ADODB.Recordset
    
    Dim rst As New ADODB.Recordset  '创建Rescordset对象rst

DB_Connect  '连接数据库

Set rst.ActiveConnection = cnn  '设置rst的ActiveConnection属性,指定与其相关的数据库的连接

rst.CursorType = adOpenDynamic  '设置游标类型

rst.LockType = adLockOptimistic  '设置锁定类型

rst.Open TmpSQLstmt '打开记录集

Set QueryExt = rst '返回记录集

End Function

转:VB用ADO连接SQLServer数据库的更多相关文章

  1. jsp连接sqlServer数据库教程

    一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0   下载地址:点击进入 开发IDE工 ...

  2. 使用thinkphp连接sqlserver数据库时提示“系统不支持:sqlsrv”

    习惯了使用php跟mysql组合,现在接到项目需要调用客户线下的系统软件的数据,具了解,这个软件的数据库是用sqlserver数据库也就是常说的mssql数据库了. 那么我现在需要用PHP连接sqls ...

  3. asp.net 连接sqlserver数据库

    在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面 ...

  4. SQLServer-----使用jTDS连接SQLServer数据库

    一.jTDS一个简短的引论 jTDS100%纯Java实现的JDBC3.0驱动,它用于连接 Microsoft SQL Server(6.5.7.2000,2005,2008 和 2012)和Syba ...

  5. Jmeter连接SqlServer数据库进行压力测试

    Jmeter连接SqlServer数据库进行压力测试 前提准备:先安装jdbc驱动 驱动下载链接地址:http://pan.baidu.com/s/1bpDpjSr 密码:v6tn 下载解压之后,讲s ...

  6. python连接sqlserver数据库

    1.准备工作 python3.6连接sqlserver数据库需要引入pymssql模块 pymssql官方:https://pypi.org/project/pymssql/ 没有安装的话需要: pi ...

  7. JavaWeb连接SQLServer数据库并完成一个登录界面及其功能设计。

    一.JDBC连接SQLserver数据库的步骤: 1.下载SQLserver的JDBC驱动文件——Microsoft JDBC Driver 4.0 for SQL Server 2.例如下载得到的文 ...

  8. 64位程序,利用ADO连接Oracle数据库

        刚好手头项目解决了ADO连接Oracle数据库的问题,记录下来,防止忘记. 项目情况:用32位环境完成算法动态库,结果后来需要升级到64位环境,由64位的软件来调用,则在64位设置下生成算法动 ...

  9. php支持连接sqlserver数据库

    php支持连接sqlserver数据库 1.软件配置 Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10. ...

随机推荐

  1. CodeForces - 1009E Intercity Travelling

    题面在这里! 可以发现全是求和,直接拆开算贡献就好了 #include<bits/stdc++.h> #define ll long long using namespace std; c ...

  2. [UOJ61]怎样更有力气

    这个题还是挺有意思的... 一个小结论是:在一个$n$点$m$边的图中,如果度数最小的点度数为$d$,那么$d^2=O(m)$,因为$d\leq\frac{2m}n$,所以$d^2\leq dn\le ...

  3. poj 1485 dp

    转自:http://www.cnblogs.com/kuangbin/archive/2011/11/12/2246407.html [题目大意] 一条公路上有n个旅馆,选出其中k个设置仓库,一个仓库 ...

  4. 升级到php7和安装拓展(mac centos)

    Mac升级到php7 使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew ...

  5. bzoj 2434 ac自动机

    ac自动机中,如果以trie中的节点为节点,(fail[i],i)为边,可以建立一颗树,该树有如下特点:“节点u是节点v的祖先 当且仅当 u代表的字符串是v代表的字符串的一个后缀”.(u代表的字符串是 ...

  6. Markdown---锚点使用

    Markdown目前还没有支持文内锚点的标记语法:但是支持html,所以锚点可以通过html语法来实现 使用方法 <a href='#jump'>第一个题目</a> 带有锚点的 ...

  7. Vue组件深入了解(组件注册和Prop)

    一.组件名 自定义组件的名称强烈推荐遵循W3C规范中的方式:字母全小写且必须包含一个连字符. 二.全局注册和局部注册的区别 全局注册 Vue.component进行注册.全局注册的可以在任何创建的实例 ...

  8. Dart格式化输出

    类似于保留几位小数,直接 n.toStringAsFixed() 例如: 1.toStringAsFixed(3); // 1.000 (4321.12345678).toStringAsFixed( ...

  9. mysql-bin.000001

    今天发现/usr/local/mysql/var下很多mysql-bin.000001.mysql-bin.000002文件,GOOGLE之..这是数据库的操作日志,例如UPDATE一个表,或者DEL ...

  10. Python可执行对象——exec、eval、compile

           Python提供的调用可执行对象的内建函数进行说明,涉及exec.eval.compile三个函数.exec语句用来执行存储在代码对象.字符串.文件中的Python语句,eval语句用来 ...