我正在研究一种可以在网络驱动器上运行的解决方案,可以由多个用户异步访问。具体来说,我有几个用户将添加行的“数据库”表,其中行包含指向其完整提交的数据表的链接。
在这种情况下,是否有任何内置方法来管理文件访问权限?我想避免用户打开“数据库”表并忘记关闭它,将其他人锁定在工具之外的情况。我可以使用互斥锁编写我自己的变体,但如果有一个内置的简单解决方案,我不想重新发明轮子。理想的解决方案是某种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);
);