cursortype,LockType,CursorLocation
转自:http://blog.sina.com.cn/s/blog_4c021a1301000bgk.html
1、CursorType 属性
AdOpenForwardOnly:仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。(顾名思义,这种游标只能向前移动。然而,由于这种游标功能有限,将它用于系统资源时是非常有效的。)
AdOpenKeyset:键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。(KeySet游标允许你看见自它创建起其他用户所做的修改,然而你却不能看到其他用户增加或删除的记录。)
AdOpenDynamic :动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。(此类型的游标功能强大同时也是耗费系统资源最多的游标。Dynamic游标可以看到他们保存记录集合的所有变化。使用Dynamic游标的用户可以看到其他用户所做的编辑、增加、删除。如果数据提供者允许这种类型的游标,那么它是通过每隔一段时间从数据源重取数据来支持这种可视性的。毫无疑问这会需要很多的资源。)
AdOpenStatic:静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。(Static类游标只是数据的一幅快照。这就是说,它无法看到自它创建以后其他用户对RecordSet所做的修改。采用这类游标你可以向前和向后航行。由于其功能简单,资源的需求比Dynamic要小!)
需要注意的是:一旦打开RecordSet,你就无法改变 CursorType 属性。但是,如果你首先关闭RecordSet,改变 CursorType 属性,然后重新打开RecordSet,那么你仍可以有效地改变游标的类型!
recordset属性 | adopenforwardonly | adopenkeyset | adopendynamic | adopenstatic |
absolutepage | 不支持 | 不支持 | 可读写 | 可读写 |
absoluteposition | 不支持 | 不支持 | 可读写 | 可读写 |
activeconnection | 可读写 | 可读写 | 可读写 | 可读写 |
addnew | 支持 | 支持 | 支持 | 支持 |
bof | 只读 | 只读 | 只读 | 只读 |
bookmark | 不支持 | 不支持 | 可读写 | 可读写 |
cachesize | 可读写 | 可读写 | 可读写 | 可读写 |
cancelbatch | 支持 | 支持 | 支持 | 支持 |
cancelupdate | 支持 | 支持 | 支持 | 支持 |
clone | 不支持 | 不支持 | ||
close | 支持 | 支持 | 支持 | 支持 |
cursorlocation | 可读写 | 可读写 | 可读写 | 可读写 |
cursortype | 可读写 | 可读写 | 可读写 | 可读写 |
delete | 支持 | 支持 | 支持 | 支持 |
editmode | 只读 | 只读 | 只读 | 只读 |
eof | 只读 | 只读 | 只读 | 只读 |
filter | 可读写 | 可读写 | 可读写 | 可读写 |
getrows | 支持 | 支持 | 支持 | 支持 |
locktype | 可读写 | 可读写 | 可读写 | 可读写 |
marshaloptions | 可读写 | 可读写 | 可读写 | 可读写 |
maxrecords | 可读写 | 可读写 | 可读写 | 可读写 |
move | 不支持 | 支持 | 支持 | 支持 |
movefirst | 支持 | 支持 | 支持 | 支持 |
movelast | 不支持 | 支持 | 支持 | 支持 |
movenext | 支持 | 支持 | 支持 | 支持 |
moveprevious | 不支持 | 支持 | 支持 | 支持 |
nextrecordset | 支持 | 支持 | 支持 | 支持 |
open | 支持 | 支持 | 支持 | 支持 |
pagecount | 不支持 | 不支持 | 只读 | 只读 |
pagesize | 可读写 | 可读写 | 可读写 | 可读写 |
recordcount | 不支持 | 不支持 | 只读 | 只读 |
requery | 支持 | 支持 | 支持 | 支持 |
resync | 不支持 | 不支持 | 支持 | 支持 |
source | 可读写 | 可读写 | 可读写 | 可读写 |
state | 只读 | 只读 | 只读 | 只读 |
status | 只读 | 只读 | 只读 | 只读 |
supports | 支持 | 支持 | 支持 | 支持 |
update | 支持 | 支持 | 支持 | 支持 |
updatebatch | 支持 | 支持 | 支持 | 支持 |
2、LockType 属性
在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时,数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当一个用户编辑时,如何由他对记录进行锁定。这就是由LockType属性所决定的。这个属性有四个值:
adLockReadonly(1) :默认值,只读。无法更改数据。(这是RecodSet的默认值,如果你把锁定的方式设为该值,那么你将不能更新 Recordset。)
adLockPessimistic(2):保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。(如果设置为此类锁定,记录被锁定,且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问! )
adLockOptimistic(3):开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。(只有在将数据提交给数据提供者的那一瞬间才把记录锁定。)
adlockBatchOptimistic(4):开放式批更新。用于与立即更新模式相反的批更新模式。(设定为这种类型的锁定制式将被称为批量更新模式的RecordSet。可以加快更新RecordSet修改数据的速度,但因为同时更新多个记录,它也会恶化与并发访问相关的问题!)
3.CursorLocation 属性
设置或返回游标服务的位置。
设置和返回值
设置或返回可设置为以下某个常量的长整型值。
常量 说明
adUseNone(1): 没有使用游标服务。(该常量已过时并且只为了向后兼容才出现)。
adUseClient(3): 使用由本地游标库提供的客户端游标。本地游标服务通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,因此使用该设置对于那些将要启用的功能是有好处的。AdUseClient 具有向后兼容性,也支持同义的 adUseClientBatch。
adUseServer(2): 默认值。使用数据提供者的或驱动程序提供的游标。这些游标有时非常灵活,对于其他用户对数据源所作的更改具有额外的敏感性。但是,Microsoft Client Cursor Provider(如已断开关联的记录集)的某些功能无法由服务器端游标模拟,通过该设置将无法使用这些功能。
说明
该属性允许在可用于提供者的各种游标库中进行选择。通常,可以选择使用客户端游标库或位于服务器上的某个游标库。
该属性设置仅对属性已经设置后才建立的连接有影响。更改 CursorLocation 属性不会影响现有的连接。
对于 Connection 或关闭的 Recordset 该属性为读/写,而对打开的 Recordset 该属性为只读。
由 Execute 方法返回的游标继承该设置。Recordset 将自动从与之关联的连接中继承该设置。
远程数据服务用法 当用于客户端 (ADOR) Recordset 或 Connection 对象时,只能将 CursorLocation 属性设置为 adUseClient。
cursortype,LockType,CursorLocation相关推荐
- asp php flash java,Linux_Flash 和 ASP / PHP 以及 javascript 的交互, 唉,第一次写文章,真是 - phpStudy...
Flash 和 ASP / PHP 以及 javascript 的交互 唉,第一次写文章,真是很紧张,这是前几天在网上查资料和自己研究的结果,希望能对一些朋友有用.水平所限,肯定有错漏之处,烦劳高手指 ...
- Mysql,SqlServer,Oracle主键自动增长的设置
Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...
- linux启动,重启,停止 jar,.sh脚本
linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...
- 堆栈,数据,文本,heap,bss,text data,stack
堆栈,数据,文本,heap,bss,text data,stack text data bss stack heap 段 根据APUE,程序分为下面的段:.text, data (initialize ...
- TVM示例展示 README.md,Makefile,CMakeLists.txt
TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...
- TVM,Relay,Pass
TVM,Relay,Pass Relay介绍 主要结合TVM的文档(https://tvm.apache.org/docs/dev/relay_intro.html),介绍一下NNVM的第二代Rela ...
- LED芯片,应用品,蓝宝石衬底,集成电路,UV
LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...
- CPU,GPU,Memory调度
CPU,GPU,Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分:计算单元 ...
- 自动驾驶QNX,Linux,Autosar概述
自动驾驶QNX,Linux,Autosar概述 QNX是一个分布式.嵌入式.可规模扩展的实时操作系统.遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具).部分遵循POSIX.1b( ...
最新文章
- 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...
- 从理论到实践: ORB-SLAM3 Initializer完全解读
- python 打印所有汉字
- UITableVIew的性能优化-重用原理
- linux系统虚拟化测试,网络性能与磁盘测试 - Linux虚拟化性能PK:Ubuntu系统6大版本_Linux新闻_Linux公社-Linux系统门户网站...
- Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现
- 吴恩达 coursera AI 专项二第二课总结+作业答案
- 【深度学习】卷积越大性能越强!RepLKNet一作在线分享:Transformer阴影下的超大卷积核复兴...
- 使用DBUA单一实例如何升级至Oracle数据库12c
- linux网络编程之Socket编程
- easyui源码翻译1.32--SearchBox(搜索框)
- Python标准库socketserver使用线程混入实现异步TCP服务器
- php curl array,PHP curl_setopt_array函数有什么用
- 锂离子电池性能测试软件,锂离子电池有什么性能测试设备?
- iOS XCode storyboard 设置控件三等分屏幕的约束添加
- java 杨辉三角_Java语言杨辉三角
- js 区分中英文输入法(如中英文括号)
- Python照片隐写术——照片内嵌信息(含模型、测试图片、测试视频)
- 中泰XTP极速交易系统缔造者:为量化而生
- android audiorecord插上耳机录音由dmic切换到耳机录音
热门文章
- python继承顺序
- 集群环境搭建-系统配置
- 2021-08-07
- 【报错】unexpected non-whitespace character after JSON
- genymotion虚拟机网络设置_genymotion模拟器怎么联网 genymotion联网方法图文教程
- DATEDIFF 函数
- 知识图谱问答系列文档(四)——从零开始搭建一个通用知识图谱问答【问题训练集生成】
- Kafka实战 - 02 Kafka生产者发送消息至topic实现数据上报
- 在 M1/M2 Mac 上,让 Windows 11 免费“跑”起来!
- 2021-08-30王道 数据结构 第5章 树与二叉树 p185 第10题