anydac-编辑前刷新记录(代码片段)

author author     2023-05-12     645

关键词:

目前我们正在将Delphi7应用程序的数据库组件从BDE组件迁移到AnyDAC Version 8.0.5组件。

在从另一个应用程序实例(会话)编辑记录之前,TTable(BDE)具有以下行为:

  1. 刷新记录并从其他实例中看到更改。该记录将在方法TBDEDataSet.InternalEdit中刷新。
  2. 数据集设置为编辑模式(DataSet.State = dsEdit)

使用适当的AnyDAC组件(TADTable),记录不会反映其他实例所做的更改。没有对TADConnection和TADTable进行特殊更改。

任何帮助赞赏。

答案

我不能代表BDE,因为我不想再接触它了,但你所描述的我可以读到:

为什么AnyDAC在编辑开始之前不刷新元组?

如果是这样的话,如果我错了,请纠正我,那将是非常违反UX的。想象一下,您是自己应用程序的用户,并希望在数据网格视图中编辑某个元组。您可以单击某个编辑按钮进入编辑模式,整个行会突然在您眼前发生变化(或者编辑器将填充不同于您所见过的数据)。你想要这样吗?

如果是这样,那么我担心您需要使用AnyDAC(或FireDAC)手动执行此类刷新。这里的要点是引擎要么通过事务锁定元组,要么在处于编辑模式时跟踪内部存储中的更改。

在两种情况下都不会在编辑开始之前刷新元组(无论您使用哪种锁定选项)。我个人对这种行为很好,因为它可能导致我上面所描述的。

那么如何在编辑开始之前刷新活动元组呢?

要刷新数据集光标在数据集编辑开始之前指向的特定元组,您可以调用例如来自RefreshRecord事件的BeforeEdit,例如:

procedure TForm1.ADTable1BeforeEdit(DataSet: TDataSet);
begin
  TADTable(DataSet).RefreshRecord;
end;

但是,您的数据库编辑功能将成为一个移动目标(好吧,也许它已经是)。

jqgrid刷新不取消选中(代码片段)

也就是说,刷新前选中的行,刷新后还是选中 varjqGrid=$("#jqGrid");//获取刷新前选中的行idvarjqGridRowid=jqGrid.jqGrid("getGridParam","selarrrow");//刷新表格jqGrid.jqGrid().trigger(‘reloadGrid‘);//等待2秒后选中刷新前选中的行setTimeout(function() 查看详情

springioc源码分析之-刷新前的准备工作(代码片段)

...ApplicationContext的注册方式加载父子容器配置路径解析容器刷新刷新容器之刷新预处理ClassPathXmlApplicationContext的注册方式源码分析基于Spring4.3从ClassPathXmlApplicationContext入口,最终都会调用到/**使用给定父级创建新的ClassPathXmlApplicati... 查看详情

javascriptchrome-加载前编辑dom(代码片段)

查看详情

AnyDac表单设计,编程查询取消对话框

】AnyDac表单设计,编程查询取消对话框【英文标题】:AnyDacformdesign,programmingquerycanceldialog【发布时间】:2013-02-2513:20:21【问题描述】:我的来自TADGUIxAsyncExecuteDialog组件的AnyDacCancel对话框有问题,基本上我需要用户能够取消查询... 查看详情

记录windowshost配置域名(代码片段)

...ts文件路径一般位置在:C:WindowsSystem32driversetc 2:右键编辑hosts文件在最下面增加127.0.0.1www.abc.com注意中间的空格,以上只是举个例子,域名可以随便写,可以写多个,例如我的hosts就配置了多个域名,无论访问哪个本机都会解... 查看详情

react+antd分页实现分页及页面刷新时回到刷新前的page(代码片段)

...dUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看代码,实现了页面跳转后刷新依然显示刷新前的页面。importReactfrom‘react‘importPagination,Spinfrom‘antd‘//引... 查看详情

sql查询-编辑页面访问历史记录(代码片段)

查看详情

redis-缓存设计-记录前一个小时和最新的日志(代码片段)

需求记录最新的日志99条同时记录上一个小时和最近一个小时的日志出现次数记录日志代码/****@paramconn连接*@paramname模块名字*@parammessage日志信息*@paramlevel日志等级*@paramtimeout重试时间*/publicstaticvoidlogCommon(Jedisconn,Stringname,Stringmessag... 查看详情

AnyDac aka FireDac 无法生成更新查询

】AnyDacakaFireDac无法生成更新查询【英文标题】:AnyDacakaFireDaccannotgenerateupdatequery【发布时间】:2014-06-3019:14:11【问题描述】:我已经使用UniDac很长时间了,并决定继续使用FireDac,因为在继续使用后它具有良好的异步方法,我发... 查看详情

flutterrefreshindicator禁用刷新(代码片段)

...实现刷新的,怎样在不通过重写布局的方式,在编辑模式下禁用刷新,在非编辑模式下启用刷新呢?解决方案查看源码发现RefreshIndicator也是一个通过notifcation驱动的行为的控件,具体在notifvation在flutter中是什... 查看详情

flutterrefreshindicator禁用刷新(代码片段)

...实现刷新的,怎样在不通过重写布局的方式,在编辑模式下禁用刷新,在非编辑模式下启用刷新呢?解决方案查看源码发现RefreshIndicator也是一个通过notifcation驱动的行为的控件 查看详情

flutterrefreshindicator禁用刷新(代码片段)

...实现刷新的,怎样在不通过重写布局的方式,在编辑模式下禁用刷新,在非编辑模式下启用刷新呢?解决方案查看源码发现RefreshIndicator也是一个通过notifcation驱动的行为的控件 查看详情

markdown语法记录(代码片段)

markdown语法介绍例文你可以使用vim工具直接编辑md文件,也可以用记事本打开md文件编辑你的文章,也可以Markdown的编辑器编写,有很多在线的编辑器,何有不少客户端的编辑器,我是Mac系统,用的一个叫Mou的编辑器,还比较好使... 查看详情

从 Anydac 移动到 Firedac 时 NULL 丢失

】从Anydac移动到Firedac时NULL丢失【英文标题】:NULL\'smissingwhilemovefromAnydactoFiredac【发布时间】:2013-12-1615:08:43【问题描述】:我正在将代码从Delphi2007+AnyDac移动到DelphiXE4+FireDac。在AnyDac的情况下,所有空字符串都像NULL一样存储,... 查看详情

数据库查询,返回前510行数据(代码片段)

...只能适用于mysql。limit子句用于强制select语句返回置顶的记录数,接受一个或两个数字参数,必须是整数常量。一个参数是返回前几条记录;两个参数时,第一个参数指定第一个返回记录行的偏移量(初始记录行的偏移量是0),... 查看详情

记录--vue刷新当前页面(代码片段)

...目当中如果做新增/修改/删除等等操作通常情况下都需要刷新数据或者刷新当前页面.思路(1)如果页面简单,调用接口刷新数据即可.(2)如果页面复杂,需要调用多个接口或者通知多个子组件做刷新,可以采用刷新当前页面的方式下面... 查看详情

leetcode72.编辑距离(代码片段)

/*****定义状态:DP[i][j]其中i表示word1前i个字符,j表示Word2前i个字符DP[i][j]表示单词1前i个字符匹配单词2前j个字符,最少变换次数;状态转移:fori:[0,m]forj:[0,n]if(word1[i-1]==word2[j-1])DP[i][j]=DP[i-1][j-1];elseDP[i][j]=min(DP[i-1][j],DP[i][j-1],DP[i 查看详情

springaopmybatis审计日志数据操作前操作后对比记录(代码片段)

...据对比分析,主要适用于系统中需要对数据操作进行记录、在更新数据时准确记录更新字段核心:mybatis插件(拦截器)、mybatis-Plus实体规范、数据对比 mybatis插件:  mybatis插件实际上就是官方 查看详情