問題:在現代數據庫系統中長時間保持記錄的常見做法?在現代數據庫系統中長時間保持記錄的常見做法?
我的理解是在數據庫中鎖定記錄(樂觀或悲觀)通常是在交易過程中很短的時間。
我現在有工作的軟件一直鎖在記錄很長一段時間:
鎖保持在登錄的用戶(在ACTIVE_USERS」表)的記錄用戶登錄軟件的全部時間。
假設用戶A正在處理文件。與該文件相對應的記錄被鎖定,直到USER A保存文件或退出文件。因此,如果一個同事USER B試圖在同一個文件上工作,會出現一個彈出窗口,說'你不能在這個文件上工作,因爲USER A正在處理它'。
公司我工作來實現與Microsoft SQL Server兼容希望改變是微乎其微:所以我需要實現這樣的鎖定機制。我已經破解了一個在最小測試項目上工作的東西,但我不確定它是否符合行業和MSSQL的標準......
我希望用戶永遠不要去吃午餐:-)。 –
你的意思是*記錄鎖*?這是一個RDBMS鎖實際上還是某種*自我管理*鎖標誌? – Shnugo
@Shnugo:它不僅僅是一個標誌:應用了一個實際的RDBMS鎖。我們的代碼(使用Advantage Database Server的函數)對數據庫中的記錄應用鎖。我們的代碼在Delphi中,我們使用Advantage數據庫服務器中的模塊來應用鎖。在使用MSSQL數據庫(tru Delphi的FireDAC模塊)時不存在這樣的功能性 –