当前位置: 网学 > 编程文档 > VB > 正文

用VB和RDO访问SQL Server

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
hConnection方法同OpenConnection方法很相似,被用于停止状态或独立的rdoConnection对象。
这里以独立的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, rdAsyncEnable
    End With
End Sub
    在这个例子中,Form_Load函数对rdoEngine和rdoConnection对象进行初始化。这里有一点需要注意,rdoConnection对象是处于独立的状态之下,即使是处于未连接状态也可以设置属性的值。
    接下来是rdoConnect对象的事件处理程序。从RDO 2.0起可以实现异步方式(rdAsyncEn able),EstablishConnection就设定为该值。在异步状态下,不必等待与数据库的连接,程序可以迅速从Form_Load函数中退出。
    然后是BeforeConnect事件,该处理在与数据库的连接开始以前被激发,此时不能进行有关终止连接的操作:
Private Sub Cn_BeforeConnect(ConnetString As String, Prompt 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 If

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控件也都是对象。使用对象后必须养成将对象设为Noth
  • 下一篇资讯: [VB]
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号