科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用VB和RDO访问SQL SERVER

用VB和RDO访问SQL SERVER

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

远程数据对象 (Remote Data Object ,简称RDO) 是位于 ODBC API 之上的一个对象模型薄层。

作者:佚名 来源:论坛 2007年10月23日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共5页)

VB是对象语言,Form、ActiveX控件也都是对象。使用对象后必须养成将对象设为Nothi 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将存储过程作为方法来处理最为妥当。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章