热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->vb 
站内搜索:
VB访问SQL Server数据库技术全揭密(3)
作者:佚名 来源:不详 整理日期:2006-8-17
  

    用EstablishConnection方法的一个实例。

  这里以独立的rdoConnection对象为例说明与SQL Server的连接。

    

  Public WithEvents Eng As rdoEngine

  Public WithEvents Cn As rdoConnection

  Private Sub Form_Load()

  Set Eng = New rdoEngine

  Set Cn = New rdoConnection

  With Cn

  .Connect = "UID = ; PWD = ;" & "DATABASE = pubs; DSN = biblio"

  .LoginTimeout = 5

  .EstablishConnection rdoDriverNoPromt, True, rdAsyncEna ble

  End With

  End Sub  

  在这个例子中,Form_Load函数对rdoEngine和rdoConnection对象进行初始化。这里有一点需要注意,rdoConnection对象是处于独立的状态之下,即使是处于未连接状态也可以设置属性的值。接下来是rdoConnect对象的事件处理程序。从RDO 2.0起可以实现异步方式(rdAsyn cEnable),EstablishConnection就设定为该值。在异步状态下,不必等待与数据库的连接,程序可以迅速从Form_Load 函数中退出。 然后是BeforeConnect事件,该处理在与数据库的连接开始以前被激发,此时不能进行有关终止连接的操作:   

  Private Sub Cn_BeforeConnect(ConnetString As String, Pro mpt As Variant)

  MsgBox "正在连接" & ConnectString, vbOKOnly, "连接前"

  End Sub (未完)

  连接完成之后的事件处理:

  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  

[1]  [2]  [3]  [4]  
相关文章