'数据源信息常量
 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. scanf输入字符串相关

    http://blog.csdn.net/liuhui_8989/article/details/13398793   补充..输入s的时候不要把变量设置成string类型,设置成char数组类型.. ...

  2. 【带修改的主席树】BZOJ1901-Dynamic Rankings

    稍后整理笔记.这题数据范围好像有点问题? #include<iostream> #include<cstdio> #include<cstring> #includ ...

  3. noip200807传纸条

    试题描述: 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的 ...

  4. Java实现-2016百度秋招(颜色反转、相似字符串)

    1.颜色反转 题目描述: 在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色.例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红.在这道题中,我们要求把给定的一种颜色取反,方法是 ...

  5. CMSIS-SVD Example (Schema Version 1.1)

    <?xml version="1.0" encoding="utf-8"?> <!-- File naming: <vendor> ...

  6. loading(正在加载特效)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 让linux history命令显示命令的运行时间、在哪个机器运行的这个命令

    1.在/etc/profile的最后加入例如以下部分: USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g ...

  8. 数据库连接池中是将connection放进threadlocal里的

    我有几点不太明白的,望各位大侠指教下.1.j2ee的应用中,有一个用户请求就会启动一个线程.而如果我们把connection放在Threadlocal里的话,那么我们的程序只需要一个connectio ...

  9. 【docker】docker network常用命令参数

    1.帮助命令 docker network --help 2.查看docker默认三种网络 docker network ls 3.创建自定义网络,如果不指定,默认创建类型为bridge类型 dock ...

  10. .NET:在C#中模拟Javascript的setTimeout方法

    背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javascript中为了实现平滑的动画一般采用setTimeout模拟 ...