如何将数据或消息从SQL Server推送到Web应用程序

时间:2012-01-18 03:13:05

标签: sql-server asp.net-mvc

我正在开发一个 asp.net MVC 3 Web应用程序项目。该项目很简单,它提供了一个列出SQL Server存储过程的网页。当用户选择存储过程并点击“运行”按钮时,调用它在SQL Server中执行并返回一些执行结果。

我的存储过程在逻辑上分为几个步骤,比如说10个步骤,每个步骤都会打印一条消息,如step 1: doing A...step2: dong B...,直到step 10: donestep 10: fail. (with error message)

我不希望用户只是等待存储过程完成并看到最终结果消息。我希望他们看到某种存储过程的实时执行,以便用户可以很好地更新存储过程的位置。一些存储过程很快,需要几秒钟才能完成,有些很慢,甚至需要1小时才能完成

现在问题是:我怎样才能将这些步骤消息从SQL Server推送到Web应用程序,以便在Web浏览器中,用户可以看到每个步骤消息以实时方式打印? / p>

我搜索了很多信息,我能看到的最好的是模型控制器一旦模型发生变化就会通知视图,但仍然需要模型控制器从SQL Server中提取,我没有看到任何从SQL Server到Web应用程序的真正推动。非常感谢您的建议。

2 个答案:

答案 0 :(得分:0)

一种方法是在过程开始时使用唯一名称创建日志表。 MVC代码将显示一个显示此日志表的网格或其他元素,存储过程将在每个步骤完成后向表中添加行...

  1. 抓住连接的会话ID
  2. 该过程创建一个名为LOG_SessID
  3. 的文件
  4. MVC打开表并使用Meta Refresh或Timer重新显示页面
  5. 每个重新显示都会检查表是否仍然存在,如果不存在,则表示该表 假设程序已完成并打印相应的消息

答案 1 :(得分:0)

一种可能的解决方案是,您可以根据结果将SP分解为步骤并调用每个Step的SP并更新用户屏幕(即使每个步骤的成功和失败都有单独的MVC VIEWS / PARTIAL VIEWS)!