点击或拖拽改变大小

Functions.BLOBDirectImport 方法

X#
将文件导入 BLOB 文件中,并返回到数据的指针。

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

参数

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 文件中,以便在应用程序启动时显示该图像:
X#
 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        // 获取公司 LOGO,以便在启动时显示
13    // 没有需要释放的数据,因为这
14    // 是第一次导入
15    nPointer := BLOBDirectImport(0, cBMPFile)
16    AAdd(aSettings, nPointer)
17    // 将设置存储在客户.fpt 文件的根区域中
18    BLOBRootPut(aSettings)
参见