2016-01-21 80 views
2

我有数据库名称。 我需要获取数据库资源。 如何?我看到的一个选择是执行Config.Databases:List查询并遍历结果,直到找到需要的名称。之后,通过路径打开数据库并获取资源。如何获取DB资源知道DB名称?

回答

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")) 
} 

或者默认数据库目录对该代码`##级(SYS.Database)当前命名空间

set directory=$zu(12,"") 
0

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

+0

。 %OpenId(“USER”)',USER - 不是数据库的名称,它是mgr的默认路径和默认目录。这里应该定义数据库的完整路径,而不是名称。 – DAiMor