Functions.BLOBDirectImport 方法 | |
将文件导入 BLOB 文件中,并返回到数据的指针。
命名空间:
XSharp.RT
程序集:
XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法 FUNCTION BLOBDirectImport(
nOldPointer,
cSourceFile
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual BLOBDirectImport(
__Usual nOldPointer = default,
__Usual cSourceFile = default
)
查看代码参数
- nOldPointer (Optional)
- 类型:__Usual
一个指向 BLOB 数据的指针,该数据将在导入后释放。
该指针可以使用 BLOBDirectPut()、BLOBDirectImport() 或 DBFieldInfo(DBS_BLOB_POINTER, nFieldPos) 获得。将 0 传递给该参数将禁用数据的释放。
如果指定了该参数,BLOBDirectImport() 将释放与 nOldPointer 相关联的空间,以便其他数据重用。
因此,在将 nOldPointer 传递给该函数作为参数后,不允许使用 nOldPointer 与任何 BLOB 函数。
使用该函数的返回值来引用新存储的数据。
- cSourceFile (Optional)
- 类型:__Usual
读取 BLOB 数据的文件名,包括可选的驱动器、目录和扩展名。请参见 SetDefault() 和 SetPath() 以获取文件搜索和创建规则。没有默认的扩展名被假定。
该函数尝试以共享模式打开 cSourceFile。
如果文件不存在,将引发运行时错误。
如果文件成功打开,操作将继续执行。
如果访问被拒绝,因为另一个进程独占了该文件,NetErr() 将被设置为 TRUE。
返回值
类型:
__Usual
一个指向 BLOB 文件中存储的 BLOB 图像的数字指针。
备注
BLOBDirectImport() 提供了一种将文件内容复制到 BLOB 文件中的机制。
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
BLOBDirectImport() 与 BLOBDirectExport() 一起用于在外部文件和 BLOB 文件之间传输数据。您可以使用 BLOBDirectImport() 与各种文件类型,包括图形图像、文字处理文件和打印机字体等。
这两个函数非常适合创建文档、图形、声音等数据库。
在使用 BLOBDirectImport() 导入文件后,nNewPointer,即返回值,是唯一可以访问 BLOB 文件中的数据的方式。
请您,开发者,提供永久存储该引用的方法(请参见下面的示例)
注意:DBFieldInfo(DBS_BLOB_TYPE, nFieldPos) 将对使用 BLOBDirectImport() 创建的备忘录字段返回 "C"(字符串)
示例
该示例将 .BMP 文件导入到 BLOB 文件中,以便在应用程序启动时显示该图像:
1FUNCTION PutPix()
2 LOCAL cBMPFile AS STRING
3 LOCAL aSettings AS ARRAY
4 cBMPFile := "logo.bmp"
5 aSettings := {}
6
7 USE customer NEW VIA "DBFCDX"
8
9 AAdd(aSettings, StartPaths())
10
11 AAdd(aSettings, DefaultColors())
12
13
14
15 nPointer := BLOBDirectImport(0, cBMPFile)
16 AAdd(aSettings, nPointer)
17
18 BLOBRootPut(aSettings)
参见