点击或拖拽改变大小

Functions.BLOBDirectGet 方法

X#
从 BLOB 文件中检索数据,而不需要引用特定的字段。

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

参数

nPointer (Optional)
类型:__Usual
BLOB 数据的指针。
该指针可以使用 BLOBDirectPut()、BLOBDirectImport() 或 DBFieldInfo(DBS_BLOB_POINTER, nFieldPos) 获得。
nStart (Optional)
类型:__Usual
nPointer 中的起始位置。
如果 nStart 是正数,它是相对于 nPointer 左边的第一个字符的偏移量。
如果 nStart 是负数,它是相对于 nPointer 右边的第一个字符的偏移量。
如果 nStart 被省略,它将被假定为 1。
nCount (Optional)
类型:__Usual
nStart 位置开始检索的字节数。
如果 nCount 大于存储的数据量,多余的数据将被忽略。
如果省略该参数,BLOBDirectGet() 将检索到数据的末尾。

返回值

类型:__Usual
检索到的 BLOB 文件中的数据。
返回值的数据类型取决于实际存储的数据类型。
使用 ValType() 或 UsualType() 来确定数据类型。
备注
BLOBDirectGet() 可以检索 BLOB 文件中的数据,而不需要引用特定的字段。
它特别适用于访问大于 64 KB 的数据,例如使用 BLOBImport() 函数创建的备忘录字段。 默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
示例
该示例演示了将设置信息存储在 BLOB 文件中,然后selective检索存储的信息:
X#
 1FUNCTION PutSettings(aColors AS ARRAY,;
 2    aPaths AS ARRAY, aPassWords AS ARRAY) AS VOID
 3    LOCAL aSettings AS ARRAY
 4    USE setup NEW VIA DBFBLOB
 5    aSettings := {}
 6    AADD(aSettings, BLOBDirectPut(0, aColors))
 7    AADD(aSettings, BLOBDirectPut(0, aPaths))
 8    AADD(aSettings, BLOBDirectPut(0, aPassWords))
 9    BLOBRootPut(aSettings)
10    CLOSE
11FUNCTION GetColors() AS ARRAY
12    LOCAL aSettings   AS ARRAY
13    LOCAL aColors     AS ARRAY
14    USE setup NEW VIA DBFBLOB
15    aSettings := BLOBRootGet()
16    aColors := BLOBDirectGet(aSettings[1])
17    CLOSE
18    RETURN aColors
参见