2009-04-15 44 views
1

我想知道是否有一种可靠/真实的方法来报告从.Net应用程序到其用户的数据库调用进度。我想知道是否可以真正指出完成的百分比,还是仅仅显示“加载”动画以表明发生了某些事情的最佳/唯一方法?从.Net调用SQL的进度条

此外,SQL2008是否可以解决任何人的知识?

回答

1

您必须确定性地加载内容。例如,如果你知道,你会获取大量的数据,例如,你可以这样做:

-GET所有记录的计数 -GET其中500 -report状态500 /总% -get 1000 500多个 -report状态/总% -...继续下去,直到你已经得到了他们所有的用户已经取消

这将是令人难以置信的浪费在一些需要根本没有时间,因为去数据库的事实是开销的很大一部分。

0

你可以使用RAISERROR与没有等待选项将消息发送回远程呼叫者没有结束sql事务。当然,这会打破惯常的try/catch惯例,所以谨慎行事。另一方面,“db调用”也可能指向还原或备份操作,在这种情况下,您可以简单地使用SMO(服务器管理对象)库中的进度事件。

此外,ORM解决方案(如Linq)可用于处理“db调用”,如批量更新操作。如果是这种情况,那么这个答案可能是有用的: How can I get a percentage of LINQ to SQL submitchanges?