Functions.BLOBDirectGet 方法 | |
从 BLOB 文件中检索数据,而不需要引用特定的字段。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION BLOBDirectGet(
nPointer,
nStart,
nCount
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual BLOBDirectGet(
__Usual nPointer = default,
__Usual nStart = default,
__Usual nCount = default
)
查看代码参数
- 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检索存储的信息:
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
参见