我们有一个单用户 Access 2007 数据库,它可以在计时器(“事件”)上发送报告和更新其他数据库——一次一个事件。在执行每个事件时,将创建一个包含事件需要运行的信息的单行记录集。我一直在使用单个变量以通常的方式将参数传递给函数,但我想知道将整个事件记录集传递给每个函数并使用该函数所需的任何内容是否有意义。再次考虑到这是一个单用户数据库,每天只有大约 250 个事件,这有什么缺点吗?
问问题
81 次
1 回答
3
简答
在公开的上下文中,将记录集(作为引用)传递给函数没有缺点。根据您的整体设计、产品周期等,这可能是好事也可能是坏事。
分析
- 内存分配:Recordset 对象将被分配更长的时间;但不会使用更多内存。所以没有坏处。
- speed :由于您不必将数据从记录集复制到变量,这可能是一种改进 - 如果使用大数据量,例如数组。
- 锁定数据库:如果没有并发进程,则没有可能的冲突。对于并发进程,只要
Recordset
是只读的,就没有冲突。 - 数据一致性(如果数据库内容在 a
Recordset
打开时发生变化)?DBMS 确保数据的一致性。根据您是否希望将更改反映在中Recordset
,将其作为动态集或快照打开(另请参见 MSDN)。为了保持与现在相同的行为,它应该是快照类型。 - 接口设计:你的函数的 API 会更灵活——对数据库结构的变化不太敏感。判断这是好事还是坏事……嗯,取决于上下文和基于意见。
于 2013-09-12T06:19:08.090 回答