Recordset.Edit或Update sql vba语句更新最快的方法?

2024-02-26

我最近遇到了vba update语句并且我一直在使用Recordset.Edit and Recordset.Update不仅编辑我现有的数据,而且更新它。

我想知道两者的区别:recordset.update and Update sql Vba陈述。我认为它们都做同样的事情,但我不知道哪一个更有效以及为什么。

示例代码如下:

'this is with sql update statement
dim someVar as string, anotherVar as String, cn As New ADODB.Connection

someVar = "someVar"
anotherVar = "anotherVar"

sqlS = "Update tableOfRec set columna = " &_
         someVar & ", colunmb = " & anotherVar &_
                                    " where columnc = 20"; 

cn.Execute stSQL

这是用于记录集(更新和编辑):

dim thisVar as String, someOthVar as String, rs as recordset 
thisVar = "thisVar"
someOthVar = "someOtherVar"


set rs = currentDb.openRecordset("select columna, columnb where columnc = 20")
do While not rs.EOF
   rs.Edit
   rs!columna = thisVar
   rs!columnb = someOthvar
   rs.update

   rs.MoveNext
loop 

假设WHERE columnc = 20选择 1000 多行,正如您在评论中提到的那样,执行该操作UPDATE语句应该比循环遍历记录集并一次更新其行要快得多。

后一种策略是 RBAR(Row By Agonizing Row)方法。第一个策略,执行单个(有效)UPDATE,是一种“基于集合”的方法。一般来说,基于集合的性能优于 RBAR。

然而,你的两个例子提出了其他问题。我的第一个建议是使用 DAO 而不是 ADO 来执行您的UPDATE:

CurrentDb.Execute stSQL, dbFailonError

无论您选择哪种策略,请确保columnc已编入索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Recordset.Edit或Update sql vba语句更新最快的方法? 的相关文章

随机推荐

  • 使用不安全代码会产生什么影响

    除了代码本身可以直接访问内存这一事实之外 使用 unsafe 编译器标志和 fixed 关键字还有什么其他含义 是否有与我的 exe 的代码签名和部署相关的任何连锁效应 我的应用程序仅限桌面 这不是我是否应该这样做的问题 why我的问题涵盖
  • 有没有办法强制 Facebook 在共享链接上显示 og:image?

    我们有一个 Facebook 应用程序 当用户完成某些活动时 它会为用户生成自定义的可共享链接 可共享页面具有以下元标记
  • Qt:更改字体粗细

    我想将我的文字放入QLabel介于粗体和正常样式之间 我相信设置字体粗细应该是我问题的答案 在 Qt 文档中 我发现有两个选项可以更改字体粗细 从 cpp 端通过 QFont setWeight 接受数字 0 99 的方法 http doc
  • 旨在打开资源管理器的自定义 URI 协议

    我们有一个为 google chrome 设计的应用程序 我们需要在其中添加网络文件共享的链接 不幸的是 Chrome 否认file protocol出于安全目的 我们想要设置一个自定义协议来允许此功能 我认为做到这一点的一个好方法是调用资
  • 从 WPF 应用程序加载非托管 C++ DLL 时遇到问题

    首先 我要感谢所有花时间阅读本文的人 我是一位消息灵通的 C 程序员 使用 WinForms 并且我正在尝试 WPF 我在从 WPF 应用程序调用函数时遇到问题 因此我决定创建一个非常简单的示例项目来说明我的问题 在此应用程序中 我创建了一
  • didReceiveRemoteNotification:未附加到 xcode iOS 8.0.2 时未调用 fetchCompletionHandler

    这是问题 当应用程序附加到 xcode 时 didReceiveRemoteNotification fetchCompletionHandler叫做 但是当我将其分离时 即使收到通知也不会调用它 我再次附加应用程序 调试 gt 附加到进程
  • 我需要保留对 FileSystemWatcher 的引用吗?

    我正在使用一个FileSystemWatcher 在 ASP NET Web 应用程序中 监视文件的更改 观察者在 Singleton 类的构造函数中设置 例如 private SingletonConstructor var fileTo
  • Xcode 脚本 - 从构建设置而不是 info.plist 获取 Bundle ID

    我正在使用 Receigen 进行 Apple 收据检查 我在构建过程中集成了一个脚本 为我的项目生成适当的文件 Receigen binary RECEIGEN Applications Receigen app Contents Mac
  • 无法定义两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象

    我已经阅读了一些与此特定错误消息有关的问题 答案 但我不太了解适当的解决方案 我多次读到您应该创建 EF4 上下文 使用它 然后处理它 在我的应用程序中 我使用不同的上下文对象到处加载实体 然后最终希望将这些实体关联在一起 我创建了一个简单
  • 在 WooCommerce 中付款后立即更改订单状态[重复]

    这个问题在这里已经有答案了 我需要在收到付款后自动将订单状态更改为已完成 但前提是订单状态为 正在处理 我发现了这个片段 是什么让订单状态在每种情况下都完成 但是我的付款插件在成功付款更改后返回数据并更改 处理 的订单状态 我想在成功后将其
  • 调整图像大小并将其设置为输入文件

    我使用 jquery 在上传时调整图像大小 效果很好 但我的问题是我想发送调整大小的图像 并且我想在输入文件中设置新图像的数据 以便在提交时将其发送到服务器 但我无法实现这一点 每次发送大文件时 这是我的代码 div div
  • 什么时候可以在类的方法中创建类的对象?

    public class TestClass public static void main String args TestClass t1 new TestClass t1 anything 在同一个类的定义中创建一个对象是不是很奇怪
  • 为什么并行填充数组时会出现竞争条件?

    Julia 语言中有一个函数 可以并行地用随机值填充数组并计算其总和 function thread test v Threads threads for i 1 length v inbounds v i rand end sum v e
  • mem_fn 到成员对象的函数

    我正在摆弄std mem fn并且无法设法将其绑定到结构成员的数据 函数 更深一层 我希望代码能比我描述的更好地显示问题 因为我不熟悉这些术语 include
  • JS一键切换(不是点击两次)-切换元素的默认值

    为什么我们需要在这里单击两次 http jsfiddle net xL8hyoye 4 http jsfiddle net xL8hyoye 4 html a href Click here to toggle visibility of
  • iOS:UIPasteboard setImage:在 iOS6 和/或 Xcode 4.5 上失败

    Update 在 Apple 网站上添加了错误 12408800 我正在将一个或多个 UIImage 复制到 UIPasteboard 它一直工作得非常顺利 直到我的手机升级到 iOS 6 Xcode 4 5 与 iOS 5 1 OK Xc
  • boost::asio::co_spawn 不会传播异常

    我正在涉足关于 boost asio 的协程 并且我对异常处理感到困惑 判断通过examples https www boost org doc libs 1 71 0 doc html boost asio example cpp17 c
  • JupyterLab 的下载文件夹

    我想从 Jupyterlab 在谷歌云实例上运行 下载一个 pickle 文件的文件夹 但我找不到这样做的方法 显然 下载单个文件是允许的 但我的文件夹中有大约 500 个 pickle 文件需要下载 因此手动下载需要一些时间 正如您在下面
  • 如何知道UILabel中显示的文字?

    我有一个UIView含有两个UILabels 以显示字符串 首先UILabel有固定的大小 如果绳子太长 容纳不下UILabel 我想在第一个中显示最大字符数UILabel 并在第二个中显示字符串的其余部分UILabel 但要做到这一点 我
  • Recordset.Edit或Update sql vba语句更新最快的方法?

    我最近遇到了vba update语句并且我一直在使用Recordset Edit and Recordset Update不仅编辑我现有的数据 而且更新它 我想知道两者的区别 recordset update and Update sql