我希望这是一个相当简单的问题,因为我不是在寻找任何具体的代码。我在一个从sql server填充的经典asp页面上有一个表。我只是设置了表格,以便每行都可以点击并带你到一个页面来编辑行中的数据。我的问题是:我是否会更好地尝试使用填充表的记录集,或者我应该重新连接到数据库并只提取我想要编辑的记录。
答案 0 :(得分:1)
一如既往;这取决于。这取决于您需要编辑的记录。这取决于您的数据库和站点之间的距离。这取决于哪台机器,如果数据库和站点在不同的机器上,则更强大。
话虽这么说,你应该为这个特定的记录打个电话。原因主要是因为您在问题中做出的规范:
...并带您到一个页面来编辑行中的数据
您不应尝试在页面之间传递记录集。这有几个原因
在第1点,有两种方法可以看到这一点。一个是当你只需要1条记录时,你试图在整个页面上传递整个记录集。在很少的情况下,另一个数据库调用的成本会高于此值。另一个是你只传递一条记录,这会让我质疑你的设计。为什么此记录集包含与记录相关的所有项目。您只是为结果列表选择了太多的方法。或者,如果记录很小,那么为什么需要新页面。为什么不能只显示该项目的编辑模板,如果它是最小的。
在第2点考虑以下情况。您正在与同事讨论如何更改客户的记录。您在应用程序中提取此结果集,然后自然呼叫,然后您离开桌面。客户打电话给同事并询问为什么记录尚未更新。为了安抚客户,您的同事会做出改变。现在您使用的是旧记录集,可能会覆盖您的同事在您离开时所做的其他更改。这一切都发生了,因为你永远不会更新记录集,你总是只是将旧的记录集从页面传递到另一页。
在第3点,我们可以回顾一点1。让我们说你现在正在通过5个领域。您决定是否需要将注释字段附加到其中一个现有字段。你打算将该评论字段的2000个字符传递到下一页吗?如果每个人都需要评论字段怎么样?您是否打算为正确分页的10个记录集传递10,000个字符?你不做记录集分页,需要传满10,000个字符才能获得完整的126条记录。
还有更多原因。您是否能够以这种方式保护您的记录安全?这会影响用户的体验,因为他们的计算机很糟糕,而且无法快速构建快速的发布请求吗?通常最好只保留您所需的内容,在大多数情况下,您的结果集不应包含您需要编辑的所有内容。