多用户应用程序中应注意的其它问题(2)--多客户环境下VB数据库编

2016-02-19 12:54 5 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐多用户应用程序中应注意的其它问题(2)--多客户环境下VB数据库编,无聊中的都看过来。

【 tulaoshi.com - 编程语言 】

问题二再查询与事务
  
  1.再查询数据
  
  在多用户应用程序中,如果以可视的形式把数据显示在窗口中,则需要用最新的数据来更新用户的视图。而要获得由其他用户修改了的最新视图,应用程序必须显式地对数据执行再查询操作。为了获得记录集中数据的最新视图,首先应确定记录集是否支持Requery方法。如果ReCordset对象的Restartable属性值为Tme,则可以使用Requery方法来刷新Recordset对象的内容。如果记录集不支持Requery方法,则必须用OpenRecordset方法再次打开记录集。一般说来,重新打开记录集比使用Requery方法要慢一些。下面这个过程,用来测试一个记录集是否可执行再查询。
  
  过程如下:
  
  FunctionRequeryRecordset(dbsAsDatabase,rstAsRecordset)AsInteger
  OnErrorResumeNext
  '能够再查询记录集吗?
  Ifrst.Restartable=FalseThen
  requeryRecordset=-1
  EXitFunction
  Endlf
  rst.Requery'再查询记录集
  SelectCaseErr'处理所有错误
  Case0
  RequeryReCordset=0
  EXitFunction
  CaseElse
  Err=0
  '重新打开记录集
  '使用rstNane来获取SQL
  '字符串、表或QueryDef的值
  '记录集最初是基于它们的
  Setrst=dbs.OpenRecordset(rst.Name,rst.Type)
  SelectCaseErr
  Case0
  RequeryRecordset=0
  EXitFunction
  CaseElse
  '不返回错误给调用程序
  Err=0
  RequeryRecordset=-l
  EXitFUnctlon
  EndSelect
  EndSelect
  EndFunction
  
  用上面的过程可以再查询一个指定的记录集。如果再查询成功,则过程返回0;如果程序不能对记录集进行再查询,则重新打开记录集。如果不能重新打开记录集,则过程返回-1。该过程有两个参数,其中参数dbs是一个数据库对象;而rst是一个Recordset对象。为了调用上面的过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:
  
  PrivateSubCommand1_CliCk()
  DimMvdbsAsDatabase
  DimMvTabAsRecordset
  SetMydbs=OPenDatabase("c:dbdirdb1.mdb",dbOpenDynaset)
  SetMyTab=Mydbs.OpenRecordset("Tabel1",dbOpenTable)
  a=RequeryReCordset(Mydbs,MyTab)
  Ifa=0Then
  MsgBox"再查询成功"
  ElSe
  MsgBox"不能执行再查询"
  Endif
  EndSub
  
  程序运行后,单击命令按钮,将调用上面的过程,然后根据具体情况显示相应的信息框。在一般情况下,大多数Recordset对象是可重启动的(或者是可以被再查询的),但基于传递查询和没有固定列宽的交叉表查询的Recordset对象例外,不能再查询这些类型的Recordset对象,为了获得数据的最新状态,必须重新打开这些对象。
  
  2.在多用户环境中使用事务
  
  可以用MicrosoftJet事务把更新划分为多个单元,使它能够被当作整体提交或回退。由于事务缓冲区的更新是临时文件,而不是实际的表,所以它们在多用户环境中也是有用的。在多用户环境中,事务的一般用途是:确保用户在变更共享数据时,所看到的共享数据的视图是完整的。例如,假定应用程序正在执行更新数据的代码,而另一个用户又正在生成相同数据的报表。如果更新没有被包装进事务中,则生成报表的用户接收到的数据可能是不一致的。而如果把更新包装进事务中,则可以确保共享数据的其它用户视图在代码结束运行之前不会受到代码的影响。注意,不要使事务保持打开的时间太长。由于编辑事务而产生的所有锁定,在事务被提交或回退之前,将保持锁定状态,这可能会对应用程序的多用户并发产生有害的影响。->

来源:https://www.tulaoshi.com/n/20160219/1602396.html

延伸阅读
标签: PHP
  这是本系统的download.php,主要负责下载和记数,其中文件格式均在注释中说明. <html <?php //传入num为要下载的文件号,col=要下载的分栏 //ip不超时下载次数加一 //文件格式 //0编号<1作者<2文件位置<3投票计数<4简介<5文件大小<6文件下载次数 //ip文件格式  地址:项目:时间 $uploadto=...
标签: ASP
  web.config文件是标准的xml文件,我们可以使用它来为一台机器下的每一个web应用程序或某个应用程序或一个目录下的asp.net页面来进行设置,当然,它也可以为一个单独的web页面进行设置。  如:网站的主目录是\inetpub\wwwroot\,那么我们将web.config放置于其下,那么这个网站中的应用程序将被web.config中的设置所影响。  e....
使用OLE DB 5.1    概述 OLE DB的存在为用户提供了一种统一的方法来访问所有不同种类的数据源。OLE DB可以在不同的数据源中进行转换。利用OLE DB,客户端的开发人员在进行数据访问时只需把精力集中在很少的一些细节上,而不必弄懂大量不同数据库的访问协议。 OLE DB是一套通过COM接口访问数据的ActiveX接口。这个OLE DB接...
使用DAO    4.1    概述 Visual C++提供了对DAO的封装,MFC DAO类封装了DAO(数据库访问对象)的大部分功能,从面Visual C++程序就可以使用Visual C++提供的MFC DAO类方便的访问Microsoft Jet 数据库,编制简洁、有Visaul C++特色的数据库应用程序。 数据库访问对象(DAO)提供了一种通过程序代码创建和操纵数...
很多软件都有保存用户设置的功能,以便用户下一次启动时其程序界面及相关设置都是自己最中意和习惯的,这使得软件具有人性化,用户用起来感到亲切。用VB编写的软件可以通过多种途径实现此功能,这里介绍用数据库方法来保存用户的个性化设置。 假设我们已经完成了一个用TextBox做编辑栏的字处理程序,该程序提供了让用户对编辑栏背景色和字体...

经验教程

88

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部