如何获取知道数据库名称的数据库资源?
How to get DB resource knowing DB name?
我有数据库名称。
我需要获取数据库资源。
如何?我看到的一种选择是执行 Config.Databases:List
查询并遍历结果,直到找到所需的名称。之后按路径打开数据库并获取资源。
您可以使用 Set dbObj=##class(SYS.Database).%OpenId("USER")
打开数据库,然后使用 dbObj.ResourceName
获取数据库资源。 SYS.Database docs and Config.Databases docs.
如果你只有数据库的名字,你应该先得到一个目录,因为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,"")
我有数据库名称。
我需要获取数据库资源。
如何?我看到的一种选择是执行 Config.Databases:List
查询并遍历结果,直到找到所需的名称。之后按路径打开数据库并获取资源。
您可以使用 Set dbObj=##class(SYS.Database).%OpenId("USER")
打开数据库,然后使用 dbObj.ResourceName
获取数据库资源。 SYS.Database docs and Config.Databases docs.
如果你只有数据库的名字,你应该先得到一个目录,因为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,"")