Delphi ADOQuery的属性 locktype、CursorLocation 、Filter、CursorType、CancelBatch 和 UpdateBatch
ltUnspecified 未指定锁定级别
ltReadOnly Read-only 只读 ,会加快数据读取速度
ltPessimistic 记录级别(该记录被编辑时其它用户不能用)
ltOptimistic 独立模式(与原来结果集对照,如果在此期间其它用户修改了结果,则你的结果不能保存)
ltBatchOptimistic 批量模式(使用缓存,进行批量提交)
ADOQuery的属性含义:
ltUnspecified 不特別指定
ltReadOnly 选出來的资料表只能读,无法写入
ltPessimistic 选出来的资料表可以写入,当改记录写入时会立刻写入并锁定
ltOptimistic 选出来的资料表可写入,当该记录表写入时不会立刻写入但会锁定,当执行updates时才正式写入改记录
ltBatchOptimistic 选出来的资料表可写入,当该记录写入时不会立刻写入但会锁定,当执行updates才正式整批写入该记录(可以修改多条整批update)
例如:开启本地缓存
ADOQuery1.LockType:=ltBatchOptimistic; //批处理
ADOQuery1.CacheSize:=1000; //缓存大小
ADOQuery1.CursorLocation:=clUseServer; //服务端模式 // 如果是想保存在硬盘文件,则
ADOQuery1.LoadFromFile();
ADOQuery1.SaveToFile(); //数据处理就在本地进行了,减少了网络传送 ADOQuery1.UpdateBatch //把缓存中修改的数据提交到服务器;更新数据
☆ 以上头几句数据其实真正有用的是这两句: --- -2019.08.22
ADOQuery1.LockType:=ltBatchOptimistic; //批处理
ADOQuery1.UpdateBatch //把缓存中修改的数据提交到服务器;更新数据
其余的加上去,反而会造成各种错误要处理,什么错误?
例如:1)“提供程序不能确定该值,该字段的默认值不可用,或用户未设置新值” , 产生错误的模块:ClUseServer
2)“BOF或EOF中有一个是“真”,或者当前的记录已被删除” ,产生错误的模块 CasheSize
另外说明一下,CasheSize大小的设置,其实在clUseClient 模式下无效果。 ----2019.08.22
2、CursorLocation 是用来确认数据库连接对象是使用服务端还是客户端游标库的属性,默认值为 clUseClient。
clUseClient 客户端光标 提供更多的灵活性,所有的数据是下载到本地后再进行操作,允许进行一些服务端不允许的操作,如排序、重置和过滤等等。SQL语句本身是在服务端执行,并且只返回WHERE子句限制下的结果集。
clUseServer 服务端光标 的灵活性较差,但是比较利于执行大数据量的操作。但如果返回的结果集超过了设定的磁盘缓冲空间就必须使用客户端光标了。而且很多数据库服务器只支持单向游标,这就意味着,你只能从头到尾遍历一次数据集(即使是一条记录)
3、Filter 属性值,即过滤数据
例如:
ADOQuery1.Filter:='Test='+''''+Edit1.text+'''';
注意:Filtered需要设置 为 true
4、CursorType 游标类型
ctOpenForwardOnly //向前移动 除了只能在记录集中向前移动以外,其它的和动态游标类似。
ctKeyset //键集 – 不允许查看其他用户添加的记录和访问其他用户删除的记录。
ctDynamic //动态 – 允许其他用户插入、更新和删除,支持在记录集中所有方向上的移动。
ctStatic //静态 - 支持在记录集中所有方向上的移动。但是其他用户的插入、更新和删除操作不可见。
ctUnspecified //未知
5、CancelBatch 和 UpdateBatch 即取消缓存 和 更新缓存 到服务器
通用的几个参数说明
arCurrent :当前记录
arFiltered :符合Filter过滤后的所有记录(如果你使用Filter过滤的话) arAll :所有记录 arAllChapters :所有节点,具体使用未知CancelBatch( arCurrent ) ; //取消当前行记录
UpdateBatch ( arCurrent ); //更新当前行记录
最近更新日期:2019.08.22
Delphi ADOQuery的属性 locktype、CursorLocation 、Filter、CursorType、CancelBatch 和 UpdateBatch的更多相关文章
- Delphi ADOQuery的速度优化 转
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQu ...
- delphi adoquery的post和UpdateBatch
delphi adoquery的post和UpdateBatch Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库当ADOQuery的CursorType是c ...
- Delphi ADOQuery的速度优化
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSource和ADOQuer ...
- DELPHI控件属性事件说明
常用DELPHI控件属性事件设置说明 常用DELPHI控件属性设置说明目录TForm Class TPanel组件 TToolBar Class TToolButton Class TTimer Cl ...
- Delphi ADOQuery
Delphi ADOQuery procedure TForm1.Button1Click(Sender: TObject); var A: Array of String;//定义动态数组 Inde ...
- (转载)Delphi StringGrid常用属性和常用操作
Delphi StringGrid常用属性和常用操作 StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控 ...
- 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)
Delphi的重要属性,主要是Enable, Visible, Color, left等等.这里分析left,因为TWinControl里有些覆盖函数的原因,虽然起点都是TControl.SetLe ...
- delphi RTTI 三 属性读取与赋值
delphi RTTI 读取属性 运行期 通过RTTI给属性赋值 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/Event_RTTI_In ...
- delphi控件属性大全-详解-简介
http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...
随机推荐
- Nginx基础优化
Nginx基础优化 1.隐藏nginx header版本号 1.1查看版本号 [root@Nginx ~]# curl -I http://www.yunwei.cn HTTP/1.1 200 OK ...
- secureCRT 如何上传下载文件
首先连接相应服务器,然后在文件选项当中,打开SFTP功能,这个时候会生成一个新的标签栏. 下载: cd 到要下载文件的路径下 lcd 要存放文件的本地路径 get {filename} 例: cd ...
- codeforces1213F Unstable String Sort 思维
题目传送门 题意:a和b都代表字符串的下标,至少用k个字符,构造一个长度为n的字符串,将这个字符串中的字符按无论是按$a$写还是按$b$写,字典序都非递减. 思路:如果将$a[l,r]=b[l,r]$ ...
- C++ 空类,默认产生哪些成员函数
C++ 空类,默认产生哪些成员函数. 默认构造函数.默认拷贝构造函数.默认析构函数.默认赋值运算符 这四个是我们通常大都知道的.但是除了这四个,还有两个,那就是取址运算符和 取址运算符 con ...
- 2018CSS特效集锦牛逼
https://tympanus.net/codrops/2018/12/27/awesome-demos-from-2018/
- Manacher模板(O(n)内求最长回文串长度)
转自:https://segmentfault.com/a/1190000008484167 /* 由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以 ...
- final关键字和static关键字
final关键字:最终态--修饰成员变量,成员方法,类 final修饰变量: 基本类型变量:该变量为常量不能被赋值 引用类型变量:该地址不能被概变 地址不能被概变的原因: final Student ...
- ajax验证用户名是否存在,手机号是不是匹配
<label class="col-sm-2 control-label font">用户名</label> <div class="col ...
- 阿里云物联网边缘计算加载MQTT驱动
写在前面 本文在LinkEdge快速入门样例驱动的基础上,加载了MQTT订阅的客户端,使得边缘端容器可以通过MQTT获得外部数据. 1. 系统需求 物联网边缘计算平台,又名Link IoT Edge[ ...
- BZOJ 4698: Sdoi2008 Sandy的卡片(后缀数组+差分+二分答案)
传送门 解题思路 看到一个子串加一个数字到另一个子串,自然可以想到差分.然后要把所有串都拼起来,求出\(height\)数组后可以二分答案来做,每次二分一个答案后统计一下连续的\(height> ...