取消记录更改

     2023-03-23     212

关键词:

【中文标题】取消记录更改【英文标题】:Cancelling Record Changes 【发布时间】:2012-04-13 20:51:23 【问题描述】:

我正在使用 dbedit 组件编辑记录,我有一个取消按钮,但我不确定如何制作它,因此使用 dbedit 组件所做的所有更改都将被还原。

我正在考虑将记录复制到临时表或在同一个表中复制记录取消。

我只是想知道在不创建无用表和创建太多过程的情况下处理此问题的最佳方法。

【问题讨论】:

【参考方案1】:

如果我没记错的话,对 paradox 表的更改只会在 post 命令之后写入数据库。 如果您想取消更改,只需执行此操作

TForm1.CancelButtonPresss(Sender: TObject);
begin
  ParadoxTable.Cancel;
end;

TForm1.OKButtonPress(Sender: TObject);
begin
  ParadoxTable.Post;
end;

顺便说一句,自从我使用悖论表以来已经很长时间了,所以我的记忆是不正确的,如果我弄错了,请随时投票否决这个答案。 我是在mac上输入的,所以现在无法查看。

稍后我会看看是否可以为您提供更明智的答案。

【讨论】:

对于任何(或至少大多数)TDataSet 后代都应该是这样。只要数据还没有发布,您应该可以调用 .cancel 将记录恢复到原始状态。【参考方案2】:

为了称赞 Johan 的回答(使用 TDataSet.Cancel),如果您使用 TCustomClientDataSet,您也可以使用 RevertRecord 方法删除对当前记录的修改,前提是它们仍在更改日志中。

您还可以使用SavePoint 设置快照并恢复到该状态,同时取消所有修改。

【讨论】:

+1 用于保存点。这是使用 TDataset 时处理这种情况的正确方法。【参考方案3】:

Johan 的回答很适合单曲。如果您正在使用 SQL 数据库(Oracle、MSSql、MySql、Firebird 等),还有一种可用于多条记录的附加方法:事务。以 ADO 为例

  TForm1 = class(TForm)
    ADOConnection: TADOConnection;
…

  // start the transaction
  ADOConnection.BeginTrans;
…

  // create records and post them
…

  // rollback removes the records posted
  // since the transaction was started
  ADOConnection.RollbackTrans;
… or …
  // commit completes saving the records posted
  // since the transaction was started
  ADOConnection.CommitTrans;

如果您没有显式启动事务,则会在记录发布到数据库时自动启动并提交。

François 的回答类似于事务,但仅适用于 ClientDatasets。

【讨论】:

如何在设置记录数据时屏蔽 Extjs 网格并在设置后取消屏蔽?

】如何在设置记录数据时屏蔽Extjs网格并在设置后取消屏蔽?【英文标题】:HowtoMASKtheExtjsGridwhilesettingtherecorddataandunmaskafterset?【发布时间】:2013-04-1708:30:35【问题描述】:我在一个有5列的网格内一次显示1500到2000条记录。工具栏... 查看详情

表单更改时触发的事件

...录。因此,我需要插入和删除记录,因为这些框被选中和取消选中。我可以使用Afte 查看详情

updateset语句

...不生成结果集,而且当使用更新查询更新记录之后,不能取消这次操作。语法:UPDATEtableSETnewvalueWHEREcriteria说明:table参数指定表的名称,其中包含要更改的数据。newvalue参数为一个表达式,用来计算要插入更新记录中特定字段的... 查看详情

UISearchController 更改“取消”按钮标题

】UISearchController更改“取消”按钮标题【英文标题】:UISearchControllerchange\'Cancel\'buttontitle【发布时间】:2015-02-2106:16:43【问题描述】:我们如何更改搜索控制器中取消按钮的标题?【问题讨论】:我在这里写了一个关于这个话题... 查看详情

android M中权限更改的广播动作

...当用户在我们的应用程序崩溃之间撤销此权限时。当用户取消记录时,找不到任何方法 查看详情

SwiftUI ActionSheet 如何更改取消颜色

】SwiftUIActionSheet如何更改取消颜色【英文标题】:SwiftUIActionSheethowcanichangecancelcolor【发布时间】:2021-03-2523:58:33【问题描述】:我有一个包含5个元素和一个取消按钮的操作表。我正在尝试将取消按钮设置为红色,但它不起作用... 查看详情

取消路由更改请求 (React/Redux/Axios)

】取消路由更改请求(React/Redux/Axios)【英文标题】:Cancelrequestsonroutechange(React/Redux/Axios)【发布时间】:2017-12-1120:12:18【问题描述】:是否有方便的方法可以使用axios、redux-thunk、redux取消任何路由更改的所有发送请求?我知道axios... 查看详情

更改搜索栏取消按钮的名称 IOS 7

】更改搜索栏取消按钮的名称IOS7【英文标题】:changethenameofthesearchBarcancelbuttonIOS7【发布时间】:2014-06-0821:33:10【问题描述】:我在更改搜索栏取消按钮的文本时遇到问题。查看我的代码:-(void)searchBarTextDidBeginEditing:(UISearchBar*)se... 查看详情

通过取消引用更改 NSArray 中的值?

】通过取消引用更改NSArray中的值?【英文标题】:ChangethevalueswithinNSArraybydereferencing?【发布时间】:2010-12-1914:33:18【问题描述】:我遇到了一个与objective-c中的数组中的指针有关的问题。我要做的是获取NSArray中的指针,将它们传... 查看详情

选中和取消选中 Qt 上的 QRadioButton 颜色更改

】选中和取消选中Qt上的QRadioButton颜色更改【英文标题】:QRadioButtoncolorchangeonSelectedanddeselectedQt【发布时间】:2016-12-0711:35:25【问题描述】:我正在尝试将选中和取消选中的单选按钮的颜色更改为QtStylesheet:QtStylesheet但在此链接中... 查看详情

取消选中单选按钮后如何更改课程

】取消选中单选按钮后如何更改课程【英文标题】:HowtoChangeclassafteruncheckingradiobutton【发布时间】:2021-07-2718:24:23【问题描述】:取消选中单选按钮后,我尝试更改班级模式的样式,但它不起作用。它只添加类card-modal-2但不删除... 查看详情

如何取消 RadioButton 或 CheckBox 选中的更改

】如何取消RadioButton或CheckBox选中的更改【英文标题】:HowtocancelRadioButtonorCheckBoxcheckedchange【发布时间】:2010-11-2504:42:34【问题描述】:有什么方法可以在RadioButton或CheckBox改变之前取消它的状态改变?我希望有一个简单的事件,... 查看详情

PostgreSQL 临时表是不是已经取消记录?

】PostgreSQL临时表是不是已经取消记录?【英文标题】:ArePostgreSQLtemporarytablesalreadyunlogged?PostgreSQL临时表是否已经取消记录?【发布时间】:2020-04-0210:41:43【问题描述】:我正在处理一个数据库操作,该操作会产生大量插入(~15,0... 查看详情

Swift:searchBar - 如何更改“取消”按钮标题

】Swift:searchBar-如何更改“取消”按钮标题【英文标题】:Swift:searchBar-howtochange"Cancel"Buttontitle【发布时间】:2015-04-0411:21:55【问题描述】:我有采用UISearchBarDelegate的UIViewController。并将其委托设置为self:resultSearchController... 查看详情

Swift:searchBar - 如何更改“取消”按钮标题

】Swift:searchBar-如何更改“取消”按钮标题【英文标题】:Swift:searchBar-howtochange"Cancel"Buttontitle【发布时间】:2015-04-0411:21:55【问题描述】:我有采用UISearchBarDelegate的UIViewController。并将其委托设置为self:resultSearchController... 查看详情

WPF CoerceCallback 取消值更改

】WPFCoerceCallback取消值更改【英文标题】:WPFCoerceCallbacktocancelvaluechange【发布时间】:2020-09-0910:58:36【问题描述】:我有一个文本框数据绑定到UpdateSourceTrigger=PropertyChanged的​​字符串。我只想允许用户在文本框中输入整数。我... 查看详情

取消搜索栏时,所选行正在更改

】取消搜索栏时,所选行正在更改【英文标题】:Whensearchbariscancelled,selectedrowischanging【发布时间】:2018-04-2200:36:33【问题描述】:我创建了一个带有搜索栏的集合视图。在此集合视图上可以选择行。当我搜索某些内容和选择一... 查看详情

如何在不更改文本字段光标的情况下更改 UISearchController 搜索栏中取消按钮的颜色?

...不更改文本字段光标的情况下更改UISearchController搜索栏中取消按钮的颜色?【英文标题】:HowtochangecolorofcancelbuttoninaUISearchControllersearchbarwithoutchangingtextfieldcursor?【发布时间】:2015-02-2310:16:14【问题描述】:我正在尝试更改UISearch... 查看详情