• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

多客户环境下VB数据库编程之(8)

发布: 2007-6-21 21:57 | 作者: --  | 来源: vbeden  | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

   
多用户应用程序中应注意的其它问题(1)

  在多用户应用程序设计中,最主要的问题是控制数据的锁定,前面几节我们已进行了讨论。

但是,应当指出,锁定并不是多用户应用程序设计中唯一的问题,在为多用户访问设计一个应用程序时,还应当注意到其它一些方面,下面将讨论这些问题。

  问题一 数据访问对象集合的刷新

  在多用户环境中,当用户添加新表、查询数据库或删除现有对象时,都可能对集合进行修改。在这种情况下,DAO.不能自动跟踪集合的变更。
下面的过程可用来显示当前数据库中的所有TableDef对象:

  Sub ShowAllTables(dbs As Database)

   Dim tdfremp As TableDef

   For Each tdfremPIndbs.TableDefs

    Debug.Pnnttdfremp.Name

   Next tdfremp

  End Sub

为了调用上面的过程,可以在窗体上画一个命令按钮,然后编写下面的事件过程:

  Private Sub Commandl_Click()

   Dim Mvdbs As Database

   Set Mydbs=OpenDatabase("cz\vb50\biblio.mdb")

   ShowAllTables Mvdbs

  End Sub

运行程序,单击命令按钮,将在立即窗口中显示数据库biblio.mdb中的所有TableDef对象。

  在执行上面的过程时,程序将记下TableDefs集合时快照,它遍历每个TableDef对象,并显示出它的名字。假定需要两次运行上面的过程,第一次运行时,显示了10个表的名字。但在再次运行之前,网络上的另一个用户打开了这个数据库,并在数据库中添加了一个新的表。如果再次运行该过程,则将仍然显示10个表的名字,因为DAO不能自动地更新其它用户对集合所作的变更。为此,可以用Refresh方法强制DAO用最新的变更来更新集合。如果在前面的过程中添加Refresh方法,则可使它返回的总是TableDef对象的最新列表修改后的过程如下:

  SUb BetterShowAllTables(dbs As Database)

   Dim tdfremp As TableDef

   dbs.TableDefs.Refresh

   For Each tdfremp ln dbs.TableDefs

    Debug.Print tdfremP.Name

   Next tdfremp

  End Sub

注意,只有在需要时才使用Refresh方法。如果集合包含大量的对象,则刷新集合可能需要较长的时间。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网