点击或拖拽改变大小

Functions.BLOBRootGet 方法

X#
从 BLOB 文件的根目录中检索数据。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION BLOBRootGet() AS USUAL
查看代码

返回值

类型:__Usual
BLOB 文件的根目录中的检索数据。
返回值的数据类型取决于实际存储的数据类型。
使用 ValType() 或 UsualType() 来确定数据类型。 如果根引用从未使用 BLOBRootPut() 写入到 BLOB 文件中,BLOBRootGet() 将返回 NIL。
备注
BLOBRootGet() 允许从工作区中的 BLOB 文件的根目录中检索一个 BLOB。 默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
注意:因为根目录中的数据不引用特定的数据库记录,所以 DBRLock() 不会保护这个根存储引用。
因此,如果数据库文件以共享模式打开,您应该在调用 BLOBRootGet() 之前使用 BLOBRootLock()。
示例
该示例使用 BLOBRootGet() 从 BLOB 文件中读取系统设置到一个数组中,然后演示了如何允许用户修改设置并将它们还原到 BLOB 文件中:
X#
 1FUNCTION UpdateSettings()
 2    LOCAL aSettings AS ARRAY
 3    USE customer NEW SHARED VIA "DBFCDX"
 4    IF BLOBRootLock()
 5        // 获取当前设置
 6        aSettings := BLOBRootGet()
 7        IF EMPTY(aSettings)
 8            // 该函数将 aSettings
 9            // 填充为默认数据
10            aSettings := GetDefaultSettings()
11        ENDIF
12        // 该函数将允许用户
13        // 修改设置
14        IF ModifySettings(aSettings)
15            // 最后将设置
16            // 保存到 BLOB 文件中
17            BLOBRootPut(aSettings)
18        ENDIF
19        BLOBRootUnLock()
20    ELSE
21        aSettings := {}
22        Alert("无法在 root;
23            区获得锁")
24    ENDIF
25    CLOSE
26    RETURN aSettings
参见