点击或拖拽改变大小

Functions.BLOBDirectPut 方法

X#
在不引用特定字段的情况下将数据放入 BLOB 文件中。

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

参数

nOldPointer (Optional)
类型:__Usual
之前存储的 BLOB 数据的引用。
该引用可以使用 BLOBDirectPut()、BLOBDirectImport() 或 DBFieldInfo(DBS_BLOB_POINTER, nFieldPos) 获得。
如果不是 0,BLOBDirectPut() 将 nOldPointer 引用的数据替换为 uBLOB;否则,uBLOB 将被添加到 BLOB 文件的当前内容中。


重要!
如果指定了 nOldPointer,BLOBDirectPut() 将释放与 nOldPointer 关联的空间,以便其他数据重新使用。
因此,在将 nOldPointer 传递给该函数后,不可以再使用 nOldPointer 与任何 BLOB 函数。
请使用函数的返回值来引用新存储的数据。
uBlob (Optional)
类型:__Usual

返回值

类型:__Usual
一个指向 uBLOB 数据的数值指针。
备注
BLOBDirectPut() 在不创建与特定备注字段的链接的情况下存储可变长度的 BLOB 数据。
在使用 BLOBDirectPut() 将数据添加到 BLOB 文件后,您应该存储函数的返回值,因为这是在 BLOB 文件中访问数据的唯一方式。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
示例
该示例在 BLOB 文件中存储设置信息,然后选择性地检索存储的信息:
X#
 1FUNCTION PutSettings(aColors AS ARRAY,;
 2    aPaths AS ARRAY, aPassWords AS ARRAY) AS VOID
 3LOCAL 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
参见