我正在使用SQL Server在Omnis中开发企业资源规划。
多个用户将读取 - 更新 - 删除ecords,因此我必须处理并发。
我看到两种可能的解决方案。我已经知道如何处理这两个问题。 我只是问你哪个更好。
自动解决方案 设置事务模式=自动,因此BEGIN-COMMIT-ROLLBACK事务由软件自动完成,但根本没有并发控制。 我可以在每个包含阻止记录的用户名的表上使用一个字段,如果为空则用户可以更新记录并将用户名存储在字段中, 如果该字段不为空,我将显示阻止该字段的用户。
手动解决方案 设置事务模式=手动,所以我必须处理BEGIN-COMMIT-ROLLBACK,但我可以使用UPDLOCK和ROWLOCK之类的东西。
你是否看到使用字段代替UPDLOCK和ROWLOCK作为一种糟糕的做法? 还有其他的利弊吗?
由于
答案 0 :(得分:0)
这不是字段vs UPDLOCK。问题应该是业务逻辑是什么以及你将采用哪种方式。
您到底遇到哪些并发问题以及如何解决这些问题?
如果有两个或更多并发代码,您的代码应该做什么:
然后您的回答是以下问题:
AUTOMATIC SOLUTION
会做你需要的或不做的事吗?或者你必须实现手动控制?