问题标签 [redo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1898 浏览

oracle - 从一个 Oracle 实例读取重做日志并添加到另一个

您好,我是数据库中的新手。我想从一个 Oracle 实例中读取重做日志,并希望将这些事务存储在新的数据源中。

我知道GOLDEN GATE可以读取变更数据捕获。我想从任何其他技术中读取它。

请帮助我。

0 投票
0 回答
46 浏览

javascript - 我在 JavaScript 中找不到 JavaScript 撤消、重做和保存代码时遇到了麻烦,所以我制作了 StateMaker

这里是:

以下是我尝试的一些测试:

注意:StateMakerIntstance.isSavedState()告诉你保存按钮是否应该变亮,因为StateMakerInstance.statesStateMakerInstance.savedStates是一样的。

这个想法是为了与 Canvas 一起工作。我基本上试图模仿 Komodo Edit 撤消、重做、保存行为(没有看到他们的代码),但它最终只会基于用户的画布操作。我的逻辑有什么问题吗?如果没有,不客气。

0 投票
2 回答
10827 浏览

visual-studio-2010 - 如何在 Visual Studio 2010 上恢复或防止意外的 UNDO/REDO 操作

案例1(覆盖撤消/重做历史)

  1. 您正在“Program.cs”上编辑源代码。一个小时后,您已经完成了 100 行并输入了“Ctrl+S”(保存)。
  2. 要休息一下,您离开办公桌时没有关闭“Program.cs”和 Visual Studio。当您离开时,您的狗来到您的办公桌前并依次键入
    “Ctrl+Z”(撤消)>“Ctrl+Z”(撤消)> ...(直到出现原始代码)>“a”(键入文本)。
  3. 你从休息中回来,但为时已晚。您正在按“Ctrl+Z”(撤消)或“Ctrl+Shift+Z”(重做)来恢复 100 行,但您能得到的只是原始代码或“a”

案例2(丢弃撤消/重做历史)

  1. 您正在“Program.cs”上编辑源代码。一个小时后,您已经完成了 100 行并输入了“Ctrl+S”(保存)。
  2. 要休息一下,您离开办公桌时没有关闭“Program.cs”和 Visual Studio。当您离开时,您的狗来到您的办公桌前并依次键入
    “Ctrl+A”(全部)>“a”(键入文本)>“Ctrl+S”(保存)>“Ctrl+F4”(关闭 src ) .
  3. 你从休息中回来,但为时已晚。您正在按“Ctrl+Z”(撤消)或“Ctrl+Shift+Z”(重做)来恢复 100 行,但您能得到的只是"a"

通过以上案例我想说的是“100行很容易丢失”。
我知道那些可能性,并相信我永远不会抓住它们,但第二个案例只是在 30 分钟前因自己的错误而发生。

我想知道除了 SVN/GIT 提交和回滚功能之外是否存在任何解决方案。
不幸的是,“撤消/重做上次全局操作”对我不起作用。

谢谢您的帮助。

0 投票
1 回答
324 浏览

arrays - Delphi - TStack 容量混乱

我一直在与 TStack 合作,尝试在我的程序中实现一个简单的撤消/重做功能。这背后的想法是,当一个动作被执行时,程序的当前状态被保存——即被压入堆栈。当用户单击撤消时,程序的最后一个状态被重新加载 - 即从堆栈中弹出。

这个想法的缺陷是堆栈不能永远增长,这意味着在达到容量值后,最旧的项目(堆栈底部的那些)应该被删除,因为新项目被推到顶部。

Delphi 中的 TStack 对象包含一个容量属性,我假设它会自动执行此“清理”,但是当我重载堆栈时(例如,将 11 个项目推入一个容量为 10 的项目),容量会更新以容纳更多项目。

任何人都可以就如何在这种情况下更有效地使用 TStack 向我提供任何建议吗?我知道另一种选择是使用数组结构,但我喜欢使用堆栈的预期易用性。

问候

0 投票
1 回答
907 浏览

prolog - Prolog 重做一个调用并且无缘无故地失败

我对Prolog相当陌生。无论如何,我正在尝试编写一组递归规则,以返回给定字符代码列表中每个单词的平均字符数。我的代码如下。

由于我不知道的原因,尽管 AvgLen 获得了正确的值,但当我调用 medellangd([68,69],AvgLen) 时,Prolog 返回 false。当我跟踪此调用时,尽管在 AvgLen 获取其值之前最初退出了每个调用,但如果我在 AvgLen 赋值后输入分号,Prolog 决定重做“(9) updatewords(68, 1, 0, _G2574)”,并且失败. 为什么会这样?

0 投票
2 回答
1734 浏览

mysql - MySql InnoDB 中的重做日志和双写缓冲区有什么区别?

以前,我认为重做日志是用来在发生崩溃时恢复数据库的。但是当我看到下面的注释时,我觉得我错了:

崩溃恢复

崩溃后再次启动 MySQL 时发生的清理活动。对于 InnoDB 表,使用重做日志中的数据重播来自不完整事务的更改。崩溃前提交但尚未写入数据文件的更改将从双写缓冲区中重建。当数据库正常关闭时,这种类型的活动在关闭期间由清除操作执行。
在正常操作期间,提交的数据可以在更改缓冲区中存储一段时间,然后再写入数据文件。在保持数据文件最新(这会在正常操作期间引入性能开销)和缓冲数据(这会使关机和崩溃恢复需要更长的时间)之间总是需要权衡取舍。另见更改缓冲区、提交、崩溃、数据文件、双写缓冲区、InnoDB、清除、重做日志。
它来自 mysql refman-5.7-en.pdf。

如果是真的,不知道redo log有什么用。因为,当崩溃发生时,mysql 可以通过双写缓冲区自行恢复。似乎重做日志没有意义。也许我忽略了某个地方,但我不知道。
我想知道它们之间的区别以及重做日志对 mysql InnoDB 是否重要?

0 投票
1 回答
1090 浏览

c++ - 使用链表撤消/重做

我写了一个程序,它用链表做很多不同的事情。它要求用户在链接列表中输入不同的文本行。他们既可以在列表末尾输入行,也可以在随机行号处输入行。或者他们可以删除一行。但是现在我需要编写一个或两个函数,当被调用时将撤消或重做最后一个命令,它可以连续撤消或重做多达 10 个命令。关于撤消涉及链表的命令的最佳方法是什么?

0 投票
0 回答
439 浏览

oracle - Oracle - 重做序列号与 Oracle 服务器的序列号不同

我有一个 oracle 数据库,它有问题阻止它打开。

为了克服这些问题,我尝试了以下步骤:

首先我安装了数据库:

之后,我恢复数据库如下:

在此之后,我尝试如下更改打开的数据库:

最后我尝试恢复 system01 数据文件,如下所示:

正如您在最终错误“ORA-00314: log 2 of thread 1, expected sequence# 9218 doesn't match 9215”中看到的那样,日志文件 redo02.log 和服务器之间存在序列不匹配。

这种不匹配是如何发生的,我该怎么做才能解决这个问题?

PS:由于无法打开数据库,无法切换日志文件,并且由于 redo02.log 是当前日志文件,因此无法删除或清理它。

0 投票
1 回答
233 浏览

qt - Qt Undo Framework 示例的问题:添加/删除项目

我使用 QT undo 框架示例作为在我的工具中实现此功能的参考。但是,它调用项目的析构函数的方式似乎有一个错误。

我了解 QGraphicsScene 将在项目位于场景中时承担项目的所有权。但是,两个撤消对象:AddCommand 和 RemoveCommand 在将它们从场景中移除时都应该承担这些项目的所有权。

在 Qt undo 框架示例中,只有 AddCommand 尝试删除其析构函数中的对象,但如果项目仍在场景中,则不会这样做。

在这种情况下,如果我们在相应的 AddCommand 对象离开堆栈后从场景中删除该项目(当使用撤消限制时),则该项目将永远不会被再次删除,因为 RemoveCommand 析构函数不会这样做。

0 投票
5 回答
34169 浏览

visual-studio-code - 在 Visual Studio Code 上保存后如何保留撤消历史记录

我正在使用最新版本的 VS 代码(1.9.0)。

在我撤消(ctrl+z)某些东西并保存文件(ctrl+s)之后,我就不能再重做(ctrl+y)了。

我想在编辑器与 Sublime 或其他编辑器一样运行期间来回切换。任何人都可以解决这个问题吗?谢谢你。