我正在開發一個位於網路磁碟機上的解決方案,可供多個使用者非同步存取。 具體來說,我有幾個「資料庫」表,用戶將向其中添加行,其中行包含指向完整提交的資料表的連結。
在這種情況下是否有任何內建方法來管理文件存取權限? 我想避免用戶打開“資料庫”表並忘記關閉它的情況,從而將其他人鎖定在該工具之外。 我可以在互斥體上編寫自己的變體,但如果有內建的簡單解決方案,我不想重新發明輪子。 理想的解決方案是某種 JSL 腳本,它將一行資料傳送到資料表而不鎖定資料表。
需要澄清的是,當您說「資料庫」表時,您指的是 JMP 表嗎?
我不知道有任何執行行鎖定的能力 - JMP 本質上是單用戶的,所以我認為它沒有這種能力。這就是我所做的:
openSharedTable= Function({filePath},{default local},
isLocked = 1;
nAttempts = 200;
delay = 0.1;
attempts = 0;
While(isLocked & attempts < nAttempts,
attempts++;
dt = open(filePath,Invisible);
value = dt << Get Table Variable("Locked File");
If (value=="",
isLocked = 0
,
Close(dt,NoSave);
Wait(delay);
);
);
return(dt);
);