博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO实现单条记录的刷新《转》
阅读量:4921 次
发布时间:2019-06-11

本文共 900 字,大约阅读时间需要 3 分钟。

如何有效刷新当前记录ADO的Recordset对象有一个Resync方法, 可以刷新不同范围的数据. 如果想刷新当前记录可以用如下的语句:
var    Rst: _Recordset;begin    ...    Rst.Resync(adAffectCurrent, adResyncAllValues);    ...end;
可惜delphi的TADODataSet没有封装这个功能. 如果要在TADODataSet刷新当前记录, 只有使用Requery方法重新执行SQL语句, 或使用Refresh方法. Requery重新执行, 记录指针放在第一条, 而不是当前记录. Refresh方法其实使用了Rst.Resync(adAffectAll, adResyncAllValues)来刷新, 效率奇慢. 因此, 写了段代码来刷新TADODataSet 的当前记录, 这段代码做成公共函数也可以做成TADODataSet子类的方法.
procedure ADORefreshCurrent(DataSet: TADODataSet);begin  with DataSet do  begin    CheckBrowseMode;    UpdateCursorPos;    try      Recordset.Resync(adAffectCurrent, adResyncAllValues);    finally      Resync([]);    end;  end;end;procedure TXXXXDataSet.RefreshCurrent;begin  CheckBrowseMode;  UpdateCursorPos;  try    Recordset.Resync(adAffectCurrent, adResyncAllValues);  finally    Resync([]);  end;end;

 

转载于:https://www.cnblogs.com/LceMeaning/archive/2013/05/21/3090894.html

你可能感兴趣的文章
docker 部署spring.boot项目【一】(引用外部配置文件)
查看>>
CSS 巧用 :before和:after
查看>>
Winform——用户登陆
查看>>
【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
查看>>
Zookeeper通过java创建、查看、修改、删除znode
查看>>
Web设计师应该避免的 6 大错误
查看>>
强化学习(基本概念)
查看>>
selenium学习笔记(一)
查看>>
Android 更新UI的两种方法——handler和runOnUiThread()
查看>>
Python 全栈开发:python正在表达式(re模块)
查看>>
TFS二次开发系列:一、TFS体系结构和概念
查看>>
NopCommerce 开源商城下载配置安装
查看>>
实践实践(dom)jQuery属性操作
查看>>
C#再识委托
查看>>
【NIO】Java NIO之缓冲
查看>>
共享经济
查看>>
用ildasm/ilasm修改IL代码
查看>>
deepin 15.3 安装数据库MariaDB10.0
查看>>
怎么解决svn清理失败且路径显示乱码问题
查看>>
python学习 第一天 python基础
查看>>