注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞羽逐魂

踏雪寻梅梅尽隐,拂堤赏柳柳尚眠

 
 
 

日志

 
 

学生信息管理系统“倒叙”总结1——adOpenKeyset  

2015-06-07 19:49:49|  分类: 数据库学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  关于学生信息管理系统,人家写总结博客都是“顺叙”,由于我的进度很慢,最近才搞定,所以想要“顺叙”不太可能,就近取之——我决定“倒叙”。
  期初敲代码的时候,将模块中的adOpenKeyset敲成了 adOpenDynamic,并没有在意,调错的时候,发现“myBookmark = mrc.Bookmark”这句代码“出镜率”超高,那么这句话用处何在?
  书签顾名思义就是做标记,让我们更好的控制使用数据表,通过书签我们可以随意的跳到我们想要看的记录下(前提是你的给你的目的记录标记书签),此外书签还有可以判断当前游标下是不是空记录(对于空记录 mybookmark 将返回 0)(详见郑浩师傅博客mybookmark = mrc.bookmark----------书签的作用 

学生信息管理系统总结3——adOpenKeyset - 12期 孙利楠 - 孙利楠 廊坊师范学院信息技术提高班十二期

  我是边优化边调试的,到了最后关头,还爆出这个错误学生信息管理系统“倒叙”总结1——adOpenKeyset - 12期 孙利楠 - 孙利楠 廊坊师范学院信息技术提高班十二期很是纳闷,因为前几天运行程序时,只剩查询信息那部分还有点问题。猛然间想起调错的时候,为了证实是不是模块中动态游标的缘故,将源代码的adOpenKeyset改为了adOpenDynamic,这样一来,问题找到了——将上图的adOpenDynamic改为adOpenKeyset就运行无阻了。至于是不是这个原因,还望大神纠错或是指导~~~
 ----------------------------------------   
  以下内容节选自:

adOpenStatic 向前游标
adOpenKeyset 键集游标
adLockOptimistic设置窗口为固定的大小


 常数                       常数值                       说明     
  -----------------------------------     
  adOpenForwardOnly   0   缺省值,启动一个只能向前移动的游标(Forward   Only)。     
  adOpenKeyset     1   启动一个Keyset类型的游标。   
  adOpenDynamic    2   启动一个Dynamic类型的游标。     
  adOpenStatic     3   启动一个Static类型的游标。     
  -----------------------------------     
  以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别(只挑出了学生信息管理系统里出现的)     
    
  ---------------------------------------------     
  Recordset属性       adOpenForwardOnly                 adOpenKeyset                  adOpenDynamic     adOpenStatic     
  ---------------------------------------------     
   BOF                     只读                             只读                               只读         只读     
  Bookmark            不支持                         不支持                           可读写            可读写  
  EOF                     只读                           只读                            只读              只读      
  LockType             可读写                         可读写                           可读写            可读写      
  RecordCount        不支持                         不支持                           只读              只读   
  AddNew               支持                           支持                               支持            支持  
  Close                   支持                           支持                               支持            支持     
  Delete                  支持                           支持                               支持            支持     
   Move                  不支持                         支持                               支持             支持     
  MoveFirst             支持                           支持                               支持             支持     
  MoveLast             不支持                         支持                               支持              支持     
  MoveNext             支持                           支持                               支持              支持     
  MovePrevious     不支持                         支持                               支持              支持     
   Open                    支持                           支持                               支持              支持     
   Update                  支持                           支持                               支持               支持     

  -----------------------------------     
  常数                   常数值                       说明     
  -----------------------------------     
  adLockReadOnly   1   缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法  ;
   
  adLockPrssimistic   2   当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性;  
   
  adLockOptimistic   3   当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作;
   
  adLockBatchOptimistic   4   当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。   
    
  =====定义数据库连接的一些常量   
    
  Const   adOpenForwardOnly =   0   '游标只向前浏览记录,不支持分页、Recordset、BookMark   ;

  Const   adOpenKeyset  =   1   '键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中,支持分页、Recordset、BookMark  ;

  Const   adOpenDynamic  =   2   '动态游标功能最强,但耗资源也最多;用户对记录说做的修改,增加或删除记录都将反映到记录集中;支持全功能浏览(ACCESS不支持);
   
  Const   adOpenStatic =   3   '静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中,支持向前或向后移动;
   
  Const   adLockReadOnly =   1   '锁定类型,默认的,只读,不能作任何修改;
   
  Const   adLockPessimistic=   2   '当编辑时立即锁定记录,最安全的方式;
   
  Const   adLockOptimistic =   3   '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等;
   
  Const   adLockBatchOptimistic   =   4   '当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的 。  

 
 
adOpenForwardOnly = 0
///前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动,这种方式可以提高浏览速度。但诸如BookMark,RecordCount,AbsolutePosition,AbsolutePage都不能使用

adOpenKeyset = 1
///键集游标。采用这种光标的记录集看不到其它用户的新增、删除操作,但对于更新原有记录的操作对你是可见的。

adOpenDynamic = 2
///动态光标。所有数据库的操作都会立即在各用户记录集上反应出来。

adOpenStatic = 3
///静态光标。它为你的记录集产生一个静态备份,但其它用户的新增、删除、更新操作对你的记录集来说是不可见的。

 ---------------------------------------- ---------------------------------------- -------------------------------       
 ---------------------------------------- ---------------------------------------- -------------------------------       
打开大的数据表时,速度方面,adOpenForwardOnly > adOpenDynamic > adOpenKeyset > adOpenStatic 

游标类型有以下四种类型:
1、 AdOpenForwardOnly (默认值)一次只能向前移动一行。
2、 AdOpenKeyset 打开键集类型游标。
3、 AdOpenDynamic 打开动态类型游标
4、 AdOpenStatic 打开静态类型游标。

AdOpenForwardOnly和AdOpenStatic这两种游标使得记录集只读,它表示创建数据的一个快照。后者比前者灵活,因为它可以允许任意方向移动。

AdOpenKeyset允许任意移动,并且允许更改记录集。其他用户对记录集的添加和删除,这个游标反映不出来。但它能反映出其他用户对记录集的更改。

AdOpenDynamic允许所有操作,其他用户对记录集的添加、删除、更改在此记录集中都是可见的。
LockType= adLockOptimistic
Options 省略 

大家需要注意的是:当使用AdOpenKeyset时,要求记录集中每条记录都有唯一的关键字。否则,执行的结果就不是您所要的所有记录了。

清楚了游标类型,再来看看锁类型LockType
AdLockReadOnly (默认值)只读 --- 不能改变数据。
AdLockPessimistic 悲观锁(逐个)--- 为确保成功完成编辑记录所需的工作,在编辑时立即锁定数据源的记录。
AdLockOptimistic 乐观锁(逐个)--- 只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 乐观批更新---用于批更新模式(与立即更新模式相对)。

对于悲观锁、乐观锁的解释:
乐观的锁策略是把记录必须加锁的时间减到最短,当用户对记录的内容进行编辑时,乐观锁不起作用,其他用户可以访问和编辑数据,但当其中的一个用户想要更新数据时,记录就会加上锁;

悲观的锁策略是当第一个用户打开记录进行编辑的时候,记录就会加锁,直到使用记录的用户解除锁时锁才不起作用。一旦悲观锁起作用,其他的用户就看不到数据,直到该锁被解除;

对于AdLockBatchOptimistic,只能与AdOpenKeyset游标一起使用。它在更新时不会立即把更新过的记录写入到数据源中,而是把对许多条记录所做的改动先放在客户计算机中,然后把更新过的记录作为一批写入数据源。
  评论这张
 
阅读(17)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017