以下数据,部分来自网络的收集,部分为自己测试后的原创整理,希望对你有帮助,更新会注明日期。
1、locktype  指定用户打开数据集时对数据集的锁定级别:

  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的更多相关文章

  1. Delphi ADOQuery的速度优化 转

      今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQu ...

  2. delphi adoquery的post和UpdateBatch

    delphi adoquery的post和UpdateBatch Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库当ADOQuery的CursorType是c ...

  3. Delphi ADOQuery的速度优化

    今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSource和ADOQuer ...

  4. DELPHI控件属性事件说明

    常用DELPHI控件属性事件设置说明 常用DELPHI控件属性设置说明目录TForm Class TPanel组件 TToolBar Class TToolButton Class TTimer Cl ...

  5. Delphi ADOQuery

    Delphi ADOQuery procedure TForm1.Button1Click(Sender: TObject); var A: Array of String;//定义动态数组 Inde ...

  6. (转载)Delphi StringGrid常用属性和常用操作

    Delphi StringGrid常用属性和常用操作 StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控 ...

  7. 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)

    Delphi的重要属性,主要是Enable,  Visible, Color, left等等.这里分析left,因为TWinControl里有些覆盖函数的原因,虽然起点都是TControl.SetLe ...

  8. delphi RTTI 三 属性读取与赋值

    delphi RTTI 读取属性 运行期 通过RTTI给属性赋值 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/Event_RTTI_In ...

  9. delphi控件属性大全-详解-简介

    http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...

随机推荐

  1. springmvc Cacheable (RedisTemplate / StringRedisTemplate)

    直接使用spring缓存请见:https://www.cnblogs.com/hanjun0612/p/11661340.html RedisTemplate和StringRedisTemplate配 ...

  2. 单调栈+线段树——cf1220F

     首先考虑初始排列,pi会让周围所有比其大的元素深度+1,所以要求每个点的深度,只要其被覆盖了几次即可 这个覆盖可以通过处理每个元素的左右边界(单调栈O(n))+线段树区间更新(Ologn(n))来做 ...

  3. AcWing 196. 质数距离(筛法+离散化)打卡

    给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对. 同时,你还需要找到距离最远的两个相邻质数 ...

  4. AcWing 160. 匹配统计 (哈希+二分) 打卡

    阿轩在纸上写了两个字符串,分别记为A和B. 利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串A从任意位置开始的后缀子串”与“字符串B”匹配的长度. 不过阿轩是一个勤学好问的同学,他向你提出 ...

  5. (转)openfire插件开发(三)通过http方式向openfire客户端发信息

    转:http://blog.csdn.net/hzaccp3/article/details/19964655 需求:  通过http方式,向openfire客户端发信息(非XMPP协议)openfi ...

  6. C#调用Mail发送QQ邮件

    需要用到: 1.System.Net.Mail; 2.QQ邮箱的POP3/SMTP服务码 QQ邮箱的POP3/SMTP服务码获取方法: 1.打开qq邮箱: 2.进入设置页面-->账户:(往下翻) ...

  7. 强制关闭redis快照出现的异常

    https://blog.csdn.net/weixin_42781180/article/details/81950187

  8. 剑指offer第二版面试题7:二叉树的下一个节点(JAVA版本)

    题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 分析: 根据中序遍历的特点,要找到一个节点的下一个节点无非 ...

  9. PAT_A1050#String Subtraction

    Source: PAT A1050 String Subtraction (20 分) Description: Given two strings S​1​​ and S​2​​, S=S​1​​− ...

  10. PAT_A1117#Eddington Number

    Source: PAT A1117 Eddington Number (25 分) Description: British astronomer Eddington liked to ride a ...