新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 开发语言 > VB教程 > 正文:VB访问SQL Server数据库技术全揭密

VB访问SQL Server数据库技术全揭密

新客网 XKER.COM 2007-02-01 来源: 收藏本文
  连接完成之后的事件处理:

  Private Sub Cn_Connect(ByVal ErrorOccurred As Boolean)

  Dim M As String

  If ErrorOccurred Then

  For Each er In rdoErrors

  M = M er & vbCrLf & M

  Next

  MsgBox "连接失败" & vbCrLf & M

  Else

  MsgBox "连接成功"

  注释:这是确认连接状态的测试代码

  Cn.Excute "use pubs"

  End Sub  

  RDO连接处理结束后,在该事件中确认连接成功与否。连接成功的情况下ErrorOccurred返回False,失败时为True,由此可以对rdoErrors集合进行检测:  

  Private Sub Eng_InfoMessage()

  For Each er In rdoErrors

  Debug.Print er

  Next

  RdoErrors.Clear

  End Sub  

  不能与SQL Server连接的原因多种多样,有可能是由于对数据库的访问权限、网络连接问题、数据库表的信息错误、SQL Server同时连接的许可数、资源不足等等,具体情况需要与网络管理员商量。 断开连接的操作非常简单,但又很重要,因为RDO不提供自动断开的功能。  

  Cn.Close

  Set Cn = Nothing 注释:释放对象所占的内存资源

  En.Close

  Set En = Nothing 注释:释放对象所占的内存资源  

  VB是对象语言,Form、ActiveX控件也都是对象。使用对象后必须养成将对象设为Nothing把它从内存中释放的编程习惯。这样可以预防很多不可预测错误,往往程序中发生原因不明的错误时,其原因就在于此。  

  5、ADO 数据对象(Active Data Objects)

  ADO是基于全新的OLE DB技术,OLE DB可对电子邮件、文本文件、复合文件、数据表等各种各样的数据通过统一的接口进行存取。随着ActiveX控件的升级(Windows 98的ActiveX 5.0),RDO将被以ActiveX技术为基础的ADO接口所替代。下面将介绍基于ActiveX技术的ADO访问SQL Server 6.5数据库的技术和方法。基于浏览器的ADO接口常用函数如下:

  (1)取当前的工作数据库

  由于管理任务一般都必须在Master库中完成,因此在执行管理任务之前,最好保存当前工作库,以便完成任务之后再切换回原来的任务。  

  Public Function SQLGetCurrentDatabaseName(Cn As ADODB.Connection) As String

  Dim sSQL As String

  Dim RS As New ADODB.Recordset

  On Error GoTo errSQLGetCurrentDatabaseName

  sSQL="select CurrentDB=DB_NAME ( )"

   RS.Open sSQL, Cn

   SQLGetCurrentDatabaseName=Trim $ (RS! CurrentDB)

   RS.Close

   Exit Function

  errSQLGetCurrentDatabaseName:

  SQLGetCurrentDatabaseName=" "

  End Function  

  (2)取SQL Server安装目录下的DATA子目录路径

  取SQL Server的设备文件缺省目录,返回如D:MSSQL DATA。  

  Public Function SQLGetDataPath(Cn As ADODB.Connection) As String

  Dim sSQL As String

  Dim RS As New ADODB.Recordset

  Dim sFullPath As String

  On Error GoTo errSQLGetDataPath

   sSQL="select phyname from master..sysdevices where name=注释:master注释: "

   RS.Open sSQL, Cn

   sFullPath = RS! phyname

   RS.Close

   SQLGetDataPath=Left $ (sFullPath, Len(sFullPath) -10) 注释:MASTER.DAT的大小

   Exit Function

  errSQLGetDataPath:

   SQLGetDataPath=" "

  End Function  

  (3)创建一个新数据库  

  Public Function SQLCreateDatabase65 (Cn As ADODB.Connection,sDBName As String, sDataDeviceName As String, nDataSize As Integer, Optional sLogDeviceName, Optional nLogSize) As Boolean

  Dim sSQL As String

  On Error GoTo errSQLCreateDatabase65

  Dim sDB As String

  sDB =SQLGetCurrentDatabaseName(Cn)

  sSQL = "USE master"

  Cn.Execute sSQL

  sSQL ="CREATE DATABASE" & sDBName

  sSQL = sSQL &" ON " & sDataDeviceName & "=" & nDataSize

  If Not IsMissing(sLogDeviceName) And Not IsMissing(nLogSize) Then

  sSQL = sSQL & "LOG ON" & sLogDeviceName & "="& nLogSize

  End If

  Cn.Execute sSQL

  sSQL = "USE" & sDB

  Cn.Execute sSQL

  SQLCreateDatabase65 = True

  Exit Function

  errSQLCreateDatabase65:

  On Error Resume Next

  sSQL = "USE " & sDB

  Cn.Execute sSQL

  SQLCreateDatabase65 = False

  End Function

  (4)判断一个数据库是否存在(未完)
共4页: 上一页 [1] [2] [3] [4] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐