将记录集传递给函数而不是单个变量是否有任何缺点?

时间:2013-09-12 03:17:23

标签: ms-access access-vba

我们有一个单用户Access 2007数据库,可以执行发送报告和更新计时器上的其他数据库(“事件”) - 一次一个事件。在执行每个事件时,将创建一行记录集,其中包含事件需要运行的信息。我一直在使用单个变量以常规方式将参数传递给函数,但我想知道将整个事件记录集传递给每个函数并使用该函数所需的任何内容是否有意义。考虑到这一点,这是一个单用户数据库,每天只有大约250个事件,这有什么不利之处吗?

1 个答案:

答案 0 :(得分:3)

简答

在公开的上下文中,将记录集(作为参考)传递给函数没有任何缺点。 根据您的整体设计,产品周期等,这可能是好事也可能是坏事。

<强>分析

  • 内存分配:Recordset对象将被分配更长的时间;但不会使用更多的内存。所以没有缺点。
  • 速度:由于您不必将记录集中的数据复制到变量,这可能是一项改进 - 如果使用大数据量,例如数组。
  • 锁定数据库:如果没有并发进程,则不存在可能的冲突。对于并发进程,只要Recordset是只读的就没有冲突。
  • 数据一致性(如果数据库内容在Recordset打开时发生变化会发生什么情况)? DBMS确保数据一致性。如果您希望更改反映在Recordset中,请将其打开为动态集或快照(see also MSDN)。要保持与现在相同的行为,它应该是快照类型。
  • 界面设计:您的函数的API将更灵活 - 对DB结构的更改不太敏感。告诉我,如果这是一件好事或一件坏事......那么,是依赖于背景和基于意见的。
相关问题