只读SAS视图(双击也是如此)

问题描述 投票:0回答:3

我们有SAS数据集,许多人都可以访问这些数据集进行读写。很多时候用户点击这些表并打开。表被锁定。为了避免这个问题,我尝试在同一个库中创建视图,如果人们双击它打开的视图表并再次锁定表。

我正在考虑使用access = read only选项在新库中创建视图的一种解决方案。

是否有只读视图选项,在某人双击和表中没有锁定表。是否可以在同一个库中创建此视图。

view sas locking
3个回答
1
投票

我还必须在没有SAS / SHARE的环境中处理这个问题。我的解决方案是编写一个定期运行的批处理作业,执行以下操作:

  1. 将日志转移到文本文件。
  2. 尝试使用lock语句锁定表。
  3. 如果成功,立即释放锁定。
  4. 使用数据步骤解析日志文件。
  5. 提取锁定表的任何人的用户名。
  6. 发送电子邮件给表的所有用户,通知他们用户X正在锁定它。

对表的更新每个只需要几分之一秒,所以虽然有可能抓住某人进行合法更新(或阻止他们这样做),但这种可能性很小。


1
投票

我建议最好的方法是创建一个简单的“数据查看器”Web应用程序。如果你有一个中间层和一个存储过程服务器,那么你已经准备好了,如果你有基本的javascript / html知识,它应该只有几个小时。

我在此sgf paper中编写了一个使用SAS构建Web应用程序的详细指南,并在此blog post中进行了快速摘要。

困难的部分将说服您的用户使用Web应用程序而不是客户端工具来读取数据!

从长远来看,最好避免使用SAS数据集并使用实际的数据库。


0
投票

您可以为同一个库中的这些数据集创建视图,但将它们保存到新的SAS文件夹,并为用户提供对文件夹和视图的只读访问权限。并教育您的用户有关SAS表锁的信息,以便他们看到锁定错误时不会被推迟。

如果您希望用户能够写入这些表,那么我建议您使用控制框架或流程。

示例流程:

  • 用户必须提交他们想要添加/编辑的代码或数据,
  • 作为管理员,您可以每周或每天批量应用这些更改。

控制框架工作示例:应使用存储过程编辑/写入所有表

  • 创建存储进程,在编辑/写入表之前检查表锁,
  • 用户将使用SP写入表,
  • 如果两个用户同时运行相同的SP:要运行的第二个SP将看到锁定标志并向用户打印一条消息,以便在几分钟内再次运行SP。
© www.soinside.com 2019 - 2024. All rights reserved.