Functions.BLOBGet 方法 | |
通过备注字段号获取 BLOB 的内容
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION BLOBGet(
nFieldPos,
nStart,
nCount
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual BLOBGet(
__Usual nFieldPos = default,
__Usual nStart = default,
__Usual nCount = default
)
查看代码参数
- nFieldPos (Optional)
- 类型:__Usual
数据库文件结构中字段的位置。 - nStart (Optional)
- 类型:__Usual
BLOB 数据在备注字段中的起始位置。
如果 nStart 是正数,它相对于备注字段的最左边的字符。
如果 nStart 是负数,它相对于备注字段的最右边的字符。
如果省略 nStart,它被假定为 1。
- nCount (Optional)
- 类型:__Usual
从 nStart 位置开始,获取的数据字节数。
如果 nCount 大于实际存储的数据量,多余的数据将被忽略。
如果省略 nCount,BLOBGet() 将获取到数据的结尾。
返回值
类型:
__Usual
从备注字段中获取的 BLOB 数据。
该数据的类型取决于实际存储的数据类型。
使用 ValType() 或 UsualType() 来确定数据类型。
如果所指示的字段不是备注字段,BLOBGet() 将返回 NIL。
备注
BLOBGet() 与 FieldGet() 非常相似。 但是,因为字符串类型的变量不能大于 64 KB,FieldGet() 将在尝试从备注字段中获取大于该大小的数据时引发一个运行时错误。
BLOBGet() 也将在尝试获取大于该大小的字段时引发一个错误,但是您可以通过使用小于 64 KB 的 nCount 来获取该字段的任何子集。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
注意:小于 64 KB 的 BLOB 数据可以使用标准方式从备注字段中获取(例如,在表达式中使用字段名或使用 FieldGet() 函数)。
示例
该示例将 Word 处理文档中的信息导入到一个字段中,然后使用 BLOBGet() 来获取该字段的前 25 个字符:
1FUNCTION GetFirst25()
2 LOCAL nPos
3 LOCAL cStr AS STRING
4 USE customer NEW INHERIT FROM {"DBFBLOB"}
5
6 nPos := FIELDPOS("WP_DOC")
7
8
9 IF BLOBImport(nPos, "c:\application\temp.doc")
10 cStr := BLOBGet(nPos, 1, 25)
11 ELSE
12 cStr := "Error: could not import file!"
13 ENDIF
14CLOSE
15RETURN cStr
参见