• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
多用户应用程序中应注意问题
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
多用户应用程序中应注意问题
软件发布 多用户应用程序中应注意问题
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VB & VB.NET教程 >> 多用户应用程序中应注意问题

多用户应用程序中应注意问题

添加时间: 2006-2-16 5:25:55  作者: VB教程  阅读次数:104   来源: http://www.d9soft.com

       
问题二 再查询与事务


1.再查询数据


在多用户应用程序中,如果以可视的形式把数据显示在窗口中,则需要用最新的数据来更新用户的视图。而要获得由其他用户修改了的最新视图,应用程序必须显式地对数据执行再查询操作。为了获得记录集中数据的最新视图,首先应确定记录集是否支持Requery方法。如果ReCordset对象的Restartable属性值为Tme,则可以使用Requery方法来刷新Recordset对象的内容。如果记录集不支持Requery方法,则必须用OpenRecordset方法再次打开记录集。一般说来,重新打开记录集比使用Requery方法要慢一些。下面这个过程,用来测试一个记录集是否可执行再查询。


过程如下:


Function RequeryRecordset(dbs As Database,rst As Recordset) As Integer

On Error Resume Next

注释:能够再查询记录集吗?

If rst.Restartable=False Then

requeryRecordset=-1

EXit Function

End lf

rst.Requery 注释:再查询记录集

Select Case Err 注释:处理所有错误

Case 0

RequeryReCordset=0

EXit Function

Case Else

Err=0

注释:重新打开记录集

注释:使用rstNane来获取SQL

注释:字符串、表或QueryDef的值

注释:记录集最初是基于它们的

Set rst=dbs.OpenRecordset(rst.Name, rst.Type)

Select Case Err

Case0

RequeryRecordset=0

EXit Function

Case Else

注释:不返回错误给调用程序

Err=0

RequeryRecordset=-l

EXit FUnctlon

End Select

End Select

End Function


用上面的过程可以再查询一个指定的记录集。如果再查询成功,则过程返回0;如果程序不能对记录集进行再查询,则重新打开记录集。如果不能重新打开记录集,则过程返回-1。该过程有两个参数,其中参数dbs是一个数据库对象;而rst是一个Recordset对象。为了调用上面的过程,可以在窗体上画一个命令按钮,然后编写如下的事件过程:


Private Sub Command1_CliCk()

Dim Mvdbs As Database

Dim MvTab As Recordset

Set Mydbs=OPenDatabase("c:\dbdir\db1.mdb",dbOpenDynaset)

Set MyTab=Mydbs.OpenRecordset("Tabel1",dbOpenTable)

a=RequeryReCordset(Mydbs,MyTab)

If a=0 Then

MsgBox "再查询成功"

ElSe

MsgBox "不能执行再查询"

End if

End Sub


程序运行后,单击命令按钮,将调用上面的过程,然后根据具体情况显示相应的信息框。在一般情况下,大多数Recordset对象是可重启动的(或者是可以被再查询的),但基于传递查询和没有固定列宽的交叉表查询的Recordset对象例外,不能再查询这些类型的Recordset对象,为了获得数据的最新状态,必须重新打开这些对象。


2.在多用户环境中使用事务


可以用Microsoft Jet事务把更新划分为多个单元,使它能够被当作整体提交或回退。由于事务缓冲区的更新是临时文件,而不是实际的表,所以它们在多用户环境中也是有用的。在多用户环境中,事务的一般用途是:确保用户在变更共享数据时,所看到的共享数据的视图是完整的。例如,假定应用程序正在执行更新数据的代码,而另一个用户又正在生成相同数据的报表。如果更新没有被包装进事务中,则生成报表的用户接收到的数据可能是不一致的。而如果把更新包装进事务中,则可以确保共享数据的其它用户视图在代码结束运行之前不会受到代码的影响。注意,不要使事务保持打开的时间太长。由于编辑事务而产生的所有锁定,在事务被提交或回退之前,将保持锁定状态,这可能会对应用程序的多用户并发产生有害的影响。

 

上下文章:

 

上一篇文章: 多用户应用程序中应注意问题3 下一篇文章: 如何用VB访问外来数据库一例

相关文章:

  • 解瘳Vista系统OpenGL驱动问题整理
  • Vista下光盘刻录Nero 8常见问题
  • 城域网光缆线路设计与技术应用
  • AV杀手变种强行关闭杀度软件与下载恶意程序
  • Oracle培训热点问题

相关软件:

  • FTP远程文件同步更新程序 1.0.0.0
  • 高中数学问题处理系统 V1.2
  • 宽盈自助建站系统.net多用户 1.0
  • 关闭有害木马端口程序
  • 终极程序加密器 2.98
  • UC263成人视频小电影程序

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有