轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 电脑主程序开源 查看主题

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

发布者: lin99 | 发布时间: 2018-2-12 04:31| 查看数: 1912| 评论数: 1|帖子模式

在多用户应用程序设计中,最主要的问题是控制数据的锁定,前面几节我们已进行了讨论。但是,应当指出,锁定并不是多用户应用程序设计中唯一的问题,在为多用户访问设计一个应用程序时,还应当注意到其它一些方面,下面将讨论这些问题。

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

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

下面的过程可用来显示当前数据库中的所有TableDef对象:

SUb ShowAllTables(dbs As Database)Dim tdfremp As TableDefFor Each tdfremPIndbs.TableDefsDebug.Pnnttdfremp.NameNext 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 TableDefdbs.TableDefs.RefreshFor Each tdfremp ln dbs.TableDefsDebug.Print tdfremP.NameNext tdfremp

End Sub

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

最新评论

opo25 发表于 2022-5-21 13:44
源代码和开端剧情差不

浏览过的版块

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表