数据库的一个问题,帮下忙

ningbupt 2010-10-17 04:17:08
“当数据库state字段的值变为“执行”时,数据库的同一行的“执行进度”字段值从0到90开始累加,每隔1秒加1,一直加到90停止”这一步该怎么实现呢?是要用到触发器吗?存储过程要用吗?
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
缪军 2010-10-17
  • 打赏
  • 举报
回复
我刚才说的不清楚,所谓大尺度,是指不按时间间隔,而是按状态变化描述业务进度,
如果是按时间间隔的局限性前面已经说过,
我可以问你个实际的问题,假设你只利用数据库技术就实现了你的需求,
如果服务器宕机或者因维护而关机重启,这些进度要怎么维护呢?
如果用状态变化描述进度,就不存在这样的问题,


针对你的问题就事论事:
因为我不大清楚你的实际业务场景,只能给个思路供你参考:
假设状态变化的时间为TimeStart
进度=DataDiff(TimeStart,GETDATE()),
也就是说,你可以通过计算当前时刻与TimeStart的差值来实现进度描述,
其实你只需要一个字段存放那个状态改变的时间就可以了
wuyq11 2010-10-17
  • 打赏
  • 举报
回复
需要timer定时执行吗
直接修改执行进度为90,延迟
ningbupt 2010-10-17
  • 打赏
  • 举报
回复
进度就是大尺度的,一个任务执行要不止一个小时,其实可以每隔1分钟加1也可以的。
[Quote=引用 6 楼 microtry 的回复:]
方法不少呢,
你可以借助客户端程序或者DBMS的代理服务实现,
但是我认为很难可靠地实现,

一般实现进度描述,要么是大尺度的(周期比较长),
要么在客户端一次性完成(短时间的),数据库最多只保存状态值
[/Quote]
缪军 2010-10-17
  • 打赏
  • 举报
回复
方法不少呢,
你可以借助客户端程序或者DBMS的代理服务实现,
但是我认为很难可靠地实现,

一般实现进度描述,要么是大尺度的(周期比较长),
要么在客户端一次性完成(短时间的),数据库最多只保存状态值
ningbupt 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 microtry 的回复:]
你这个想法也太不靠谱了吧,90秒的变化按秒为单位记录到数据库,
且不谈计算机的处理时间的精度影响和并发负载的问题,
就是客户端也没有这么快的反应速度能体现数据库的这种变化啊,
你记录这样的数据几乎没有实际意义
[/Quote]
先不说意义,我问一下这种功能可以实现吗?
缪军 2010-10-17
  • 打赏
  • 举报
回复
你这个想法也太不靠谱了吧,90秒的变化按秒为单位记录到数据库,
且不谈计算机的处理时间的精度影响和并发负载的问题,
就是客户端也没有这么快的反应速度能体现数据库的这种变化啊,
你记录这样的数据几乎没有实际意义
ningbupt 2010-10-17
  • 打赏
  • 举报
回复
自己顶上去
gw6328 2010-10-17
  • 打赏
  • 举报
回复
我想执行进度是在上层变化吧。如果有中断。等操作时把值写入数据库。开始时读出来继续增加
dadachenxi 2010-10-17
  • 打赏
  • 举报
回复
顶,我数据结构学的不是很好耶,用算法吧,值得学习学习

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧