如何让DB资源知道DB名称?

时间:2016-01-21 13:21:24

标签: intersystems-cache intersystems

我有数据库名称。 我需要获取数据库资源。 怎么样?我看到的一个选项是执行Config.Databases:List查询并迭代结果,直到找到所需的名称。之后,通过路径打开db并获取资源。

2 个答案:

答案 0 :(得分:2)

如果您只有数据库的名称,则应在获取目录之前,因为SYS.Database仅适用于目录路径。

set dbName="TEST"
if ##Class(Config.Databases).Exists(dbName,.dbconfobj) {
  Set dbObj=##class(SYS.Database).%OpenId(dbconfobj.Directory)
  Set resourceName = dbObj.ResourceName
}

数据库目录也可以通过这种方式获得

if ##Class(Config.Databases).Get("TEST1",.props) {
  write $get(props("Directory"))
}

当前命名空间的默认数据库目录

set directory=$zu(12,"")

答案 1 :(得分:0)

您可以使用Set dbObj=##class(SYS.Database).%OpenId("USER")打开数据库,然后将数据库资源设为dbObj.ResourceNameSYS.Database docsConfig.Databases docs