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

用VB和RDO访问SQL Server

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
i ng把它从内存中释放的编程习惯。这样可以预防很多不可预测错误,往往程序中发生意义不明的错误时,其原因就在于此。


数据的取得

    与数据库连接成功之后,接下来就是取得数据。一般用OpenResultset方法取得数据,这里首先需理解数据库中与此有关的[游标]概念。
    一言以蔽之,游标[cursor]就是指向依据一定的条件从数据库中抽取的数据的多个指针。也就是说游标是用作指向由数据库返回的数据的方法。
RDO 支持几种不同的游标库,其中每一种都有其特定的作用:向前滚动型的结果集(rdOpenForwardOnly-缺省值)、静态滚动型结果集(rdOpenStatic)、可滚动的查询结果集(rdOpenKeyset)和动态可滚动的查询结果集(rdoOpenDynamic)。在使用RDC的情况下,游标的值设定为ResultsetType属性;在使用RDO的情况下,通过OpenResultset方法的Type参数进行设定。游标又分为[服务器端游标]和[客户端游标],这需要根据程序的性质、处理内容的不同来选择适当的方式。也有不使用游标的情况,比如当只进行数据读取时,使用rdUseNone选项更为合适。
    关于是否使用游标、使用何种游标,需考虑下面一些情况:
 * 需要读取多少行数据?要读取全部或只是几行数据?
  * 是否等待游标的创建完成?对于用户来说等待时间是否在允许范围之内?
  * 用来保存已创建游标的系统资源(内存容量),在用户端或服务器端是否充足?
  * 从服务器端返回的结果怎样读取?有必要从当前行随意移动,还是从最初到最后顺序读取为好?
  * 游标的成员关系怎样定义?
  * 数据如何更新?数据有没有更新的必要?是通过Execute方法将游标的数据进行更新,或是由存储过程更新?
    关于游标的详细介绍,请参照Visual Basic Books Online以及SQL Server用户手册。这里介绍从RDO对象读取数据的几种方法:
  * rdoResultset对象,这是RDO的基本游标对象。与DAO的Recordset对象相似,可应用于各种游标以及无游标的场合。可以通过rdoConnect对象或rdoQuery对象的OpenResultset方法创建rdoResultset对象。
  * rdoQuery对象,与DAO的QueryDef相似,在进行一次性查询时使用,用于取代已经过时的由rdoConnection对象的CreatePreparedStatement方法创建的rdoPreparedStatement对象。rdoQuery对象直接调用ODBC的SQLPrepare。
  * UserConnection对象,在VB5.0以及RDO 2.0中新增加的对象,这里不作详细阐述。它是一个非常优秀的对象,使RDO使用起来更加容易。
  * rdoTable对象,是rdoTables集合的成员,用来显示SQL Sever上的一个表的内容。
编程中通常运用前3种方法中的某一种,而第4种一般不太用。
    不论使用哪一种方法,都有必要给出SQL语句。在绝大多数的情况下,SQL语句是针对SQL Server,从哪个表以何种条件读取哪一行的数据,如(SELECT * FROM table1 WHERE field1 = “condition”)。运行存储过程时用Name参数指定存储过程,程序能自动判别是RDO 2.0的还是存储过程的SQL语句。在以存储过程为核心的情况下,利用UserConnection将存储过程作为方法来处理最为妥当。
   下面给出一个运行rdoConnection对象Cn的OpenResultset方法的例子。
Dim Rs As Resultset
Set Rs = Cn.OpenResultset(name:=“SELECT * FROM Authors WHERE Year_Born=1966”)
If Rs.RowCount > 0 Then
    MsgBox Rs.RowCount & “条记录取得完毕。”
Else
    MsgBox “没有取得任何记录。”
End If
    这个例子中用了name:=,OpenRes
  • 下一篇资讯: [VB]
  • 网学推荐

    免费论文

    原创论文

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