我正在使用SQL Server在Omnis中開發企業資源計劃。Db併發性:字段與UPDLOCK
多個用戶將讀取更新刪除ecords,所以我必須處理併發性。
我看到兩種可能的解決方案。而且我已經知道如何處理這兩個問題。 我只是問你哪個更好。
自動解決方案 設置事務模式=自動,所以BEGIN-COMMIT-ROLLBACK事務由軟件自動完成,但根本沒有併發控制。 我可以在每個包含用戶名稱的表格上使用一個字段,以阻止記錄,如果爲空,用戶可以更新記錄,並且我將用戶名稱存儲在字段中,如果字段不爲空,我將顯示用戶阻止該字段。
手動解決方案 設置交易模式=手動,所以我必須處理BEGIN-COMMIT-ROLLBACK,但是我可以使用像UPDLOCK和ROWLOCK之類的東西。
您是否看到使用字段而不是UPDLOCK和ROWLOCK作爲糟糕的做法? 還有其他的親和壞嗎?
謝謝
如果USER_A正在更新一行,另一個用戶只能讀取該行。 – simona 2014-09-25 13:02:02
如果他們嘗試更新或刪除同一行,屏幕上的消息應通知USER_A正在更新該記錄。我需要那個。 – simona 2014-09-25 13:03:21
您不應該在屏幕上混淆消息的交易。您不希望交易由用戶輸入控制。最好在應用程序中編寫所有「屏幕鎖定」邏輯。例如:用戶編輯行 - 寫入日誌,第二個用戶無法編輯該行,然後日誌將更新有關行釋放。 – Rodion 2014-09-25 14:54:31