0

一个人打开网站上的页面以执行质量控制任务。在一页上,质量控制活动在用户点击开始按钮时开始。在另一个页面上,活动在页面加载时开始。

质量控制活动可以在以下人员结束时结束:

  1. 完成任务,
  2. 另存为不完整,或
  3. 只是关闭浏览器窗口。

EndTime 可以发生在质量控制任务开始后 10 秒到 30 分钟的任何时间。

问题: 如果您有一个包含ActivityIDStartTimeEndTime列的表,那么当更新现有记录的行为发生在存储过程之外时,将这些信息保存到表中的最佳方法是什么插入记录?必须捕获 StartTime,这很简单,但是,无论任务完成多久,都必须捕获唯一 Activity 的 End Time,并且必须将 Activity EndTime 从 NULL 更改为“完成”。

需要考虑的一些场景:

这条路线可以接受吗...?编写一个 proc 以在页面加载时调用 Insert。作为 proc 的一部分,插入新活动和开始时间,并返回 ActivityID 的值(此处描述的一种方法: 获取最后插入记录的 ID)。当网页遇到“结束”事件时,传递从第一个 proc 返回的 ActivityID,并调用一个 proc,为来自第一个 proc 的 AcitivityID 添加结束时间。

4

1 回答 1

1
  insert into [Table_2] ([valueStart]) values('start');
  select SCOPE_IDENTITY();

  int sqlIden = SQLcommand.execute();

  // perform task

  update [Table_2] set [valueFinish] = 'finish' where [id] = sqlIden.ToString();
于 2012-07-09T22:34:25.017 回答