Session 演示经典ASP网站的好方法

Session 演示经典ASP网站的好方法,session,asp-classic,dataset,Session,Asp Classic,Dataset,在经典网站中,在会话变量中保存数据的最佳方法是什么 我正在维护一个经典网站,希望能够允许我的用户演示该网站的所有功能,这意味着允许他们删除记录 到目前为止,我所看到的壁橱示例是Telerik控件的演示,它们在第一次加载时将数据集保存在会话中,并允许用户操作数据 如何在ASP中使用MS Access后端实现同样的功能?只要您记得在检索时存储的是哪种类型的变量,就可以在会话变量中存储连接或包含对象。我从未在会话变量中存储过数据集,但我在会话变量中存储了大量数组,因此您可以使用将完整的数据集定位到会话

在经典网站中,在会话变量中保存数据的最佳方法是什么

我正在维护一个经典网站,希望能够允许我的用户演示该网站的所有功能,这意味着允许他们删除记录

到目前为止,我所看到的壁橱示例是Telerik控件的演示,它们在第一次加载时将数据集保存在会话中,并允许用户操作数据


如何在ASP中使用MS Access后端实现同样的功能?

只要您记得在检索时存储的是哪种类型的变量,就可以在会话变量中存储连接或包含对象。我从未在会话变量中存储过数据集,但我在会话变量中存储了大量数组,因此您可以使用将完整的数据集定位到会话变量中。

如果您希望在多个页面上保持状态(例如演示完整的应用程序),那么这有点棘手

我建议为每个会话复制MDB文件并使用复制的版本。这将确保每个会话都使用自己的数据

  • 创建access db的一个版本,该版本将用作每个用户的新模板
  • 在会话上,复制模板并以用户会话ID命名
  • 使用单个MDB
注意:我在这里看到的唯一缺点是,您需要删除未使用的MDB文件,因为它可能会在一段时间后得到很多。在创建新任务之前,您可以使用计划任务,甚至在会话启动时执行此操作


我不确定您可以用什么来检查它是否被使用,但请检查文件创建日期,或者LDF文件也可以帮助您(如果它不存在=未使用)。

Access数据库有多大?如果您的数据库足够小(相对于服务器容量、预期用户数等等),那么我喜欢为运行演示的每个用户使用数据库的新副本

通过这种方法,您可以简化可能的代码路径。否则,“我们是否处于演示模式?”逻辑将渗透到大量代码中

我会这样做

  • 当用户开始演示时,制作Access DB的副本供该用户使用。如果数据库是foo.mdb,请将其复制到/tempdb/foo_1234567890.mdb,其中1234567890是用户的会话ID

  • 更改用户的连接字符串以指向新的数据库副本。从现在起,你的应用程序可以像“正常”一样运行,无需进一步修改

  • 具有一个计划任务,该任务删除/tempdb中的所有文件,上次修改时间过去超过__;小时。如果您无法在服务器上安排任务(可能您在共享主机环境中,等等),那么您可以在执行步骤1的同时执行此操作